Get Travel Boundary

Get Travel Boundary 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.

Get Travel Boundary is part of the Enterprise Routing Module.

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

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.pitneybowes.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://myserver:8080/rest/GetTravelBoundary/results.xml?​Data.TravelBoundaryCostUnits=Kilometers&Data.Latitude=33.751748&​Data.Longitude=-84.364014&Data.TravelBoundaryCost=10
https://spectrum.pitneybowes.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://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>

Example

Case 1, Single Cost:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:get="http://www.pb.com/spectrum/services/GetTravelBoundary">
   <soapenv:Header/>
   <soapenv:Body>
      <get:GetTravelBoundaryRequest>
         <get:input_port>
            <get:IsoRouteRequest>
               <get:Latitude>33.751748</get:Latitude>
               <get:Longitude>-84.364014</get:Longitude>
               <get:TravelBoundaryCost>10</get:TravelBoundaryCost>
               <get:TravelBoundaryCostUnits>Kilometers</get:TravelBoundaryCostUnits>
            </get:IsoRouteRequest>
         </get:input_port>
      </get:GetTravelBoundaryRequest>
   </soapenv:Body>
</soapenv:Envelope>

This would be the response:

Note: Some of the points have been removed from this example to shorten it.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns4:GetTravelBoundaryResponse xmlns:ns2="http://spectrum.pb.com/"
      xmlns:ns3="http://www.mapinfo.com/midev/service/geometries/v1"
      xmlns:ns4="http://www.pb.com/spectrum/services/GetTravelBoundary">
         <ns4:output_port>
            <ns4:IsoRouteResponse>
               <ns4:IsoNodeResponse/>
               <ns4:IsoPolygonResponse
                    xsi:type="ns3:MultiPolygon"
                    srsName="epsg:4326"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <ns3:Polygon srsName="epsg:4326">
                     <ns3:Exterior>
                        <ns3:LineString>
                           <ns3:Pos>
                              <ns3:X>-84.34868168466456</ns3:X>
                              <ns3:Y>33.68373169496257</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.36945064055561</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69303002973829</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.69391558543121</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.6936408692491</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.42163929894845</ns3:X>
                              <ns3:Y>33.716054477754355</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.4440058668311</ns3:X>
                              <ns3:Y>33.710741143596806</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.43921303085625</ns3:X>
                              <ns3:Y>33.72800947960886</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.45678676276404</ns3:X>
                              <ns3:Y>33.73376559161287</ns3:Y>
                           </ns3:Pos>
                           ...
                        </ns3:LineString>
                     </ns3:Exterior>
                  </ns3:Polygon>
               </ns4:IsoPolygonResponse>
               <ns4:user_fields/>
            </ns4:IsoRouteResponse>
         </ns4:output_port>
      </ns4:GetTravelBoundaryResponse>
   </soap:Body>
</soap:Envelope>

Case 2, Multiple Costs:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:get="http://www.pb.com/spectrum/services/GetTravelBoundary">
   <soapenv:Header/>
   <soapenv:Body>
      <get:GetTravelBoundaryRequest>
         <get:input_port>
            <get:IsoRouteRequest>
               <get:Latitude>33.751748</get:Latitude>
               <get:Longitude>-84.364014</get:Longitude>
               <get:TravelBoundaryCost>5;10</get:TravelBoundaryCost>
               <get:TravelBoundaryCostUnits>Kilometers</get:TravelBoundaryCostUnits>
            </get:IsoRouteRequest>
         </get:input_port>
      </get:GetTravelBoundaryRequest>
   </soapenv:Body>
</soapenv:Envelope>

This would be the response:

Note: Some of the points have been removed from this example to shorten it.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns4:GetTravelBoundaryResponse xmlns:ns2="http://spectrum.pb.com/"
      xmlns:ns3="http://www.mapinfo.com/midev/service/geometries/v1"
      xmlns:ns4="http://www.pb.com/spectrum/services/GetTravelBoundary">
         <ns4:output_port>
            <ns4:IsoRouteResponse>
			   <ns4:cost>5</ns4:cost>
			   <ns4:costUnits>Kilometers</ns4: costUnits >
			   <ns4:IsoNodeResponse/>
               <ns4:IsoPolygonResponse
                    xsi:type="ns3:MultiPolygon"
                    srsName="epsg:4326"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <ns3:Polygon srsName="epsg:4326">
                     <ns3:Exterior>
                        <ns3:LineString>
                           <ns3:Pos>
                              <ns3:X>-84.34868168466456</ns3:X>
                              <ns3:Y>33.68373169496257</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.36945064055561</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69303002973829</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.69391558543121</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.6936408692491</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.42163929894845</ns3:X>
                              <ns3:Y>33.716054477754355</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.4440058668311</ns3:X>
                              <ns3:Y>33.710741143596806</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.43921303085625</ns3:X>
                              <ns3:Y>33.72800947960886</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.45678676276404</ns3:X>
                              <ns3:Y>33.73376559161287</ns3:Y>
                           </ns3:Pos>
                           ...
                        </ns3:LineString>
                     </ns3:Exterior>
                  </ns3:Polygon>
               </ns4:IsoPolygonResponse>
               <ns4:user_fields/>
            </ns4:IsoRouteResponse>
			<ns4:IsoRouteResponse>
			   <ns4:cost>10</ns4:cost>
			   <ns4:costUnits>Kilometers</ns4: costUnits >
			   <ns4:IsoNodeResponse/>
               <ns4:IsoPolygonResponse
                    xsi:type="ns3:MultiPolygon"
                    srsName="epsg:4326"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <ns3:Polygon srsName="epsg:4326">
                     <ns3:Exterior>
                        <ns3:LineString>
                           <ns3:Pos>
                              <ns3:X>-84.34868168466456</ns3:X>
                              <ns3:Y>33.68373169496257</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.36945064055561</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69293307108579</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.3694506405556</ns3:X>
                              <ns3:Y>33.69303002973829</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.69391558543121</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.37104825254721</ns3:X>
                              <ns3:Y>33.6936408692491</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.42163929894845</ns3:X>
                              <ns3:Y>33.716054477754355</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.4440058668311</ns3:X>
                              <ns3:Y>33.710741143596806</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.43921303085625</ns3:X>
                              <ns3:Y>33.72800947960886</ns3:Y>
                           </ns3:Pos>
                           <ns3:Pos>
                              <ns3:X>-84.45678676276404</ns3:X>
                              <ns3:Y>33.73376559161287</ns3:Y>
                           </ns3:Pos>
                           ...
                        </ns3:LineString>
                     </ns3:Exterior>
                  </ns3:Polygon>
               </ns4:IsoPolygonResponse>
               <ns4:user_fields/>
            </ns4:IsoRouteResponse>
         </ns4:output_port>
      </ns4:GetTravelBoundaryResponse>
   </soap:Body>
</soap:Envelope>