GetRouteCostMatrix
説明
GetRouteCostMatrix サービスは、始点と終点の間の移動時間と距離を計算し、最短時間または最短距離となるルートを返します。この結果は、個々のルートの合計時間と合計距離 (ルート コスト) を示します。例えば、4 つの始点と 4 つの終点を入力すると、合計 16 個のルートが計算されます。
HTTP GET URL 形式
HTTP GET 要求には次の形式を使用します。HTTP GET は、その他の JSON ペイロードを必要としない単純なコスト計算に使用します。
HTTP GET /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters
ここで、dbsource は、ルート用のデータを含むデータベースの名前です。Enterprise Routing モジュールのルーティング データベース リソース ツールで指定されたデータベース名を使用してください。
HTTP POST URL 形式
HTTP POST リクエストには次の形式を使用します。
HTTP POST: /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters
POST BODY: Content-Type:application/json {Route Data}
Route Data は、入力ポイントのリストが呼び出し元の URL バッファの制限を超える場合の計算や、一時更新、または道路タイプの優先度を含む計算で使用されるその他のルート情報を表す POST Json 本体 (Content-Type: application/json) です。これらのオプションの詳細については、GetRouteCostMatrix HTTP POST オプションを参照してください。
クエリ パラメータ
この演算は、次のクエリ パラメータを取ります。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
startPoints | String | はい | ルートの始点。形式は long,lat,long,lat,...,coordSys です。例えば、-74.2,40.8,-73,42,EPSG:4326 を使用します。 |
endPoints | String | はい | ルートの終点。形式は long,lat,long,lat,...,coordSys です。例えば、-74.2,40.8,-73,42,EPSG:4326 を使用します。 |
destinationSrs | String | いいえ | ルートと結果のジオメトリを返す座標系。既定値は使用するデータの座標系です。 |
optimizeBy | String | いいえ | ルートに使用する最適化のタイプ。有効な値は time または distance です。既定値は time です。 |
returnDistance | Boolean | いいえ | 道順に移動距離を含めます。既定値は true です。returnDistance および returnTime パラメータの両方を同じ要求で false にはできません。 |
distanceUnit | String | いいえ | 距離を返すときの単位。既定値は m (メートル) です。使用可能な値: m (メートル)、km (キロメートル)、yd (ヤード)、ft (フィート)、mi (マイル)。 |
returnTime | Boolean | いいえ | 道順に、その道順に従った場合にかかる時間を含めます。既定値は true です。returnDistance および returnTime パラメータの両方を同じ要求で false にはできません。 |
timeUnit | String | いいえ | 時間を返すときの単位。既定値は min (分) です。使用可能な値: min (分)、msec (ミリ秒)、s (秒)、h (時間)。 |
majorRoads | Boolean | いいえ | 計算時に、すべての道路を含めるか、幹線道路のみを含めるかを指定します。幹線道路のみを含めるように指定した場合は、パフォーマンスは向上しますが精度は低くなる場合があります。デフォルトは false です。 |
returnOptimalRoutesOnly | Boolean | いいえ | 始点/終点の各組み合わせに対し、最適化ルートのみを返すかどうかを指定します。既定値は true です。最適化ルートは、optimizeBy パラメータに応じて、最短時間ルートまたは最短距離のいずれかになります。 |
historicTrafficTimeBucket | String | いいえ |
ルーティング計算において、トラフィック速度履歴を使用するかどうかを指定します。これらの速度は、1 日のうちの異なるタイム バケットに基づきます。この機能を使用するには、トラフィック速度履歴がデータに含まれている必要があります。各国/地域のデータに対するバケット定義は同じです。バケット値に対する速度は異なる場合があります。次のオプションがあります。
|
例
2 つの始点と 2 つの終点を持つコスト マトリックス ルート。
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=routeCostMatrix&startPoints=-73.56565,40.5545,-73.46565,40.4545,epsg:4326&endPoints=-73.34343,40.667,-73.14343,40.267,epsg:4326&returnOptimalRoutesOnly=true&optimizeBy=distance&distanceUnit=km&timeUnit=min&majorRoads=true&destinationSrs=epsg:4322&returnTime=false
応答
{
"matrix":
[
{
"startPoint":
{
"type": "Point",
"coordinates":
[
-73.56567672202618,
40.554384822358614
],
"crs":
{
"type": "name",
"properties":
{
"name": "epsg:4322"
}
}
},
"endPoint":
{
"type": "Point",
"coordinates":
[
-73.34345711862802,
40.66688488742393
],
"crs":
{
"type": "name",
"properties":
{
"name": "epsg:4322"
}
}
},
"distance": 35.268,
"distanceUnit": "km
},
{
"startPoint":
{
"type": "Point",
"coordinates":
[
-73.46567684021008,
40.454384834155185
],
"crs":
{
"type": "name",
"properties":
{
"name": "epsg:4322"
}
}
},
"endPoint":
{
"type": "Point",
"coordinates":
[
-73.34345711862802,
40.66688488742393
],
"crs":
{
"type": "name",
"properties":
{
"name": "epsg:4322"
}
}
},
"distance": 44.444,
"distanceUnit": "km"
}
]
}