GetTravelBoundary

説明

GetTravelBoundary は、ロケーションから一定の時間または距離で、車両または徒歩で到達可能なエリアの境界を示します。この機能では、時間到達圏または距離到達圏の計算に基づくポリゴンを取得します。時間到達圏とは、始点から一定時間内に道路を通って到達できるエリアを表すポリゴンまたはポイントの集まりです。距離到達圏とは、始点から一定距離の移動で到達できるエリアを表すポリゴンまたはポイントの集まりです。GetTravelBoundary 操作 (到達圏検索とも呼ばれます) は、始点、単位 (距離または時間)、および 1 つ以上のコストを入力として受け取り、生成された到達圏(ポリゴン)を返します。コストとは、到達圏計算に使用する時間または距離の値を意味します。また、複数のコストを入力として提供することもできます。複数のコストの場合、コストはカンマ区切り文字列として提供することもできます。

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

HTTP GET URL 形式

HTTP GET 要求には次の形式を使用します。HTTP GET は、その他の JSON ペイロードを必要としないすべての到達圏境界に使用されます (周辺移動速度の変更)。


HTTP GET /rest/Spatial/erm/databases/dbsource.json?q=travelBoundary&query_parameters
			

ここで、dbsource は、ルート用のデータを含むデータベースの名前です。Enterprise Routing モジュールのルーティング データベース リソース ツールで指定されたデータベース名を使用してください。

HTTP POST URL 形式

HTTP POST リクエストには次の形式を使用します。


HTTP POST:  /rest/Spatial/erm/databases/dbsource.json?q=travelBoundary&query_parameters
POST BODY: Content-Type:application/json {Route Data}
			

Route Data は、道路タイプの周辺移動速度を含む計算で使用される追加のルート情報を表す POST Json 本体 (Content-Type: application/json) です。これらのオプションの詳細については、GetTravelBoundary HTTP POST オプション を参照してください。

クエリ パラメータ

この演算は、次のクエリ パラメータを取ります。

パラメータ タイプ 必須 説明
point 文字列 はい 到達圏境界を計算するときの始点を x, y, coordSys 形式で指定します。例: -74.2,40.8,EPSG:4326
コスト Double はい 距離または時間のコストを、指定されたコスト単位で表して指定します (小数値が使用できます)。例えば、指定された単位がマイルの場合に、このフィールドに 10 を指定すると、10 マイル移動するための到達圏境界が計算されます。また、複数のコストを指定することも可能で、値をカンマ区切り文字列として指定します。指定されたすべてのコストに対して個別に到達圏境界が返されます。複数のコストを指定した場合、応答にはコストとその応答に関連付けられているコスト単位が含まれます。
costUnit 文字列 はい 到達圏境界の計算に使用される計測単位のタイプを指定します。使用可能な距離値は以下のとおりです。
  • m (メートル)
  • km (キロメートル)
  • yd (ヤード)
  • ft (フィート)
  • mi (マイル)
使用可能な時間値は以下のとおりです。
  • min (分)
  • msec (ミリ秒)
  • s (秒)
  • h (時)
maxOffroadDistance Double いいえ maxOffroadDistanceUnit を使用して道路以外を移動できる距離の最大値。道路以外とは、私道や進入路などのことです。例えば、道路外距離の最大値を 1 マイルと指定すると、道路から 1 マイル以上離れた地点は、到達圏境界に含まれません。道路外距離の最大値として 0 を指定すると、道路から少しでもそれた地点は到達圏境界に含まれません。道路以外を移動する際の速度は、周辺移動速度オプションによって指定します。
maxOffroadDistanceUnit 文字列 いいえ maxOffroadDistance を定義する距離単位を指定します。また、このパラメータを定義する場合も、maxOffroadDistance を定義する必要があります。使用可能な距離値は以下のとおりです。
  • m (メートル)
  • km (キロメートル)
  • yd (ヤード)
  • ft (フィート)
  • mi (マイル)
destinationSrs 文字列 いいえ 到達圏境界ジオメトリを返す座標系を指定します。デフォルトは、使用するデータの座標系 (例えば、epsg:4326) です。
majorRoads Boolean いいえ 計算時に、すべての道路を含めるか、幹線道路のみを含めるかを指定します。幹線道路のみを含めるように指定した場合は、パフォーマンスは向上しますが精度は低くなる場合があります。デフォルトは true です。
returnHoles Boolean いいえ 境界内の到達不可能領域(穴)を返すかどうかを指定します。これは、道順に従って適切な時間または距離で到達できない、主要境界内に存在する領域(穴)を指します。デフォルトは false です。
returnIslands Boolean いいえ 境界外の到達可能領域(島)を返すかどうかを指定します。これは、適切な時間または距離で到達できる、主要境界の外にある小さな領域です。デフォルトは false です。
simplificationFactor Integer いいえ 返す必要があるオリジナルのポイントの割合 (結果のジオメトリの複雑さを維持する割合) を指定します。0.0 ~ 1.0 (0.0 は除くが 1.0 は含む) の間の数値が指定できます。値が大きいほど複雑さは増します。つまり、1.0 は最も複雑であることを意味します。既定値は 0.5 です。
bandingStyle 文字列 いいえ

結果に使用する境界線表示形式を指定します。境界形式は、複数のコストに基づいて表示できる複数の到達圏の境界のタイプです。境界形式は、次の形式で返すことができます。

Donut
境界は、内側のより小さな境界をくり抜く方法で確定されます。これはデフォルトの方法です。
Encompassing
境界は、他の境界の影響を受けず単独で確定されます。
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 です。
defaultAmbientSpeed 文字列 いいえ
(すべての道路タイプの) 到達圏境界を検索するために使用する、道路以外を移動する際の速度を指定します。到達圏境界計算において道路外の移動の処理を制御するには、道路外を移動する際の速度 (周辺移動速度) を指定する必要があります。周辺移動速度は、到達圏境界を表すポリゴンの大きさや形状に影響を与える可能性があります。一般的には、周辺移動速度が速いほど、ポリゴンは大きくなります。例えば、あと 5 分の移動が可能で、周辺移動速度が 15 マイル/時の場合は、到達可能地点まで 1.25 マイルの距離があることになります。周辺移動速度を 10 マイル/時に落とすと、到達可能地点までの距離は 0.83 マイルになります。
注: defaultAmbientSpeed のデフォルト値: 15
ambientSpeedUnit 文字列 いいえ
周辺移動速度を計算するための計測単位を指定します。使用可能な速度単位は以下のとおりです。
  • MPH (マイル/時)
  • KPH (キロメートル/時)
  • MTPS (メートル/秒)
  • MTPM (メートル/分)
注: ambientSpeedUnit のデフォルト値: MPH
伝搬係数 文字列 いいえ

始点から距離到達圏までの距離を (全種類の道路を対象に) 計算するために使用するコストの割合を指定します。伝搬係数を距離到達圏に適用する目的は、周辺移動速度を時間到達圏に適用する場合と同じです。つまり、到達圏境界の計算に与える道路外の移動の影響を、この係数で制御します。伝搬係数は、到達圏境界を表すポリゴンの大きさや形状に影響を与える可能性があります。一般に、伝搬係数が大きいほど、ポリゴンも大きくなります。

この係数は距離到達圏に適用します。このプロパティを指定しない場合は、計算にはサーバー設定が使用されます。有効な値は 0.0 から 1.0 までです。
注:
  • デフォルトの propagationFactor0.16 です。
  • このパラメータは POST 本体でも指定できます。GET と POST の両方に同じパラメータが設定されている場合は、POST の値が考慮されます。
バージョン 文字列 いいえ GetTravelBoundary REST サービスのバージョンを指定します。有効な値は 12 です。version のデフォルト値は 1 です。

単一のコストを持つ到達圏境界。

http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?​q=travelBoundary&point=-77.092609,38.871256,epsg:4326&costs=5&costUnit=m

応答


{
"travelBoundary": {
  "costs": [
	{
		"cost": 5,
		"costUnit": "m",
		"geometry": {"type":"MultiPolygon","coordinates":[[[...]]]}
	}
  ]
}
}	
			

複数のコストを持つ到達圏境界。

http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?​q=travelBoundary&point=-77.092609,38.871256,epsg:4326&costs=2,5&costUnit=m

応答


{
"travelBoundary": {
  "costs": [
	    {
                 "cost": 2,
                 "costUnit": "m",
		"geometry": "{"type":"MultiPolygon","coordinates":[[[...]]]}"
	},
	{
		"cost": 5,
		"costUnit": "m",
		"geometry": "{"type":"MultiPolygon","coordinates":[[[...]]]}"
	}
  ]
}
}
}	
			

バージョン固有のエラー応答

リクエストに無効なパラメータ値 (ポイントが境界の外側にある、など) を入力すると、入力したバージョンによって異なるエラー応答が返ります。バージョンが 1 の場合、値とエラーが返りますが、バージョンが 2 の場合、応答にはエラーのみが含まれます。

  • version1 の場合のリクエスト:
    
    http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=travelBoundary
    &costs=5&costUnit=min&point=-14.321600,60.662859,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=travelBoundary
    &costs=5&costUnit=min&point=-14.321600,60.662859,epsg:4326&version=2 
  • レスポンス:
    {
      "errors": [
        {
          "errorCode": 5008,
          "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)"
        }
      ]
    }