Mapbox CLI : Tileset の登録
背景
- Mapbox Studio の Web 画面からのアップロードは機能に制限がある
- 月20件、合計サイズいくつまで、1ファイルあたり 10MB まで
- 多分このへんの制限は、CLI を推奨したいということを意図しているはず
- 名前に自動生成の suffix が付与される
- また、日々のデータ更新のときにコマンドで完結したい
→ なので、実運用では CLI にしましょう、という話
使用料 (Compute Units)
注意
有料なので実行しすぎ注意
- CU (Compute Unit) という単位で課金しているようだ
- 20 CU / 月までは 無料枠
- 20-1,000 CU は 9 ドル (2025/08 時点)
- 目安1: 公園情報の 10,000 ピン(7MB) のアップロードで 1.8 CU
- 目安2: delete せずに upload して膨れ上がったせいか 1回あたり 10 CU ぐらい使用されることも
- ドキュメント的には、ここ? https://docs.mapbox.com/mapbox-tiling-service/guides/
公式ドキュメント
https://docs.mapbox.com/help/tutorials/get-started-mts-and-tilesets-cli/?step=1
↑
ここに書いてあるままで情報足りる
・・・と 思ったが、試行錯誤してよく分からないので、下の方のメモがぐちゃぐちゃになってきた。
前提
- ✓ Mapbox CLI のインストール
bash
pip install mapbox-tilesets
- ✓ Token の作成後、環境変数への読み込み
TILES:..が付与されたもの- 新規で作れば良い
bash
export MAPBOX_ACCESS_TOKEN=sk.XXXXXXXXXXXX
作業1. データソース (GeoJSON のアップロード)
bash
tilesets upload-source sugoi-user parks-data data/parks.min.geojson
→ mapbox://tileset-source/sugoi-user/parks のように作成される
注意点
アップロードするGeoJSON データは 改行やインデントされていないこと
※ 覚え書き
- 生成時に Python の
json.dumps()を使用している場合はindent=2などの引数を外せば良い - 生成後に変換するなら
jq -c . parks.geojson > parks.min.geojson
入れ替えるとき
Mapbox Studio に出てくるサイズを見るに、どうやら「追記」で入っているようなので、
いったん delete してから upload すること
bash
tilesets delete-source sugoi-user parks-data
→ このあと 確認用に [ sugoi-user/parks-data ] の手入力を促される。矯正したいなら -f オプションで
tilesets upload-source sugoi-user parks-data data/parks.min.geojson