MapLibre User Group Japanの@Kanahiroです。今回はベクトルタイルサーバーMartinを紹介します。
TL;DR
- MartinでPostGISのテーブルをベクトルタイルとして高速に配信
- glyph/sprteも動的に配信出来るぞ
Martin
MapLibre傘下の、PostGISバックエンドなタイルサーバーです。特徴は、ベクトルタイルをPostGISのテーブルから動的に作成して配信出来ることです。世はまさにdynamic tiling時代。
今をときめくPMTilesをはじめとして、あらかじめ全てのタイルを作り切っておくアプローチは、配信パフォーマンスの観点では最善です。しかしたとえば頑張って大きなタイルデータを作成したとして、その原典データが更新されてしまったらどうすればよいでしょうか?PMTilesなどのアプローチでは、再度タイルを作り直す必要があります。タイル生成は、そのタイル数が多い場合、コストは小さくありません。なので、動的配信が魅力的になるわけです。
上記の議論は以下の私の発表スライドが詳しいです。
Martinの使い方は難しくはないのですが、さらにその敷居を下げるべく、以下のようなリポジトリを用意しています。
docker compose up
でサーバーが立つので、起動が完了したっぽいタイミングで(PostGISの初期化などが走ります)http://localhost を開いてみましょう。なんだかすごい地図が表示されると思います。
実はこの地図にはMartinのほぼ全ての機能が含まれています。
- PostGISテーブルの配信
- MBTiles/PMTilesの配信
- glyph(フォント)の配信
- spriteの配信
たとえばQGISなどでPostGISのテーブルの内容を変更したのちに、再度地図を表示してみると、内容が反映されているはずです。すなわち動的配信ということです。以下の登壇資料でも紹介しているので、ぜひチェックしてみてください。