OpenStreetMap データ (osm.pbf ファイル) を「z/x/y.pbf」フォルダー/ファイル構造に変換し、Openlayers 6 と Ionic を使用してマップをオフラインで表示しようとしています。
私がこれまでに行ったことは次のとおりです。
- ダウンロードした osm.pbf ファイル ( https://download.geofabrik.de/europe/netherlands/flevoland.html )
- Maperitive を使用して osm.pbf を開き、mbtiles
generate-mbtiles [minzoom=0 maxzoom=16]
を生成するために使用しました - コマンドでmbutil ( https://github.com/mapbox/mbutil ) を使用しまし
mb-util --image_format=pbf input_folder output_folder
た。この後、適切なフォルダー構造内に pbfs が作成されます。これまでのところ素晴らしいです。 - openlayers で pbfs を表示します (私は Ionic を使用しているため、ここにいくつかの Angular コードがあることに注意してください)
this.map = new Map({
layers: [
new VectorTileLayer({
declutter: true,
source: new VectorTileSource({
format: new MVT(),
url: 'http://localhost:8100/assets/downloaded-osm-pbfs/{z}/{x}/{y}.pbf'
}),
style: createMapboxStreetsV6Style(Style, Fill, Stroke, Icon, Text)
})
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
});
この後、ブラウザー内でマップを表示しようとすると、「エラー: 実装されていないタイプ: 6」になります。
興味深いことに、https: //openmaptiles.com/downloads を使用してそこから mbtiles をダウンロードし、手順 3 ~ 4 を実行すると (手順 3 では追加の手順を実行し、ファイルが openmaptiles gzip であるため pbfs を解凍するだけです)、すべてが適切に表示されます。しかし、ここでの問題は、openmaptiles が 14 のズーム レベルを提供し、16 のズーム レベルが必要なことです。
この問題を克服する方法はありますか? どんな助けでも大歓迎です!