GetRoute
説明
GetRoute サービスは、2 つのポイントまたは複数のポイントに対するルーティング情報を返します。始点および終点とオプションで通過点を入力として取り、最短時間または最短距離となるルートを返します。
HTTP GET URL 形式
HTTP GET 要求には次の形式を使用します。HTTP GET は、その他の JSON ペイロードを必要としない単純なルートに使用します。HTTP GET 要求に通過点を追加することもできます。
HTTP GET /rest/Spatial/erm/databases/dbsource.json?q=route&query_parameters
ここで、dbsource は、ルート用のデータを含むデータベースの名前です。Spatial モジュールのルーティング データベース リソース ツールで指定されたデータベース名を使用してください。
HTTP POST URL 形式
HTTP POST リクエストには次の形式を使用します。
HTTP POST: /rest/Spatial/erm/databases/dbsource.json?q=route&query_parameters
POST BODY: Content-Type:application/json {Route Data}
Route Data は、通過点、一時更新、または道路タイプの優先度を含む計算で使用されるその他のルート情報を表す POST Json 本体 (Content-Type: application/json) です。これらのオプションの詳細については、GetRoute HTTP POST オプション を参照してください。
クエリ パラメータ
この演算は、次のクエリ パラメータを取ります。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
startPoint | 文字列 | はい | ルートの始点。形式は x,y,coordSys です。例: -74.2,40.8,EPSG:4326 |
endPoint | 文字列 | はい | ルートの終点。形式は x,y,coordSys です。例: -74.2,40.8,EPSG:4326 |
intermediatePoints | 文字列 | いいえ | ルートに沿って含める通過点のリスト。これを HTTP GET 要求に含めるには、形式 Long,Lat,Long,Lat,…,coordsys を使用します。例えば、-74.2,40.8,-73,42,EPSG:4326 を使用します。一連の通過点を HTTP POST 要求に含めるには、ルートのポイントを示す MultiPoint JSON ペイロードを追加します。通過点が URL と JSON ペイロードの両方で指定されている場合は、JSON ペイロードが優先され、URL の通過点は無視されます。 |
oip | Boolean | いいえ | 通過点を最適化する必要があるかどうかを示す処理パラメータ。デフォルトは false です。デフォルトでは、通過点は計算で指定された順序で使用されます。true に設定すると、指定されたポイントはルートの計算時に最適な順序に変更されます。 |
returnIntermediatePoints | Boolean | いいえ |
ルートの応答で通過点を返すかどうか。デフォルトは false です。 true または false 以外の値を指定した場合は、デフォルトの false に設定されます。このオプションは、POST 本体で指定された順序で通過点を返します。オプション oip の値が true に設定されている場合、このオプションは最適化された順序で通過点を返します。 |
destinationSrs | 文字列 | いいえ | ルートと結果のジオメトリを返す座標系。既定値は使用するデータの座標系です。 |
optimizeBy | 文字列 | いいえ | ルートに使用する最適化のタイプ。有効な値は time または distance です。既定値は time です。 |
returnDistance | Boolean | いいえ | 道順に移動距離を含めます。デフォルトは true です。 |
distanceUnit | 文字列 | いいえ | 距離を返すときの単位。既定値は m (メートル) です。使用可能な値: m (メートル)、km (キロメートル)、yd (ヤード)、ft (フィート)、mi (マイル)。 |
returnTime | Boolean | いいえ | 道順に、その道順に従った場合にかかる時間を含めます。デフォルトは true です。 |
時間単位 | 文字列 | いいえ | 時間を返すときの単位。既定値は min (分) です。使用可能な値: min (分)、msec (ミリ秒)、s (秒)、h (時間)。 |
language | 文字列 | いいえ |
道順を返すときの言語。道順を返す場合 (directionsStyle が Normal または Terse に定義されている場合) にのみ使用します。既定値は英語 (en) です。 道順は次の言語で返すことができます。
|
returnDirectionGeometry | Boolean | いいえ | ルートの応答で、ルート指示に関連付けられたジオメトリを返します。デフォルトは false です。 |
directionsStyle | 文字列 | いいえ |
返す道順のタイプ。デフォルトは None です。道順を返す必要がある場合は、このパラメータを指定します。道順を指定するときのオプションは次のとおりです。
|
segmentGeometryStyle | 文字列 | いいえ |
ルートのセグメントを表すジオメトリの形式。デフォルトは None です。セグメント ジオメトリを返す必要がある場合は、このパラメータを指定します。道順を指定するときのオプションは次のとおりです。
|
primaryNameOnly | Boolean | いいえ | 道順の中の任意の通りのすべての名前を返すか、通りの主要名のみを返すかを指定します。道順を返す場合にのみ使用します。既定値は false です。 |
majorRoads | Boolean | いいえ | 計算時に、すべての道路を含めるか、幹線道路のみを含めるかを指定します。幹線道路のみを含めるように指定した場合は、パフォーマンスは向上しますが精度は低くなる場合があります。デフォルトは false です。 |
historicTrafficTimeBucket | 文字列 | いいえ |
ルーティング計算において、旅行速度履歴を使用するかどうかを指定します。これらの速度は、1 日のうちの異なる時間帯に基づきます。この機能を使用するには、旅行速度履歴がデータに含まれている必要があります。各国/地域のデータに対する時間帯定義は同じです。時間帯に対する速度は異なる場合があります。次のオプションがあります。
|
除外 | 文字列 | いいえ | ルート計算中に回避する道路タイプのリストをカンマで区切って指定します。これは文字列パラメータです。パラメータの値として道路タイプを指定すると、ルート計算でルートからそのタイプの道路が除外されます。例えば、パラメータの値として有料道路を指定すると、計算されたルートから有料道路が除外されます。 |
バージョン | 文字列 | いいえ | GetRoute REST サービスのバージョンを指定します。有効な値は 1 と 2 です。version のデフォルト値は 1 です。 |
localRoadsLoadFactor |
文字列 | いいえ |
ルート計算またはマトリクス計算中にメモリにロードできる地方道路の数を指定します。ロードできる道路の数は、このパラメータで選択した値に正比例します。パラメータの最小値は 1 で、最大値は 3 です。有効な値は 1、2、3 です。デフォルトは 1 です。パラメータがルート計算またはマトリクス計算に与える影響の詳細については「地方道路の負荷係数」を参照してください。 注: パラメータに小数の値を指定することはできません。
|
例
始点と終点を持つ単純なルート。
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=route&startPoint=-73.97,40.79,epsg:4326&endPoint=-73.98,40.74,epsg:4326
応答
{
"distance": 7779,
"distanceUnit": "m",
"time": 16.75,
"timeUnit": "min"
}
通過点を持つルート。
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=route&
startPoint=-73.970257,40.794045,epsg:4326&endPoint=-
73.972103,40.786605,epsg:4326&intermediatePoints=-73.976266,40.788717,
-73.973562,40.792193,-73.971802,40.794630,epsg:4326&oip=true&
returnIntermediatePoints=true"/>
応答
{
"distance": 1921,
"distanceUnit": "m",
"intermediatePoints": {
"type": "MultiPoint",
"coordinates": [
[-73.971802, 40.79463],
[-73.973562, 40.792193],
[-73.976266, 40.788717]
]
},
"time": 4.2,
"timeUnit": "min"
}
道順が有効になっているルート。
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=route&startPoint=-73.97,40.79,epsg:4326&endPoint=-73.98,40.74,
epsg:4326&language=en&directionsStyle=Normal&returnDirectionGeometry=true
応答
{
"time": 10.58,
"timeUnit": "min",
"distance": 9035,
"distanceUnit": "m",
"language": "en",
"directionsStyle": "Normal",
"routeDirections": [
{
"time": 0.03,
"timeUnit": "min",
"distance": 25,
"distanceUnit": "m",
"instruction": "",
"directionGeometry":
{
"type": "LineString",
"coordinates":
[
[
-76.421169,
42.69302
],
[
-76.421353,
42.692645
],
...
]
}
},
{
"time": 0.7,
"timeUnit": "min",
"distance": 394,
"distanceUnit": "m",
"instruction": "Turn right on W 91st St and travel West 394.0 m
(0.7 min).",
"directionGeometry":
{
"type": "LineString",
"coordinates":
[
[
-76.429896,
42.67153
],
...
]
}
}
]
}
バージョン固有のエラー応答
リクエストに無効なパラメータ値 (ポイントが境界の外側にある、など) を入力すると、入力したバージョンによって異なるエラー応答が返ります。バージョンが 1 の場合、値とエラーが返りますが、バージョンが 2 の場合、応答にはエラーのみが含まれます。
- version が 1 の場合のリクエスト:
http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json? &q=route&startPoint=-14.321600,60.662859,epsg:4326&endPoint=-74.035208,40.695624, epsg:4326&distanceUnit=km&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=route&startPoint=-14.321600,60.662859,epsg:4326&endPoint=-74.035208,40.695624, epsg:4326&distanceUnit=km&version=2
- レスポンス:
{ "errors": [ { "errorCode": 5008, "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)" } ] }