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