GetRouteCostMatrix

説明

GetRouteCostMatrix サービスは、始点と終点の間の移動時間と距離を計算し、最短時間または最短距離となるルートを返します。この結果は、個々のルートの合計時間と合計距離 (ルート コスト) を示します。例えば、4 つの始点と 4 つの終点を入力すると、合計 16 個のルートが計算されます。

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

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 日のうちの異なる時間帯に基づきます。この機能を使用するには、旅行速度履歴がデータに含まれている必要があります。各国/地域のデータに対する時間帯定義は同じです。時間帯に対する速度は異なる場合があります。次のオプションがあります。

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 です。
除外 文字列 いいえ ルート計算中に回避する道路タイプのリストをカンマで区切って指定します。これは文字列パラメータです。パラメータの値として道路タイプを指定すると、ルート計算でルートからそのタイプの道路が除外されます。例えば、パラメータの値として有料道路を指定すると、計算されたルートから有料道路が除外されます。
バージョン 文字列 いいえ 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 の場合、応答にはエラーのみが含まれます。

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