WebGISの構築4−tippecanoeによるmbtiles変換
今回は、下図赤枠部分に示す大阪市DMデータから変換したGeoJSONファイルをmbtiles形式に変換を説明します。
変換には、Mapbox社の提供するツール”Tippecanoe”(発音は”ティピカヌー”)を使用します。
Tippecanoeの導入と変換
では、今日の本題であるTippecanoeの概要を確認し導入、変換を行いましょう。
Tippecanoeとは
Tippecanoeは、Mapbox社のEric Fischer(エリック・フィッシャー)さんが、オープンソースソフトウェアで、GeoJSONファイルをmbtiles形式に変換します。
https://github.com/mapbox/tippecanoe
tipopecanoeを理解する上でのキーワードは、mvt、mbtiles、pbfの3つになります。
[table id=19 /]
参考ですが、Tippecanoeは以下のコマンドラインツールから構成されています。
- tippecanoe :GeoJSONからmvt、mbtilesへの変換(今回使用)
- tippecanoe-decode:上記の逆変換
- tile-join :mbtiles同士の結合
- tippecanoe-enumerate: mbtilesのタイル数確認
- tippecanoe-json-tool :GeoJSONファイルからの情報の抽出
tippecanoeは、GeoJSONをpbfで符号化してmvt形式に変換し、それをgzip圧縮してmbtiles(SQLite形式)を作成しています。
図にすると以下のようになります。
Tippecanoeの導入
今回は、Linuxサーバー(CentOS8)にtippecanoeを導入します。
git-hubからソースを取得し、yumコマンドにて2つの依存ライブラリを導入後、makeします。作業はルートユーザーで実施します。
$ git clone https://github.com/mapbox/tippecanoe.git
$ cd tippecanoe
$ yum install sqlite-devel.x86_64 sqlite-libs.x86_64
$ yum install zlib-devel.x86_64
$ yum install zlib.x86_64
$ make -j
$ make install
ビルドが成功すると、tippecanoeの実行モジュールが、/usr/local/bin/tippecanoeに作成されます。
一般ユーザーでもパスは通っていますので、動作確認(ヘルプ表示)すると以下のようになります。
$ tippecanoe –help
Usage: tippecanoe [options] [file.json …]
Output tileset
–output=output.mbtiles [–output-to-directory=…] [–force]
[–allow-existing]
Tileset description and attribution
[–name=…] [–attribution=…] [–description=…]
Input files and layer names
[–layer=…] [–named-layer=…]
Parallel processing of input
[–read-parallel]
Tippecanoeによるmbtiles変換
Tippecanoeが導入できたらGeoJSONファイルをmbtiles形式に変換しましょう。
変換は、コマンドラインから以下のように実施します。(-drop-densest-as-neededは、図形の間引きオプションです)
私のVPS(さくらVPSの2CPU、メモリ1GB、SSD)では、5分ほどで完了しました。
$ tippecanoe -zg -o osaka.mbtiles –drop-densest-as-needed osaka.json
元々のGeoJSONファイル osaka.geojson のサイズは447MBでしたが、変換後のosaka.mbtilesは31.2MBとなりました。pbfによる符号化とgzip圧縮による二重の効果で元サイズの7%未満にまで圧縮されています。
まとめ
今回は、tippecanoeを使ってGeoJSONファイルをmbtiles形式に変換しました。
また、pbfとmvt、mbtilesの関連は少々ややこしいので、今後折に触れて説明していきます。
今回作成したmbtilesをブラウザで表示できるデモサイトを以下に用意していますので、よかったら訪問してください。
[blogcard url=”https://labo.takamoto.biz/osakadm.html”]
マウス右ボタンドラッグで3D表示できます。
なお、IE(インターネットエクスプローラ)では表示できませんので、Chromeなど他のブラウザをご利用ください。