GetTravelBoundary (Deprecated)

Important: This stage has been deprecated in the 12.2 release. TheTravel Boundary stage should be used instead when creating new dataflows.

GetTravelBoundary determines a drive or walk time or distance boundary from a location. This feature obtains polygons corresponding to an isochrone or isodistance calculation. An isochrone is a polygon or set of points representing an area that can be traversed in a network from a starting point in a given amount of time. An isodistance is a polygon or set of points representing the area that is a certain distance from the starting point. The Get Travel Boundary operation (also known as an iso definition) takes a starting point, a unit (linear or time), one or more costs and their associated tags as input and returns the resulting travel boundary. Cost refers to the amount of time or distance to use in calculating an iso. A tag is a string that identifies the cost and is used to match the corresponding result. Multiple costs can be given as input by providing the costs as a “;” delimited string.

GetTravelBoundary is part of Spectrum Spatial.

Note: GetTravelBoundary is only available as a web service. GetTravelBoundary is not available through the Java, C++, C, .NET, or COM APIs.

Resource URL

JSON endpoint:

http://server:port/rest/GetTravelBoundary/results.json
https://OnDemandServer/rest/GetTravelBoundary/results.json

XML endpoint:

http://server:port/rest/GetTravelBoundary/results.xml
https://OnDemandServer/rest/GetTravelBoundary/results.xml

For a list of Spectrum OnDemand servers, see ../../../OnDemand/source/GettingStarted/AccessingServices.dita.

Example with JSON Response

The following example requests a JSON response:

http://<server>:<port>/rest/GetTravelBoundary/results.json?​Data.Latitude=51.5072&Data.Longitude=0.1275&Data.&Data.TravelBoundaryCost=10&​Data.TravelBondaryCostUnits=Kilometers&Option.DataSetResourceName=Routing_db_gb
https://spectrum.precisely.com/rest/GetTravelBoundary/results.json?​Data.Latitude=33.751748&Data.Longitude=-84.364014&Data.TravelBoundaryCost=10&​Data.TravelBoundaryCostUnits=Kilometers

The JSON returned by this request would be:

Note: Some of the points have been removed from this example to shorten it.
Note: The response in this example shows coordinates for the returned geometries with values to 14 decimal places. This contributes to a larger than necessary payload in the JSON response, especially when returning large polygons or many records. It also can lead to invalid geometries, such as self-intersections. To reduce the payload by returning shortened coordinate values, add the following to %Spectrum%\server\bin\wrapper\wrapper.conf and restart the server: 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"
   }]
}]}

Example with XML Response

The following example requests an XML response:

http://<server>:<port>/rest/GetTravelBoundary/results.xml?​Data.TravelBoundaryCostUnits=Kilometers&Data.Latitude=33.751748&​Data.Longitude=-84.364014&Data.TravelBoundaryCost=10

https://spectrum.precisely.com/rest/GetTravelBoundary/results.xml?​Data.TravelBoundaryCostUnits=Kilometers&Data.Latitude=33.751748&​Data.Longitude=-84.364014&Data.TravelBoundaryCost=10

The XML returned by this request would be:

Note: Some of the points have been removed from this example to shorten it.
<ns3:xml.GetTravelBoundaryResponse
xmlns:ns2="http://www.mapinfo.com/midev/service/geometries/v1"
xmlns:ns3="http://<server>:<port>/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>