Mapbox タイリングサービス
Mapbox タイリングサービス(MTS) はベクタータイルセットを作成するためのツールです。MTSを使用すると、設定オプションのセット(タイルセットレシピ)を使用してジオスペーシャルデータをベクタタイルに変換できます。生成されたタイルはアプリケーションで使用するためにMapboxサーバーにホスティングされます。
このページでは、MTSと相互作用するためのAPIドキュメントを見つけることができます。
MTSの一般的な概要、使用例、開発者ガイド、および例については、Mapbox タイリングサービスドキュメントを参照してください。
ここで説明するAPIエンドポイントを使用してMTSにアクセスする以外に、Tilesets CLI と呼ばれるコマンドラインPythonツールを使用してMTS用のデータを準備およびアップロードすることもできます。Tilesets CLIの詳細については、Tilesets CLI ドキュメントおよびMTSとTilesets CLIのチュートリアルを参照してください。
タイルセットソースの作成
タイルセットソースを作成します。タイルセットソースは行区切りGeoJSONとしてフォーマットされた生の地理データで、Mapbox.comにアップロードされます。(MTSで行区切りGeoJSONがどのように使用されるかについては、タイルセットソースのガイドを参照してください。)
タイルセットソースは、新しいベクタータイルセットを作成するためにMTSを使用するために必要です。それらはタイルセットソースID経由で参照されます。同じタイルセットソースは複数のタイルセットで使用できます。
タイルセットソースは最大10のソースファイルで構成できます。各個別ソースファイルは、20 GBを超えてはなりません。すべてのファイルを合わせたタイルセットソースの最大合計サイズは50 GBです。すべてのファイルの合計サイズがこの制限を超える場合、MTSはerror
プロパティを含む応答を返します。複数のソースファイルをタイルセットソースに追加するためには、このエンドポイントに複数回投稿します。これにより、アップロードされたファイルがタイルセットソースに追加されます。新しいソースファイルでタイルセットソースを置き換えるには、タイルセットソースの置換エンドポイントを使用します。
タイルセットソースが不要になった場合は、関連するタイルセットの処理が完了した後に手動で削除する必要があります。関連するタイルセットは正常に動作し続けます。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソースを作成するアカウントのMapboxユーザー名。 |
id | string | 作成するタイルセットソースのID。最大32文字。使用できる特別な文字は - と _ のみです。 |
リクエストボディは行区切りGeoJSONでなければなりません。GeoJSONその他のデータ形式を行区切りGeoJSONに変換する方法については、タイルセットソースのトラブルシューティングガイドを参照してください。
例:タイルセットソースの作成
$ curl -X POST "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME/hello-world?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN" \
-F file=@/Users/username/data/mts/countries.geojson.ld \
--header "Content-Type: multipart/form-data"
応答:タイルセットソースの作成
リクエストが成功した場合、応答には次のプロパティが含まれます:
プロパティ | 型 | 説明 |
---|---|---|
file_size | integer | タイルセットソースに追加した個々のファイルのバイト単位のサイズ。 |
files | integer | タイルセットソース内のファイルの総数。 |
id | string | タイルセットソースの一意の識別子。 |
source_size | integer | タイルセットソース内のすべてのファイルの合計サイズ(バイト単位)。 |
応答例:タイルセットソースの作成
{
"file_size": 10592,
"files": 1,
"id": "mapbox://tileset-source/username/hello-world",
"source_size": 10592
}
既存のタイルセットソースに追加
新しいソースデータをタイルセットソースに追加するか、既に存在しない場合はソースを作成します。タイルセットソースは行区切りGeoJSONとしてフォーマットされた生の地理データで、Mapbox.comにアップロードされます。(MTSで行区切りGeoJSONがどのように使用されるかについては、タイルセットソースのガイドを参照してください。)
タイルセットソースは、新しいベクタータイルセットを作成するためにMTSを使用するために必要です。それらはタイルセットソースID経由で参照されます。同じタイルセットソースは複数のタイルセットで使用できます。
タイルセットソースは最大10のソースファイルで構成できます。各個別ソースファイルは、20 GBを超えてはなりません。すべてのファイルを合わせたタイルセットソースの最大合計サイズは50 GBです。すべてのファイルの合計サイズがこの制限を超える場合、MTSはerror
プロパティを含む応答を返します。複数のソースファイルをタイルセットソースに追加するためには、このエンドポイントに複数回投稿します。これにより、アップロードされたファイルがタイルセットソースに追加されます。新しいソースファイルでタイルセットソースを置き換えるには、タイルセットソースの置換エンドポイントを使用します。
タイルセットソースが不要になった場合は、関連するタイルセットの処理が完了した後に手動で削除する必要があります。関連するタイルセットは正常に動作し続けます。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソースを作成するアカウントのMapboxユーザー名。 |
id | string | 新しいソースデータを追加するためのタイルセットソースのID。 |
リクエストボディは行区切りGeoJSONでなければなりません。GeoJSONその他のデータ形式を行区切りGeoJSONに変換する方法については、タイルセットソースのトラブルシューティングガイドを参照してください。
例:既存のタイルセットソースに追加
$ curl -X POST "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME/hello-world?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN" \
-F file=@/Users/username/data/mts/countries.geojson.ld \
--header "Content-Type: multipart/form-data"
応答:既存のタイルセットソースに追加
リクエストが成功した場合、応答には次のプロパティが含まれます:
プロパティ | 型 | 説明 |
---|---|---|
file_size | integer | タイルセットソースに追加した個々のファイルのバイト単位のサイズ。 |
files | integer | タイルセットソース内のファイルの総数。 |
id | string | タイルセットソースの一意の識別子。 |
source_size | integer | タイルセットソース内のすべてのファイルの合計サイズ(バイト単位)。 |
応答例:既存のタイルセットソースに追加
{
"file_size": 10592,
"files": 2,
"id": "mapbox://tileset-source/username/hello-world",
"source_size": 20884
}
タイルセットソースの置換
新しいソースデータを使用してタイルセットソースを置換するか、既に存在しない場合はソースを作成します。アップロードされたファイルの総サイズが20 GBを超える場合、MTSはerror
プロパティを含む応答を返します。
タイルセットソースが不要になった場合は、関連するタイルセットの処理が完了した後に手動で削除する必要があります。関連するタイルセットは正常に動作し続けます。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソースを作成するアカウントのMapboxユーザー名。 |
id | string | 置換するタイルセットソースのID。 |
リクエストボディは行区切りGeoJSONでなければなりません。GeoJSONその他のデータ形式を行区切りGeoJSONに変換する方法については、タイルセットソースのトラブルシューティングガイドを参照してください。
例:タイルセットソースの置換
$ curl -X PUT "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME/hello-world?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN" \
-F file=@/Users/username/data/mts/countries.geojson.ld \
--header "Content-Type: multipart/form-data"
応答:タイルセットソースの置換
リクエストが成功した場合、応答には次のプロパティが含まれます:
プロパティ | 型 | 説明 |
---|---|---|
file_size | integer | タイルセットソースに追加した個々のファイルのバイト単位のサイズ。 |
files | integer | タイルセットソース内のファイルの総数。 |
id | string | タイルセットソースの一意の識別子。 |
source_size | integer | タイルセットソース内のすべてのファイルの合計サイズ(バイト単位)。 |
応答例:タイルセットソースの置換
{
"file_size": 10592,
"files": 1,
"id": "mapbox://tileset-source/username/hello-world",
"source_size": 10592
}
タイルセットソース情報の取得
特定のタイルセットソースの情報を取得します。これには、タイルセットソース内のファイルの数と合計サイズが含まれます。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソース情報を取得するアカウントのMapboxユーザー名。 |
id | string | 取得するタイルセットソースのID。 |
例:タイルセットソース情報の取得
$ curl "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME/hello-world?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN"
応答:タイルセットソース情報の取得
リクエストが成功した場合、応答には次のプロパティが含まれます:
プロパティ | 型 | 説明 |
---|---|---|
files | integer | タイルセットソース内のファイルの総数。 |
id | string | タイルセットソースの一意の識別子。 |
size | integer | タイルセットソース内のすべてのファイルの合計サイズ(バイト単位)。 |
size_nice | string | ヒューマンリーダブル形式でのタイルセットソース内のすべてのファイルの合計サイズ。 |
応答例:タイルセットソース情報の取得
{
"files": 2,
"id": "mapbox://tileset-source/username/hello-world",
"size": 20884,
"size_nice": "20.39KB"
}
タイルセットソースの一覧
アカウントに属するすべてのタイルセットソースの一覧を表示します。このエンドポイントはページネーションをサポートしています。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソース情報を取得するアカウントのMapboxユーザー名。 |
以下のオプションパラメータを使用して、このエンドポイントの結果をさらに絞り込むことができます:
オプションパラメータ | 型 | 説明 |
---|---|---|
sortby | string | 作成または変更されたタイムスタンプでリストを並べ替えます。 |
limit | integer | 返すタイルセットソースの最大数。1 から500 まで指定できます。デフォルトは100 です。 |
start | string | リストの開始地点として使用するタイルセット。レスポンスのLink ヘッダーにキーがあります。詳細はページネーションセクションを参照してください。 |
例:タイルセットソースの一覧
$ curl "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN"
応答:タイルセットソースの一覧
リクエストが成功した場合、応答には指定したアカウントに属するタイルセットソースのリストが含まれます。各リストの個々のソースには次のプロパティが含まれます:
プロパティ | 型 | 説明 |
---|---|---|
files | integer | タイルセットソース内のファイルの総数。 |
id | string | タイルセットソースの一意の識別子。 |
size | integer | タイルセットソース内のすべてのファイルの合計サイズ(バイト単位)。 |
アカウントに2000個以上のタイルセットソースがある場合、応答リストは2000で制限されます。
応答例:タイルセットソースの一覧
[
{
"files": 2,
"id": "mapbox://tileset-source/username/hello-world",
"size": 20884
},
{
"files": 3,
"id": "mapbox://tileset-source/username/hola-mundo",
"size": 650332
}
]
タイルセットソースの削除
タイルセットソースとそのすべてのファイルを完全に削除します。この操作は元に戻せません。
タイルセットソースを削除すると、そのタイルセットソースを使用する進行中のジョブは失敗します。
必須パラメータ | 型 | 説明 |
---|---|---|
username | string | タイルセットソースを削除するアカウントのMapboxユーザー名。 |
id | string | 削除されるタイルセットソースのID。 |
例:タイルセットソースの削除
$ curl -X DELETE "https://api.mapbox.com/tilesets/v1/sources/YOUR_MAPBOX_USERNAME/hello-world?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN"
応答:タイルセットソースの削除
タイルセットソースが正常に削除された場合、応答はHTTP 204 No Content
を返します。
タイルセットの作成
新しいタイルセットを作成します。
必須パラメータ | 型 | 説明 |
---|---|---|
tileset_id | string | 作成されるタイルセットのID。これは、ユーザー名の後にピリオドとタイルセットの一意の名前で構成されます(username.id )。制限は32文字。この文字数制限にはユーザー名は含まれません。使用できる特別な文字は - と _ のみです。 |
リクエストボディはJSONオブジェクトであり、次のプロパティを含む必要があります:
必須リクエストボディプロパティ | 型 | 説明 |
---|---|---|
recipe | object | アップロードしたGeoJSONデータをタイルに変換する方法を記述したレシピ。レシピの作成とフォーマット方法については、レシピリファレンスおよびレシピ 例を参照してください。 |
name | string | タイルセットの名前。64文字以内。 |
さらに、リクエストボディは次のオプションプロパティを含めることができます:
オプショナルリクエストボディプロパティ | 型 | 説明 |
---|---|---|
private | boolean | タイルセットがあなたのMapboxアカウントからのアクセストークンを使用してのみ使用する必要があるかどうかを示します。デフォルトはtrue です。 |
description | string | タイルセットの説明。500文字以内。 |
attribution | array of objects | それぞれtext およびlink キーを持つアトリビューションオブジェクトの配列。アトリビューションオブジェクトは最大で3つ、すべてのtext 値の合計が最大80文字、すべてのlink 値の合計が最大1000文字に制限されます。 |
attribution.text | string | タイルセットのアトリビューションテキスト。 |
attribution.link | string | タイルセットのアトリビューションに使用されるURL。 |
例:タイルセットの作成
$ curl -X POST "https://api.mapbox.com/tilesets/v1/{tileset_id}?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN" \
-d @tileset-information-and-recipe.json \
--header "Content-Type:application/json"
リクエストボディの例:タイルセットの作成
{
"recipe": {
"version": 1,
"layers": {
"hello_world": {
"source": "mapbox://tileset-source/username/hello-world",
"minzoom": 0,
"maxzoom": 5
}
}
},
"name": "Hello World",
"description": "Spaceship Earth with all of the people, places, and things.",
"attribution": [{ "text": "© Hello Legal World", "link": "" }]
}
応答:タイルセットの作成
{
"message": "空のタイルセット <tileset> を正常に作成しました。タイルセットのプロセスを開始するためにタイルセットを発行してください。"
}
指定されたIDのタイルセットが既に存在する場合、MTSはHTTP 400
ステータスコードを返します。
タイルセットの更新
既存のタイルセットのソース、レシピ、メタデータ、およびタイルをMTSを使用して更新できます:
- タイルセットのソースを更新 するには、タイルセットのレシピを更新するエンドポイントを 使用します。更新されたタイルセットレシピで新しいタイルセットソースを参照することができます。
- タイルセットのレシピを更新 するには、タイルセットのレシピを更新するエンドポイントを使用します。更新されたレシピでは、
minzoom
、maxzoom
などの新しい設定を指定できます。(MTSレシピ仕様書のルールに従う。) - タイルセットのメタデータを更新 するには、タイルセット情報の更新MTSエンドポイントを使用します。タイルセットの名前、説明、非公開または公開の状態、およびアトリビューション情報を更新できます。
- タイルセットのタイルを更新 するには、タイルセットの公開MTSエンドポイントを使用します。この手順は更新方法に詳述されています。データソースの更新やレシピの変更が必要な場合、このプロセスは同じタイルセットに対して無制限に繰り返すことができます。
タイルセットの公開
タイルセットを作成したら、そのデータをベクタタイルに「公開」するよう要求できます。このアクションは、レシピで定義された方法に従ってデータを取得してベクタタイルに処理するという非同期プロセス(ジョブとして知られている)を開始します。
このエンドポイントは、既存のタイルセットを更新するためにも使用されます。タイルキャッシングのため、既存のタイルセットを更新するとき、新しいタイルはキャッシュされたバージョンが期限切れになるまで表示されません。
特定のタ イルセットには、一度にアクティブな処理公開ジョブがひとつしか存在できません。これにより、ステージングされたデータが次のデータを処理する前に処理されることが確保されます。タイルセットにアクティブな公開リクエストが処理されている場合、後続の公開リクエストは受信した順にキューに入れられます。アカウントごとにキューに入れることができるジョブは最大で5つです。
すべてのジョブはグローバルなMapboxキューに入力されます。キューが大きいほど、タイルセットの処理に時間がかかります。キューのサイズを確認する方法については、グローバルキューの表示セクションを参照してください。
単一のベクタタイルのサイズは500 KBに制限されています。 タイルサイズによってフィーチャがドロップされる場合、これはジョブオブジェクトのwarnings
フィールドに記載されます。
必須パラメータ | 型 | 説明 |
---|---|---|
tileset_id | string | タイルセットを公開するために使用するID。これは、ユーザー名の後にピリオドとタイルセットの一意の名前で構成されます(username.id )。 |
処理時間
タイルセットを公開する際の処理時間には、多くの要因が影響します。これには次のものが含まれます:
- 処理されるデータが表す地理的エリアの サイズ。たとえば、都市ブロックのデータは地球全体のデータよりもはるかに速く処理されます。
- 各レイヤーに適用される最大ズームレベル。ズームレベルが高いほど、作成するタイル数が増えます。各追加ズームレベルは前のズームレベルの4倍のタイルを生成します。たとえば、
1
の最大ズームレベルは4つのタイルを生成し、2
の最大ズームレベルは16タイルを生成します。 - タイルセットレシピの複雑さ。特にフィルター、属性、および結合設定は処理時間を追加する可能性があります。
- グローバルキューのサイズ。これをグローバルキューの表示エンドポイントで確認できます。MTSのグローバルキューには処理を待っているタイルセットジョブの数が示されます。
例:タイルセットの公開リクエスト
$ curl -X POST "https://api.mapbox.com/tilesets/v1/{tileset_id}/publish?access_token=YOUR_SECRET_MAPBOX_ACCESS_TOKEN"