Route - Post Snap To Roads
Snap to Roads API は、経度と緯度の座標として表される GPS ポイント データを受け入れ、マップ上の既存の道路に沿ったポイントを生成します。 このプロセスは、"道路へのスナップ" と呼ばれ、道路ネットワークの近くのパスをトレースする一連のオブジェクトを生成します。 結果のデータには、通過したセグメントに関連する道路名とそれぞれの速度制限が含まれます。
さらに、Snap to Roads API には補間機能が用意されており、GPS ポイントを調整して、道路のジオメトリに準拠するよりスムーズなルートを作成できます。 この機能は、マッピング アプリケーションでの資産の追跡とデータ視覚化の強化に特に役立ちます。
Important
GPS ポイントは、互いに 6 km 以内にある必要があります。
国や地域ごとのルーティング利用可能性については、Azure Mapsルーティングカバレッジを参照してください。
POST https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01
URI パラメーター
| 名前 | / | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
api-version
|
query | True |
string |
Azure Maps APIのバージョン番号。 |
要求ヘッダー
Media Types: "application/geo+json"
| 名前 | 必須 | 型 | 説明 |
|---|---|---|---|
| x-ms-client-id |
string |
Microsoft Entra IDセキュリティモデルで使用されることを意図したアカウントを示します。 このAzure Mapsアカウントの一意IDは、Azure Maps管理プレーンのアカウントAPIから取得できます。 Azure MapsにおけるMicrosoft Entra IDセキュリティの使用についての詳細は、Azure Maps |
|
| Accept-Language |
string |
ルーティング結果を返す言語。 詳細については、Azure Mapsの |
要求本文
Media Types: "application/geo+json"
| 名前 | 必須 | 型 | 説明 |
|---|---|---|---|
| features | True |
道路ネットワークにスナップするポイントのセット。 最小 2 ポイント、最大 5000 ポイントを獲得でき、連続する 2 つのポイントは互いに 6 キロメートル以内、総道路距離は最大 100 キロメートルである必要があります。 GeoJSON 形式の詳細については、 RFC 7946 を参照してください。
|
|
| type | True |
|
|
| includeSpeedLimit |
boolean |
スナップされたポイントの速度制限情報を応答に含めるかどうかを指定します。 単位はキロメートル/時です。 |
|
| interpolate |
boolean |
スナップされた点の間に追加の点を返して、道路ジオメトリにスムーズに従う完全なルート パスを完了するかどうかを指定します。 補間されたポイントは、補間されたポイントからスナップされたポイントを識別するために使用できる応答に |
|
| travelMode |
ポイントをスナップするためのルーティング プロファイルを指定します。 指定しない場合、既定のモードは "運転" であり、ルートを運転するためにスナップされたポイントを最適化します。 |
応答
| 名前 | 型 | 説明 |
|---|---|---|
| 200 OK |
[OK] Media Types: "application/geo+json", "application/json" |
|
| Other Status Codes |
予期しないエラーが発生しました。 Media Types: "application/geo+json", "application/json" ヘッダー x-ms-error-code: string |
セキュリティ
AADToken
これらはMicrosoft Entra OAuth 2.0フローです。 Azureロールベースアクセス制御と組み合わせることで、Azure Maps REST APIへのアクセス制御に利用できます。 Azure ロールベースのアクセス制御は、1つ以上の Azure Maps リソースアカウントまたはサブリソースへのアクセスを指定するために使用されます。 任意のユーザー、グループ、またはサービスプリンシパルは、組み込みの役割やAzure Maps REST APIに対する1つ以上の権限で構成されたカスタムロールを通じてアクセス権を付与できます。
シナリオを実装するには、認証の概念表示することをお勧めします。 要約すると、このセキュリティ定義は、特定の API とスコープに対するアクセス制御が可能なオブジェクトを介してアプリケーションをモデル化するためのソリューションを提供します。
注
- このセキュリティ定義要求アプリケーションがどのAzure Mapsリソースにアクセスを要求しているかを示すために
x-ms-client-idヘッダーを使用します。 これは、Maps 管理 APIから取得できます。 -
Authorization URLはAzureパブリッククラウドインスタンス専用です。 ソブリンクラウドは固有の認可URLとMicrosoft Entra IDの設定を持っています。 - Azureロールベースのアクセス制御は、Azureポータル、PowerShell、CLI、Azure SDKs、またはREST APIを通じて
Azure管理面 から設定されます。 - Azure Maps Web SDKの利用により、複数のユースケース向けに設定ベースのアプリケーション設定が可能になります。
- Microsoft ID プラットフォームの詳細については、「Microsoft ID プラットフォームの概要」を参照してください。
型:
oauth2
フロー:
implicit
Authorization URL (承認 URL):
https://login.microsoftonline.com/common/oauth2/authorize
スコープ
| 名前 | 説明 |
|---|---|
| https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
これは共有キーで、
このキーを使用すると、すべてのアプリケーションがすべての REST API にアクセスすることが承認されます。 つまり、これらは現在、発行先のアカウントのマスター キーとして扱うことができます。
公開されているアプリケーションについては、このキーを安全に保存できるAzure Maps REST APIのサーバー間アクセスを利用することを推奨します。
型:
apiKey
/:
header
SAS Token
これは共有アクセス署名トークンで、
このトークンにより、どのアプリケーションもAzureの役割ベースのアクセス制御と細かい制御で、そのトークンの有効期限、速度、使用地域へのアクセスが許可されます。 つまり、SAS トークンを使用して、アプリケーションが共有キーよりもセキュリティで保護された方法でアクセスを制御できるようにします。
パブリックに公開されているアプリケーションの場合は、Map アカウント リソースの許可された配信元の特定の一覧を構成し、レンダリングの不正使用を制限し、SAS トークンを定期的に更新するように することをお勧めします。
型:
apiKey
/:
header
例
Successfully retrieve snap to roads points with additional parameters in the body
要求のサンプル
POST https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.336729,
47.590868
],
"type": "Point"
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.336042,
47.601604
],
"type": "Point"
},
"properties": {}
}
],
"includeSpeedLimit": true,
"travelMode": "driving"
}
応答のサンプル
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.336769,
47.590885
],
"type": "Point"
},
"properties": {
"inputIndex": 0,
"isInterpolated": false,
"name": "State Rte-99 N",
"speedLimitInKilometersPerHour": 80
}
},
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.336008,
47.601609
],
"type": "Point"
},
"properties": {
"inputIndex": 1,
"isInterpolated": false,
"name": "State Rte-99 N",
"speedLimitInKilometersPerHour": 80
}
}
]
}
定義
| 名前 | 説明 |
|---|---|
|
Features |
|
|
Feature |
|
|
Geo |
有効な |
|
Input |
道路ポイントへの入力スナップを指定します。 フィーチャー オブジェクトと追加のプロパティを |
|
Maps |
エラーの詳細。 |
|
Maps |
Azure Maps APIで失敗した操作のエラー詳細を返すための一般的なエラー応答。 |
|
Maps |
エラーに関する現在のオブジェクトよりも具体的な情報を含むオブジェクト。 |
|
Point |
有効な
|
|
Snap |
Geometry オブジェクトとルートの追加プロパティを含む GeoJSON フィーチャ オブジェクト。 |
|
Snap |
[道路にスナップ] プロパティ |
|
Snap |
このオブジェクトは要求本文です。 |
|
Snap |
このオブジェクトは、正常な呼び出しから返されます。 |
|
Snap |
ポイントをスナップするためのルーティング プロファイルを指定します。 指定しない場合、既定のモードは "運転" であり、ルートを運転するためにスナップされたポイントを最適化します。 |
FeaturesItemTypeEnum
GeoJSON 型を指定します。 サポートされているオブジェクトの種類は Feature のみです。 詳細については、RFC 7946
| 値 | 説明 |
|---|---|
| Feature |
|
FeatureTypeEnum
GeoJSON 型を指定します。 サポートされているオブジェクトの種類は FeatureCollectionのみです。 詳細については、RFC 7946
| 値 | 説明 |
|---|---|
| FeatureCollection |
|
GeoJsonPoint
有効な GeoJSON Point geometry 型。 詳細については、RFC 7946 を参照してください。
| 名前 | 型 | 説明 |
|---|---|---|
| coordinates |
number[] (double) |
|
| type |
string:
Point |
|
InputSnapToRoadsFeaturesItem
道路ポイントへの入力スナップを指定します。 フィーチャー オブジェクトと追加のプロパティを GeoJSON します。 詳細については、RFC 7946 を参照してください。
| 名前 | 型 | 説明 |
|---|---|---|
| geometry | GeoJsonPoint: |
有効な |
| properties |
object |
有効な GeoJSON では properties オブジェクトが必要ですが、メタデータは道路へのスナップに使用されないため、空の場合があります。 |
| type |
|
MapsErrorDetail
エラーの詳細。
| 名前 | 型 | 説明 |
|---|---|---|
| code |
string |
サーバー定義の一連のエラー コードの 1 つ。 |
| details |
この報告されたエラーの原因となった特定のエラーに関する詳細の配列。 |
|
| innererror |
エラーに関する現在のオブジェクトよりも具体的な情報を含むオブジェクト。 |
|
| message |
string |
エラーの人間が判読できる表現。 |
| target |
string |
エラーのターゲット。 |
MapsErrorResponse
Azure Maps APIで失敗した操作のエラー詳細を返すための一般的なエラー応答。
| 名前 | 型 | 説明 |
|---|---|---|
| error |
エラーの詳細。 |
MapsInnerError
エラーに関する現在のオブジェクトよりも具体的な情報を含むオブジェクト。
| 名前 | 型 | 説明 |
|---|---|---|
| code |
string |
エラー コード。 |
| innererror |
エラーに関する現在のオブジェクトよりも具体的な情報を含むオブジェクト。 |
PointGeometry
有効な GeoJSON Geometry オブジェクトとして渡される原点。このオブジェクトから範囲ポリゴンを計算する必要があります。 詳細については、RFC 7946 を参照してください。
Note: API は、要求された起点を最も近い道路ネットワークにスナップし、範囲の計算に使用します。 応答の center ポイントとして返されます。
| 名前 | 型 | 説明 |
|---|---|---|
| coordinates |
number[] (double) |
|
| type |
string:
Point |
|
SnapToRoadFeaturesItem
Geometry オブジェクトとルートの追加プロパティを含む GeoJSON フィーチャ オブジェクト。
| 名前 | 型 | 説明 |
|---|---|---|
| bbox |
number[] (double) |
境界ボックス オブジェクトとして定義された、地球の四角形領域。 四角形の辺は、緯度と経度の値によって定義されます。 詳細については、RFC 7946、セクション 5 例: "bbox": [-10.0, -10.0, 10.0, 10.0] |
| geometry | GeoJsonPoint: |
有効な |
| properties |
[道路にスナップ] プロパティ |
|
| type |
|
SnapToRoadsFeatureProperties
[道路にスナップ] プロパティ
| 名前 | 型 | 説明 |
|---|---|---|
| inputIndex |
integer (int64) |
スナップされた各ポイントのポイントの元のリスト内の対応するインデックスを識別します。 スナップされたポイントのみがインデックスを返し、補間されたポイントと区別するために使用できます。 |
| isInterpolated |
boolean |
これが補間ポイントであるかどうかを識別します。 |
| name |
string |
ポイントがスナップされる道路の名前。 |
| speedLimitInKilometersPerHour |
number (double) |
毎時キロメートルの速度制限。 |
SnapToRoadsRequest
このオブジェクトは要求本文です。
| 名前 | 型 | 規定値 | 説明 |
|---|---|---|---|
| features |
道路ネットワークにスナップするポイントのセット。 最小 2 ポイント、最大 5000 ポイントを獲得でき、連続する 2 つのポイントは互いに 6 キロメートル以内、総道路距離は最大 100 キロメートルである必要があります。 GeoJSON 形式の詳細については、 RFC 7946 を参照してください。
|
||
| includeSpeedLimit |
boolean |
False |
スナップされたポイントの速度制限情報を応答に含めるかどうかを指定します。 単位はキロメートル/時です。 |
| interpolate |
boolean |
False |
スナップされた点の間に追加の点を返して、道路ジオメトリにスムーズに従う完全なルート パスを完了するかどうかを指定します。 補間されたポイントは、補間されたポイントからスナップされたポイントを識別するために使用できる応答に |
| travelMode | driving |
ポイントをスナップするためのルーティング プロファイルを指定します。 指定しない場合、既定のモードは "運転" であり、ルートを運転するためにスナップされたポイントを最適化します。 |
|
| type |
|
SnapToRoadsResponse
このオブジェクトは、正常な呼び出しから返されます。
| 名前 | 型 | 説明 |
|---|---|---|
| features |
Geometry オブジェクトと追加のプロパティを含むフィーチャー オブジェクトを |
|
| type |
|
SnapToRoadsTravelModeEnum
ポイントをスナップするためのルーティング プロファイルを指定します。 指定しない場合、既定のモードは "運転" であり、ルートを運転するためにスナップされたポイントを最適化します。
| 値 | 説明 |
|---|---|
| driving |
ポイントは車に適した道路にスナップされます。 |
| truck |
ポイントはトラックに適した道路にスナップされます。 |