1

OpenStreetMap データ (osm.pbf ファイル) を「z/x/y.pbf」フォルダー/ファイル構造に変換し、Openlayers 6 と Ionic を使用してマップをオフラインで表示しようとしています。

私がこれまでに行ったことは次のとおりです。

  1. ダウンロードした osm.pbf ファイル ( https://download.geofabrik.de/europe/netherlands/flevoland.html )
  2. Maperitive を使用して osm.pbf を開き、mbtilesgenerate-mbtiles [minzoom=0 maxzoom=16]を生成するために使用しました
  3. コマンドでmbutil ( https://github.com/mapbox/mbutil ) を使用しましmb-util --image_format=pbf input_folder output_folderた。この後、適切なフォルダー構造内に pbfs が作成されます。これまでのところ素晴らしいです。
  4. 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 のズーム レベルが必要なことです。

この問題を克服する方法はありますか? どんな助けでも大歓迎です!

4

1 に答える 1