MapLibre GL JSで、自分が作ったデータをどのように配信・管理したら良いか?と考えました。
今ここ何番地?
https://office-shirado.com/imakoko/
基本的に、日本全国がフィールドなので、タイル形式が良いかな?と思ってはいましたが、タイル構造(Z/X/Y)では、膨大な数のファイルができてしまい、ファイル転送(FTP)も時間がかかり、削除も移動も大変・・・。
半年前まで、「MapLibre」、「pbf」、「MBTiles」、「PMTiles」という言葉を知りませんでしたw
8年前にLeafletで少し遊んでたくらいです。
今回、今ここ何番地?では、法務省地図(amx-a提供)、法務省地図地番(代表点)、国有林(国土数値情報)などを読み込むようにしておりますが、基本的には「PMTiles」を利用しております。
最初は、ベクトルタイルのpbf(Z/X/Y構造)も使っていたのですが、データが増えるに従い、管理が大変になりました。
そこで、色々調べたりした結果、単一ファイルのPMTilesが最適という結論に至りました。
amx-aから提供頂いたデータはPMTilesで、当初どのように作成したらよいのか分からず右往左往しておりました。
ベクトルタイルについて、参考にしたのは、以下のYouTubeでした。
<ベクトルタイルを作ってみた。 ~Windows Docker編~>
https://www.youtube.com/watch?v=KRnr6MEeN6k
上記の動画を元に、自分用のメモをまとめました。
-----------<初期設定>-----------
【Dockerのインストール】
https://www.docker.com/
から、Windows版をダウンロードし、インストール
【WSLの更新】
https://learn.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
からダウンロード、インストール
-----------<作成作業>-----------
【データフォルダにGeoJSONをコピー・又は移動】
D:\data\GeoJSON
【Dokerを起動】
起動したら、ちょっと待つw
【Windows PowerShellを起動】
1.docker pull unvt/nanban
2.docker run -it --rm -v d:\data:/data unvt/nanban
3.tippecanoe -l layername -rg -z18 -Z18 --no-tile-compression --drop-densest-as-needed --no-tile-size-limit -o /data/layername.pmtiles /data/GeoJSON/*.geojson
※3番目のコピペは、右クリックを使用(なぜか・・・。)
上記で、PMTilesが作成され、後はFTPソフトでサーバーに上げるだけです。
続いて、ラスタタイルデータについては、参考にしたのは以下のYouTubeでした。
https://www.youtube.com/watch?v=_-d41I84oik
※go-pmtilesの部分
-----------<初期設定>-----------
【QGISのプラグイン、QMetaTilesをインストール】
※QTilesも入れた方が良いのかは未検証(QTilesもインストール済み)
【go-pmtilesのダウンロード】
https://github.com/protomaps/go-pmtiles/releases
私は、go-pmtiles_1.8.0_Windows_x86_64を使用。
ダウンロード・解凍したら、回答ファイルをCドライブ直下に移動する。
-----------<作成作業>-----------
【QGISにGeoTiffを貼り付ける】
CRSに気を付ける。
【QMetaTilesでMBTilesを作成】
プラグイン→QMetaTilesで、mbtiles形式で保存する
※一番上にパスとファイル名(test001.pmtiles)を入れる。
【go-pmtilesでPMTilesを作成】
Cドライブ直下においたgo-pmtiles_1.8.0_Windows_x86_64のフォルダに
QGISから出力したtest001.pmtilesをコピー又は移動しする。
コマンドプロンプト(cmd)を起動し、
<ディレクトリ変更>
cd C:\go-pmtiles_1.8.0_Windows_x86_64
<変換実行>
pmtiles convert test001.mbtiles test001.pmtiles
の2つのコマンドを入力すると、PMTilesが出来上がります。
結果、全てYouTubeに救われたという事になりますw
本当にありがとうございます。
これを書いている時点でも、「MBTiles」と「PMTiles」の違いが良く分かっておりません・・・。
ただ、「PMTiles」は特別なサーバー環境を用意しなくてもOKとのことのようです。
という事で、ベクトルタイル・ラスタタイル共に「PMTiles」でしばらくはデータを取りまわしてみたいと思います。
約8年ぶりにWebGISに本気を出していますが、
・MapLibre GL JS
・PMTiles
・オープンデータ
・公開データ
などいい時代になりましたね。
今ここ何番地?では、メンバーが保有するドローン撮影などによるGeoTiffをMaplibreの今ここ何番地?で表示できるように進んでいこうかと思っております。
さて、次の壁は何だろうか・・・。
※壁はなくて良いですけど。