無料で利用できるオープンソースの世界地図フォーマット「Protomaps」
クラウドストレージ上に静的なファイルとして配置できるオープンソースの世界地図フォーマットが「Protomaps」です。Protomapsは特別なサーバー実装なしにタイルデータを配信することが可能で、オープンデータソースのOpenStreetMapをベースマップとしているので、完全無料で導入できます。
Protomaps | A free and open source map of the world
Protomaps Documentation | Protomaps Docs
https://docs.protomaps.com/
Protomapsは主に、「PMTiles型式」「ベースマップ」「PMTilesファイルを作成・提供・操作するためのツールとライブラリのエコシステム」の3つで構成されています。
PMTiles型式はZ/X/Y座標によってアドレス指定されるタイルデータをベースとした単一ファイルアーカイブフォーマットで、ベースマップのベクタータイル、JPEG型式の画像、リモートセンシングの観測データなどを含みます。PMTilesはAmazon S3のようなストレージプラットフォームでホストすることができ、低コストでメンテナンス不要の地図アプリケーションを可能にします。
Protomapsのベースマップは、オープンデータの地図プロジェクト「OpenStreetMap」を元に都市・道路・水域・その他重要な位置コンテキストがまとめられています。OpenStreetMapへの帰属が必要ですが、Opne Database Licenseに基づいて配布されています。PMTiles バージョン3に基づいたベースマップのデイリービルドは以下のページでダウンロード可能です。
Builds | Protomaps Basemaps
https://maps.protomaps.com/builds/
PMTiles型式は、JavaScriptマップライブラリと組み合わせてウェブブラウザで直接読み取れるように設計されているとのこと。PMTilesファイルの読み取りと書き込みのためのPythonパッケージ「pmtiles」も公開されています。
pmtiles · PyPI
https://pypi.org/project/pmtiles/
このpmtilesパッケージを使って、国土地理院が提供しているベクトルタイル「地理院地図Vector」をPMTilesフォーマットに変換するという試みを、@hfuさんが技術系ブログサービスのQiitaで公開しています。
PMTiles で地理院地図Vectorタイルをホストする #unvt - Qiita
https://qiita.com/hfu/items/350a6b0c546002ccadc4
PMTilesファイルのリーダーはHTTP RangeリクエストによってPMTiles内の関連するタイルやメタデータのみをオンデマンドで取得します。タイルとディレクトリの配置はマップを動かしたりズームしたりした時のリクエスト量を最小限に抑えるように設計されています。
PMTiles型式の仕様は記事作成時点でバージョン3であり、仕様書は以下のGitHubで公開されています。
PMTiles/spec/v3/spec.md at main · protomaps/PMTiles · GitHub
https://github.com/protomaps/PMTiles/blob/main/spec/v3/spec.md
PMTilesファイルを視覚化してメタデータをチェックし、タイルをデバッグするためのブラウザベースのツール「PMTiles Viewer」も以下で公開されています。
PMTiles Viewer
https://protomaps.github.io/PMTiles/