Tilesets CLIでラスターMTS
はじめに
前回の記事ではAPIを直接呼び出す形でMTSを試しました。今回はTilesets CLIを用いて試してみます。
Tilesets CLI
Tilesets CLIはMTSでデータをアップロード・タイルセット作成等を行うためのCLIツールです。Pythonで実装されています。
インストール
Python 3.6以上の環境で以下のコマンドによりインストールします。
% pip install mapbox-tilesets
また、追加機能のestimate-area
を使用する際は、GitHubのREADMEを参考にインストールしてください。
シークレットトークンの設定
Tilesets CLIが使用するため、前回作成したシークレットトークンを以下のように環境変数として設定します。
% export MAPBOX_ACCESS_TOKEN=sk....
Vector MTS
データの準備
Tilesets CLIはGeoJSONファイルをline-delimited GeoJSONに変換してくれます。そこで、今回は通常のGeoJSONファイルを準備します。
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": 1,
"properties": {
"name": "JR東京駅 八重洲南口"
},
"geometry": {
"coordinates": [
139.7681965,
35.6796462
],
"type": "Point"
}
},
{
"type": "Feature",
"id": 1,
"properties": {
"name": "バスタ新宿"
},
"geometry": {
"coordinates": [
139.7007717,
35.6884839
],
"type": "Point"
}
},
{
"type": "Feature",
"id": 1,
"properties": {
"name": "サンシャインシティ プリンスホテル"
},
"geometry": {
"coordinates": [
139.719704,
35.7298991
],
"type": "Point"
}
}
]
}
レシピの準備
前回と同様のものを準備します。ただし、APIを使用する際のレシピファイルは厳密にはレシピ+メタデータでした。
{
"recipe": {
//レシピの中身
},
//メタデータ
}
今回は「レシピの中身」の部分だけをファイルとして準備します。
{
"version": 1,
"layers": {
"layer0": {
"source": "mapbox://tileset-source/yochi/bus-tilesets-cli",
"minzoom": 0,
"maxzoom": 18
}
}
}
タイルソース作成
upload-source
コマンドでタイルソースを作成します。パラメータは<username> <source_id> <file>
です。
% tilesets upload-source yochi bus-tilesets-cli bus.geojson
タイルソース一覧
list-sources
コマンドでタイルソース一覧を取得できます。パラメータは<username>
です。
% tilesets list-sources yochi
mapbox://tileset-source/yochi/bus-tilesets-cli
mapbox://tileset-source/yochi/fuji
mapbox://tileset-source/yochi/bus
タイルセット作成
create
コマンドでタイルセットを作成します。パラメータは<tileset_id> --recipe <file> --name <name>
です。前回はメタデータとして指定していたname
およびdescription
をここで指定します (description
はオプション)。
% tilesets create yochi.bus-tilesets-cli --recipe recipe.json --name "Bus Tilesets CLI" --description "Bus stops"
{"message": "Successfully created empty tileset yochi.bus-tilesets-cli. Publish your tileset to begin processing your data into tiles."}
前回同様、Studio上でタイルセットが表示されます。
パブリッシュ
publishコマンド
で使用可能となります。パラメータは<tileset_id>
です。
% tilesets publish yochi.bus-tilesets-cli
{"message": "Processing yochi.bus-tilesets-cli", "jobId": "cm09ddr7l003308l3foyba482"}
✔ Tileset job received. Visit https://studio.mapbox.com/tilesets/yochi.bus-tilesets-cli or run tilesets job yochi.bus-tilesets-cli cm09ddr7l003308l3foyba482 to view the status of your tileset.
進捗確認
status
コマンドで進捗が確認できます。パラメータは<tileset_id>
です。変換中のstatus
はprocessing
です。
% tilesets status yochi.bus-tilesets-cli
{"id": "yochi.bus-tilesets-cli", "latest_job": "cm09ddr7l003308l3foyba482", "status": "processing"}
変換が完了するとstatus
がsuccess
になります。
% tilesets status yochi.bus-tilesets-cli
{"id": "yochi.bus-tilesets-cli", "latest_job": "cm09ddr7l003308l3foyba482", "status": "success"}
完成
Studio上でも以下のようにタイルセットが確認できるようになりました。
Raster MTS
GeoTIFFを準備する
前回作成したGeoTIFFを使用します。
レシピの準備
Vector MTSと同様に、レシピ本体のみのファイルを準備します。
{
"type": "raster",
"version": 1,
"sources": [
{
"uri": "mapbox://tileset-source/yochi/fuji-tilesets-cli"
}
],
"minzoom": 0,
"maxzoom": 16,
"layers": {
"fuji": {
"tilesize": 512,
"buffer": 1
}
}
}
タイルソース作成
upload-raster-source
コマンドでタイルソースを作成します。パラメータは<username> <source_id> <file>
です。
% tilesets upload-raster-source yochi fuji-tilesets-cli fuji.tiff
upload progress [-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0%
{"id": "mapbox://tileset-source/yochi/fuji-tilesets-cli", "files": 1, "source_size": 1533817, "file_size": 1533817}
タイルソース一覧
list-sources
コマンドでタイルソース一覧を取得できます。パラメータは<username>
です。
% tilesets list-sources yochi
mapbox://tileset-source/yochi/fuji-tilesets-cli
mapbox://tileset-source/yochi/bus-tilesets-cli
mapbox://tileset-source/yochi/fuji
mapbox://tileset-source/yochi/bus
タイルセット作成
タイルセットの作成方法はベクターMTSと同じです。
% tilesets create yochi.fuji-tilesets-cli --recipe recipe_fuji.json --name "Mt.Fuji Tilesets CLI" --description "Mt.Fuji image"
{"message": "Successfully created empty tileset yochi.fuji-tilesets-cli. Publish your tileset to begin processing your data into tiles."}
パブリッシュ
パブリッシュ方法もベクターMTSと同じです。
% tilesets publish yochi.fuji-tilesets-cli
{"message": "Processing yochi.fuji-tilesets-cli", "jobId": "cm09drb4l008008mfa74lcew8"}
✔ Tileset job received. Visit https://studio.mapbox.com/tilesets/yochi.fuji-tilesets-cli or run tilesets job yochi.fuji-tilesets-cli cm09drb4l008008mfa74lcew8 to view the status of your tileset.
完成
Studio上でも以下のようにタイルセットが確認できるようになりました。
使ってみる
前回と同様(addSource
のurl
のみ変更)、作成したタイルを使用した結果は以下のとおりです。
まとめ
Tilesets CLIでより簡単にMTSが利用できることがわかりました。
Discussion