GetTravelBoundary
GetTravelBoundary は、ロケーションから一定の時間または距離で、車両または徒歩で到達可能なエリアの境界を示します。この機能では、時間到達圏または距離到達圏の計算に基づくポリゴンを取得します。時間到達圏とは、始点から一定時間内に道路を通って到達できるエリアを表すポリゴンまたはポイントの集まりです。距離到達圏とは、始点から一定距離の移動で到達できるエリアを表すポリゴンまたはポイントの集まりです。Get Travel Boundary 操作 (到達圏定義とも呼ばれます) は、始点、単位 (距離または時間)、1 つ以上のコスト、およびそれらに関連付けられたタグを入力として受け取り、生成された経路境界を返します。コストとは、到達圏計算に使用する時間または距離の量を意味します。タグは、コストを一意に指す文字列で、対応する結果とのマッチングに使用されます。複数のコストを “;” 区切り文字列として提供することで、コストを入力として指定できます。
GetTravelBoundary は、Enterprise Routing モジュールに含まれています。
注: GetTravelBoundary は、Web サービスとしてのみ利用可能です。GetTravelBoundary を、Java、C++、C、.NET、または COM API を介して利用することはできません。
リソース URL
JSON エンドポイント:
http://server:port/rest/GetTravelBoundary/results.json
XML エンドポイント:
http://server:port/rest/GetTravelBoundary/results.xml
JSON 応答の例
次の例では、JSON 応答を要求します。
http://myserver:8080/rest/GetTravelBoundary/results.json?Data.Latitude=51.5072&Data.Longitude=0.1275&Data.&Data.TravelBoundaryCost=10&Data.TravelBondaryCostUnits=Kilometers&Option.DataSetResourceName=Routing_db_gb
この要求から次のような JSON が返されます。
注: この例では、短縮のため一部のポイントが削除されています。
注: この例の応答では、返されたジオメトリの座標が小数点以下 14 桁の値で表示されています。これは、特に大きなポリゴンや多くのレコードが返される場合に、JSON 応答のペイロードを必要以上に増加させます。また、自己交差などの無効なジオメトリにつながる恐れもあります。桁数を減らした座標値を返すことによってペイロードを抑えるには、次の文を %Spectrum%\server\bin\wrapper\wrapper.conf に追加してサーバーを再起動します:
wrapper.java.additional.xx=-Dcom.pb.midev.useprecision=true
。 {"output_port": [{
"IsoNodeResponse": [],
"IsoPolygonResponse": {
"srsName": "epsg:4326",
"Polygon": [ {
"srsName": "epsg:4326",
"Exterior": {"LineString": [{"Pos": [
{
"X": -84.34868168466456,
"Y": 33.68373169496257
},
{
"X": -84.36945064055561,
"Y": 33.69293307108579
},
{
"X": -84.3694506405556,
"Y": 33.69293307108579
},
{
"X": -84.3694506405556,
"Y": 33.69303002973829
},
{
"X": -84.37104825254721,
"Y": 33.69391558543121
},
{
"X": -84.37104825254721,
"Y": 33.6936408692491
},
{
"X": -84.42163929894845,
"Y": 33.716054477754355
},
{
"X": -84.4440058668311,
"Y": 33.710741143596806
},
{
"X": -84.43921303085625,
"Y": 33.72800947960886
},
{
"X": -84.45678676276404,
"Y": 33.73376559161287
},
{
"X": -84.43921303085625,
"Y": 33.73996448146335
},
...
]}]}
}]
},
"user_fields": [ {
"name": "TravelBoundaryCostUnits",
"value": "Kilometers"
}]
}]}
XML 応答の例
次の例では、XML 応答を要求します。
http://myserver:8080/rest/GetTravelBoundary/results.xml?Data.TravelBoundaryCostUnits=Kilometers&Data.Latitude=33.751748&Data.Longitude=-84.364014&Data.TravelBoundaryCost=10
この要求から次のような XML が返されます。
注: この例では、短縮のため一部のポイントが削除されています。
<ns3:xml.GetTravelBoundaryResponse
xmlns:ns2="http://www.mapinfo.com/midev/service/geometries/v1"
xmlns:ns3="http://www.pb.com/spectrum/services/GetTravelBoundary">
<ns3:output_port>
<ns3:IsoRouteResponse>
<ns3:IsoNodeResponse/>
<ns3:IsoPolygonResponse
xsi:type="ns2:MultiPolygon"
srsName="epsg:4326"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns2:Polygon srsName="epsg:4326">
<ns2:Exterior>
<ns2:LineString>
<ns2:Pos>
<ns2:X>-84.34868168466456</ns2:X>
<ns2:Y>33.68373169496257</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.36945064055561</ns2:X>
<ns2:Y>33.69293307108579</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.3694506405556</ns2:X>
<ns2:Y>33.69293307108579</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.3694506405556</ns2:X>
<ns2:Y>33.69303002973829</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.37104825254721</ns2:X>
<ns2:Y>33.69391558543121</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.37104825254721</ns2:X>
<ns2:Y>33.6936408692491</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.42163929894845</ns2:X>
<ns2:Y>33.716054477754355</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.4440058668311</ns2:X>
<ns2:Y>33.710741143596806</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.43921303085625</ns2:X>
<ns2:Y>33.72800947960886</ns2:Y>
</ns2:Pos>
<ns2:Pos>
<ns2:X>-84.45678676276404</ns2:X>
<ns2:Y>33.73376559161287</ns2:Y>
</ns2:Pos>
...
</ns2:LineString>
</ns2:Exterior>
</ns2:Polygon>
</ns3:IsoPolygonResponse>
<ns3:user_fields/>
</ns3:IsoRouteResponse>
</ns3:output_port>
</ns3:xml.GetTravelBoundaryResponse>