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 は、ルート用のデータを含むデータベースの名前です。Spatial モジュールのルーティング データベース リソース ツールで指定されたデータベース名を使用してください。
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 オプション を参照してください。
クエリ パラメータ
この演算は、次のクエリ パラメータを取ります。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
始点 | 文字列 | はい | ルートの始点。形式は long,lat,long,lat,...,coordSys です。例えば、-74.2,40.8,-73,42,EPSG:4326 を使用します。 |
終点 | 文字列 | はい | ルートの終点。形式は long,lat,long,lat,...,coordSys です。例えば、-74.2,40.8,-73,42,EPSG:4326 を使用します。 |
destinationSrs | 文字列 | いいえ | ルートと結果のジオメトリを返す座標系。既定値は使用するデータの座標系です。 |
optimizeBy | 文字列 | いいえ | ルートに使用する最適化のタイプ。有効な値は time または distance です。既定値は time です。 |
returnDistance | Boolean | いいえ | 道順に移動距離を含めます。デフォルトは true です。returnDistance および returnTime パラメータの両方を同じ要求で false にはできません。 |
distanceUnit | 文字列 | いいえ | 距離を返すときの単位。既定値は m (メートル) です。使用可能な値: m (メートル)、km (キロメートル)、yd (ヤード)、ft (フィート)、mi (マイル)。 |
returnTime | Boolean | いいえ | 道順に、その道順に従った場合にかかる時間を含めます。デフォルトは true です。returnDistance および returnTime パラメータの両方を同じ要求で false にはできません。 |
時間単位 | 文字列 | いいえ | 時間を返すときの単位。既定値は min (分) です。使用可能な値: min (分)、msec (ミリ秒)、s (秒)、h (時間)。 |
majorRoads | Boolean | いいえ | 計算時に、すべての道路を含めるか、幹線道路のみを含めるかを指定します。幹線道路のみを含めるように指定した場合は、パフォーマンスは向上しますが精度は低くなる場合があります。デフォルトは false です。 |
returnOptimalRoutesOnly | Boolean | いいえ | 始点/終点の各組み合わせに対し、最適化ルートのみを返すかどうかを指定します。デフォルトは true です。最適化ルートは、optimizeBy パラメータに応じて、最短時間ルートまたは最短距離のいずれかになります。 |
historicTrafficTimeBucket | 文字列 | いいえ |
ルーティング計算において、旅行速度履歴を使用するかどうかを指定します。これらの速度は、1 日のうちの異なる時間帯に基づきます。この機能を使用するには、旅行速度履歴がデータに含まれている必要があります。各国/地域のデータに対する時間帯定義は同じです。時間帯に対する速度は異なる場合があります。次のオプションがあります。
|
除外 | 文字列 | いいえ | ルート計算中に回避する道路タイプのリストをカンマで区切って指定します。これは文字列パラメータです。パラメータの値として道路タイプを指定すると、ルート計算でルートからそのタイプの道路が除外されます。例えば、パラメータの値として有料道路を指定すると、計算されたルートから有料道路が除外されます。 |
バージョン | 文字列 | いいえ | GetRouteCostMatrix REST サービスのバージョンを指定します。有効な値は 1 と 2 です。version のデフォルト値は 1 です。 |
localRoadsLoadFactor |
文字列 | いいえ |
ルート計算またはマトリクス計算中にメモリにロードできる地方道路の数を指定します。ロードできる道路の数は、このパラメータで選択した値に正比例します。パラメータの最小値は 1 で、最大値は 3 です。有効な値は 1、2、3 です。デフォルトは 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": [{
"distance": 35.258,
"distanceUnit": "km",
"endPoint": {
"type": "Point",
"coordinates": [-73.34345711862802, 40.66688488742393],
"crs": {
"type": "name",
"properties": {
"name": "epsg:4322"
}
}
},
"startPoint": {
"type": "Point",
"coordinates": [-73.56567672202618, 40.554384822358614],
"crs": {
"type": "name",
"properties": {
"name": "epsg:4322"
}
}
}
}, {
"distance": 41.761,
"distanceUnit": "km",
"endPoint": {
"type": "Point",
"coordinates": [-73.34345711862802, 40.66688488742393],
"crs": {
"type": "name",
"properties": {
"name": "epsg:4322"
}
}
},
"startPoint": {
"type": "Point",
"coordinates": [-73.46567684021008, 40.454384834155185],
"crs": {
"type": "name",
"properties": {
"name": "epsg:4322"
}
}
}
}]
}
バージョン固有のエラー応答
リクエストに無効なパラメータ値 (ポイントが境界の外側にある、など) を入力すると、入力したバージョンによって異なるエラー応答が返ります。バージョンが 1 の場合、値とエラーが返りますが、バージョンが 2 の場合、応答にはエラーのみが含まれます。
- version が 1 の場合のリクエスト:
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json? q=routeCostMatrix&startPoints=-73.56565,40.5545,-73.46565,40.4545,epsg:4326& endPoints=-14.321600,60.662859,-73.14343,40.267,epsg:4326&version=1
- レスポンス:
{ "value": "Point outside boundaries: (-14.3216,60.662859,0)", "errors": [ { "errorCode": 5008, "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)" } ] }
- version が 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=-14.321600,60.662859,-73.14343,40.267,epsg:4326&version=2
- レスポンス:
{ "errors": [ { "errorCode": 5008, "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)" } ] }