もっと

ジオパッケージへのMbtileおよびその逆

ジオパッケージへのMbtileおよびその逆


ベクターデータ(シェープファイルのような)用にOGCが提供するジオパッケージオープンフォーマットは、マップタイル(ラスタータイル)もサポートします。機能は、mapboxによって設立されたmbtileフォーマットに似ています。 2つの形式(mbtilesとgeopackage)の間で変換するためのツールまたはPythonライブラリはありますか?

本質的に、両方の形式はSqliteデータベースです。したがって、変換ツールはテーブルのスキーマを変更するだけでよいと思います。


このような変換を行う(または同じファイルで両方をサポートする)ことがGeoPackageの目標でした。ただし、Y順序の規則が異なるため、スキーマの変更だけではありません。両方をサポートするには、ビューを使用する必要があります。または、すべてのタイル行インデックスを更新します。

https://launchpad.net/gpkgtools(免責事項:私は作成者です)を試して、mbtileからgeopackageへの変換を行うことができます。これにより、すべてのタイルがソースから宛先にコピーされますが、実際のタイルは変更されません。

ジオパッケージには非常に多くのオプションがあるため(特に、複数のタイルセットが存在する可能性があり、さまざまな空間参照系)、他の方法(つまり、ジオパッケージからmbtilesへ)に進むのは簡単ではありません。 gpkgtoolsを設定するのは適度に難しいことに注意してください-手順を確認してください。

より一般的な(そしてより多くの本番環境に対応した)オプションは、GDALを使用することです。かなり最近の改善を得るには、最新バージョン(GDAL 2.xなど)が必要になります。それはおそらくもっと多くの仕事をするでしょう、そしてあなたはおそらく後に概要を追加する必要があるでしょうgdal_translateステップ。


1つのオプションは、MapProxyを使用して、mbtileとgeopackageキャッシュおよびタイルソースの両方を構成することです。タイルを転送するためのmapproxy-seedコマンドラインユーティリティ。これはもう少し複雑になりますが、機能するはずです

mapproxyyaml設定の例

サービス:デモ:kml:tms:wmts:wms:srs:['EPSG:3857'、 'EPSG:4326'、 'EPSG:4269'] image_formats:['image / jpeg'、 'image / png']グローバル:キャッシュ:base_dir:/ opt / caches lock_dir:/ opt / locks image:フォーマット:image / jpg:encoding_options:jpeg_quality:80 image / png:モード:RGBAトランスペアレント:trueレイヤー:-名前:mbtiles_1タイトル: 'mbtilesレイヤー1'ソース:[mbtiles_1_cache]-名前:mbtiles_2タイトル: 'mbtilesレイヤー2'ソース:[mbtiles_2]-名前:geopackageタイトル: 'geopackageレイヤー'ソース:[geopackage_cache]キャッシュ:mbtiles_1_cache:グリッド:[GLOBAL_MERCATOR]ソース:[source_1_tms] #ソースは空にすることができます[] mbtilesがシードされている場合meta_buffer:0 meta_size:[1,1] cache:type:mbtiles filename:./ layer1.mbtiles mbtiles_2_cache:grids:[GLOBAL_MERCATOR] sources:[souce_2_tms]#ソースは空にすることができます[] mbtilesがシードされている場合meta_buffer:0 meta_size:[1,1] cache:type:mbtiles filename:./ layer2.mbtiles geopackage_cache:grids:[GLOBAL_MERCATOR] format:mixed#mixedモードではjpgとpngの組み合わせを保存できますストレージフットプリントを削減するにはrequest_format:image / pngソース:[mbtiles_1_cache、mbtiles_2_cache] meta_buffer:0 meta_size:[1,1] cache:type:geopackage filename:./ fbs_ortho.gpkg table_name:fbs_tiles#ソースTMSサービスを使用してフィードする例mbtiles caches#sourceは、シードされたキャッシュがある場合はオプションですsources:source_1_tms:type:tile url: 'http://foobar.com/mapcache/tms/1.0.0/[email protected]/%(tms_path)s.xxx' grid :GLOBAL_MERCATORトランスペアレント:true on_error:404:レスポンス:トランスペアレントキャッシュ:falseカバレッジ:データソース: "PG:dbname =" db "host =" db.com "user =" foo "password =" bar ""ここで、 "SELECT the_geom FROMlayers WHERE name = 'layer1' "srs: 'EPSG:3857' source_2_tms:type:tile url: 'http://foobar.com/mapcache/tms/1.0.0/[email protected]/%(tms_path)s。 xxx 'グリッド:GLOBAL_MERCATORトランスペアレント:true on_error:404:レスポンス:トランスペアレントキャッシュ:falseカバレッジ:データソース: "PG:dbname =" db "host =" db.com "user =" foo "password =" bar ""ここで、 "SELECT the_geom FROM layer WHERE name = 'layer2'" srs: ' EPSG:3857 '

http://ngageoint.github.io/geopackage-js/をチェックしてください。そのツールはMBTilesからGeoPackageに変換されます。このツールはブラウザで実行されるため、ブラウザのメモリ制限が適用されますが、リポジトリのクローンを作成し、変換方法を使用してファイル形式のコマンドライン間で変換することができます。


ビデオを見る: Basic high zoom fluttermap vector tile