GetTravelBoundary
説明
GetTravelBoundary は、ロケーションから一定の時間または距離で、車両または徒歩で到達可能なエリアの境界を示します。この機能では、時間到達圏または距離到達圏の計算に基づくポリゴンを取得します。時間到達圏とは、始点から一定時間内に道路を通って到達できるエリアを表すポリゴンまたはポイントの集まりです。距離到達圏とは、始点から一定距離の移動で到達できるエリアを表すポリゴンまたはポイントの集まりです。GetTravelBoundary 操作 (到達圏検索とも呼ばれます) は、始点、単位 (距離または時間)、および 1 つ以上のコストを入力として受け取り、生成された到達圏(ポリゴン)を返します。コストとは、到達圏計算に使用する時間または距離の値を意味します。また、複数のコストを入力として提供することもできます。複数のコストの場合、コストはカンマ区切り文字列として提供することもできます。
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 | 文字列 | はい | 到達圏境界の計算に使用される計測単位のタイプを指定します。使用可能な距離値は以下のとおりです。
|
maxOffroadDistance | Double | いいえ | maxOffroadDistanceUnit を使用して道路以外を移動できる距離の最大値。道路以外とは、私道や進入路などのことです。例えば、道路外距離の最大値を 1 マイルと指定すると、道路から 1 マイル以上離れた地点は、到達圏境界に含まれません。道路外距離の最大値として 0 を指定すると、道路から少しでもそれた地点は到達圏境界に含まれません。道路以外を移動する際の速度は、周辺移動速度オプションによって指定します。 |
maxOffroadDistanceUnit | 文字列 | いいえ | maxOffroadDistance を定義する距離単位を指定します。また、このパラメータを定義する場合も、maxOffroadDistance を定義する必要があります。使用可能な距離値は以下のとおりです。
|
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 | 文字列 | いいえ |
結果に使用する境界線表示形式を指定します。境界形式は、複数のコストに基づいて表示できる複数の到達圏の境界のタイプです。境界形式は、次の形式で返すことができます。
|
historicTrafficTimeBucket | 文字列 | いいえ |
ルーティング計算において、旅行速度履歴を使用するかどうかを指定します。これらの速度は、1 日のうちの異なる時間帯に基づきます。この機能を使用するには、旅行速度履歴がデータに含まれている必要があります。各国/地域のデータに対する時間帯定義は同じです。時間帯に対する速度は異なる場合があります。次のオプションがあります。
|
defaultAmbientSpeed | 文字列 | いいえ |
(すべての道路タイプの) 到達圏境界を検索するために使用する、道路以外を移動する際の速度を指定します。到達圏境界計算において道路外の移動の処理を制御するには、道路外を移動する際の速度 (周辺移動速度) を指定する必要があります。周辺移動速度は、到達圏境界を表すポリゴンの大きさや形状に影響を与える可能性があります。一般的には、周辺移動速度が速いほど、ポリゴンは大きくなります。例えば、あと 5 分の移動が可能で、周辺移動速度が 15 マイル/時の場合は、到達可能地点まで 1.25 マイルの距離があることになります。周辺移動速度を 10 マイル/時に落とすと、到達可能地点までの距離は 0.83 マイルになります。
注: defaultAmbientSpeed のデフォルト値: 15 |
ambientSpeedUnit | 文字列 | いいえ |
周辺移動速度を計算するための計測単位を指定します。使用可能な速度単位は以下のとおりです。
注: ambientSpeedUnit のデフォルト値: MPH
|
伝搬係数 | 文字列 | いいえ |
始点から距離到達圏までの距離を (全種類の道路を対象に) 計算するために使用するコストの割合を指定します。伝搬係数を距離到達圏に適用する目的は、周辺移動速度を時間到達圏に適用する場合と同じです。つまり、到達圏境界の計算に与える道路外の移動の影響を、この係数で制御します。伝搬係数は、到達圏境界を表すポリゴンの大きさや形状に影響を与える可能性があります。一般に、伝搬係数が大きいほど、ポリゴンも大きくなります。 この係数は距離到達圏に適用します。このプロパティを指定しない場合は、計算にはサーバー設定が使用されます。有効な値は 0.0 から 1.0 までです。
注:
|
バージョン | 文字列 | いいえ | GetTravelBoundary REST サービスのバージョンを指定します。有効な値は 1 と 2 です。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 の場合、応答にはエラーのみが含まれます。
- version が 1 の場合のリクエスト:
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)" } ] }
- version が 2 の場合のリクエスト:
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)" } ] }