GetRoute

説明

GetRoute サービスは、2 つのポイントまたは複数のポイントに対するルーティング情報を返します。始点および終点とオプションで通過点を入力として取り、最短時間または最短距離となるルートを返します。

注: REST サービスからの応答は JSON 形式で、返されるジオメトリは GeoJSON 形式です。要求の GET URL に無効なクエリ パラメータが含まれていたり、POST のペイロードが無効である場合は、累積的なエラー応答が JSON 配列に返されます。応答 JSON の value ノードは非推奨です。エラーの確認には、errors ノードを使用してください。

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) です。

道順は次の言語で返すことができます。

sq
アルバニア語で道順を返します。
zh_CN
中国語で道順を返します。
zh_TW
中国語 (台湾) で道順を返します。
hr
クロアチア語で道順を返します。
cs
チェコ語で道順を返します。
da
デンマーク語で道順を返します。
nl
オランダ語で道順を返します。
en
英語で道順を返します。デフォルト
en-US
アメリカ英語で道順を返します。
et
エストニア語で道順を返します。
fi
フィンランド語で道順を返します。
fr
フランス語で道順を返します。
de
ドイツ語で道順を返します。
hu
ハンガリー語で道順を返します。
it
イタリア語で道順を返します。
ja
日本語で道順を返します。
lv
ラトビア語で道順を返します。
lt
リトアニア語で道順を返します。
no
ノルウェー語で道順を返します。
pt
ポルトガル語で道順を返します。
ro
ルーマニア語で道順を返します。
sk
スロバキア語で道順を返します。
sl
スロベニア語で道順を返します。
es
スペイン語で道順を返します。
sv
スウェーデン語で道順を返します。
ru
ロシア語で道順を返します。
tr
トルコ語で道順を返します。
returnDirectionGeometry Boolean いいえ ルートの応答で、ルート指示に関連付けられたジオメトリを返します。デフォルトは false です。
directionsStyle 文字列 いいえ

返す道順のタイプ。デフォルトは None です。道順を返す必要がある場合は、このパラメータを指定します。道順を指定するときのオプションは次のとおりです。

None
道順を返しません。指定されない場合の既定値です。
Normal
道順は Web ベース アプリケーションに適した完全な形式で返されます。
Terse
道順はモバイル アプリケーションに適した短縮形式で返されます。
segmentGeometryStyle 文字列 いいえ

ルートのセグメントを表すジオメトリの形式。デフォルトは None です。セグメント ジオメトリを返す必要がある場合は、このパラメータを指定します。道順を指定するときのオプションは次のとおりです。

None
セグメントのジオメトリ表現を返します。指定されない場合の既定値です。
End
ルートの各セグメントと終点を LineString で返します。
All
各セグメントとすべての形状ポイントを LineString で返します。LineString はマップ上でオーバーレイとして使用できます。
primaryNameOnly Boolean いいえ 道順の中の任意の通りのすべての名前を返すか、通りの主要名のみを返すかを指定します。道順を返す場合にのみ使用します。既定値は false です。
majorRoads Boolean いいえ 計算時に、すべての道路を含めるか、幹線道路のみを含めるかを指定します。幹線道路のみを含めるように指定した場合は、パフォーマンスは向上しますが精度は低くなる場合があります。デフォルトは false です。
historicTrafficTimeBucket 文字列 いいえ

ルーティング計算において、旅行速度履歴を使用するかどうかを指定します。これらの速度は、1 日のうちの異なる時間帯に基づきます。この機能を使用するには、旅行速度履歴がデータに含まれている必要があります。各国/地域のデータに対する時間帯定義は同じです。時間帯に対する速度は異なる場合があります。次のオプションがあります。

None
デフォルト値です。計算において、旅行速度履歴は使用しません。代わりに速度の平均値を使用します。
AMPeak
午前のピーク速度でルートを計算します。午前ピークの時間帯は、1 日のうちの 07:00 ~ 10:00 です。
PMPeak
午後のピーク速度でルートを計算します。午後ピークの時間帯は、1 日のうちの 16:00 ~ 19:00 です。
OffPeak
オフピーク (日中) 速度でルートを計算します。オフピークの時間帯は、1 日のうちの 10:00 ~ 16:00 です。
Night
夜間速度でルートを計算します。夜間の時間帯は、1 日のうちの 22:00 ~ 04:00 です。
除外 文字列 いいえ ルート計算中に回避する道路タイプのリストをカンマで区切って指定します。これは文字列パラメータです。パラメータの値として道路タイプを指定すると、ルート計算でルートからそのタイプの道路が除外されます。例えば、パラメータの値として有料道路を指定すると、計算されたルートから有料道路が除外されます。
バージョン 文字列 いいえ GetRoute REST サービスのバージョンを指定します。有効な値は 12 です。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 の場合、応答にはエラーのみが含まれます。

  • version1 の場合のリクエスト:
    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)"
        }
      ]
    }
  • version2 の場合のリクエスト:
    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)"
        }
      ]
    }