Directions API
GET Drag Route
Drag Route requests are variants of simple Route requests. Drag Route requests allow a route to be recalculated "on the fly" by quickly inserting a new location into the list of existing locations.
A Drag Route request must contain, at a minimum:
- Exactly one Location object with its ```dragPoint``` attribute set to ```true```
- A valid ```mapState``` object, to which the resulting route will be mapped
It is strongly suggested that all location objects have valid linkId
attributes. The easiest way to get a valid linkId
for a location is to use the value returned from a previous Route request. If you do not provide a linkId
for a location, your Drag Route request might fail.
For instance, when a location is supplied with a lat/lng value and dragPoint
set to true
, but the location cannot be mapped to a nearby road, the Drag Route request will fail. Make sure you check the info attribute of the response from your Drag Route request.
Resource URL
Resource Information
Response Formats | JSON, XML |
Authentication | Yes (Requires Key) |
Rate Limited | Yes |
Request Parameters
Request Parameter | Description | Required |
---|---|---|
key String | The API Key, which is needed to make requests to MapQuest services. | Yes |
json | A JSON object that contains exactly one location object with its dragPoint attribute set to true and a valid mapState object, to which the resulting route will be mapped. | Yes |
outFormat String | Specifies the format of the response. Must be one of the following, if supplied:
json | No |
callback | A JavaScript function name. The JSON-formatted response will be wrapped in a call to the supplied callback function name to provide JSONP functionality. This functionality might be needed to do cross-site scripting. See the Wikipedia.org entry for JSON for more details. | No |
Response
Drag Route Response Fields
Response Field | Description |
---|---|
locationSequence | Returns a sequence array that can be used to determine the index in the original location object list. |
locations | Returns a collection of locations in the form of an address. The origin and destination locations remain fixed, but the intermediate locations are re-ordered as appropriate. |
Route Response Fields
Response Field | Description |
---|---|
bestFit | If a mapState is set, the directions service will compute and return new scale, zoom level, and center values that "best fit" the route shape. The best fit response will contain the original mapState height, width and scale as well as a new scale, new center and new level/zoom. It will use original mapState to calculate the new scale, new center and new level/zoom. |
hasTollRoad | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains a Toll Road attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains a Toll Road attribute, otherwise it returns false. |
hasFerry | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains a Ferry attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains a Ferry attribute, otherwise it returns false. |
hasHighway | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains a Limited Access/Highway attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains a Limited Access/Highway attribute, otherwise it returns false. |
hasSeasonalClosure | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains a Seasonal Closure attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains a Seasonal Closure attribute, otherwise it returns false. |
hasUnpaved | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains an Unpaved attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains an Unpaved attribute, otherwise it returns false. |
hasCountryCross | A route attribute flag that is set per route and per leg. Per route, it returns true if at least one leg contains a Country Crossing attribute, otherwise it returns false. Per leg, it returns true if at least one maneuver contains a Country Crossing attribute, otherwise it returns false. |
boundingBox | Returns lat/lng bounding rectangle of all points in the latlng collection; Returns the best-fit for route shape.
|
time | Returns the calculated elapsed time in seconds for the route. |
realTime | Returns the estimated route time in seconds over the route path using current traffic conditions and speeds (where available) along with historical traffic conditions. On longer routes, real-time conditions are only applied to the beginning of the route and historical conditions are used afterwards. The realTime estimate can produce a shorter time than the standard route time when traffic conditions reflect higher speeds than the speed limit. Also, real-time speeds are not available on all roads and as such may not always reflect true conditions. The realTime estimate is most useful on short routes where current conditions produce a higher percentage impact to the total route time. If any road along the route path is currently closed, the time will be greater than 10000000 (an absurdly long time for a route). |
formattedTime | Returns the calculated elapsed time as formatted text in HH:MM:SS format. |
distance | Returns the calculated distance of the route. |
fuelUsed | The estimated amount of fuel used during the route. |
legs | A collection of leg objects, one for each "leg" of the route. |
leg | Describes one "leg" of a route. It contains the maneuvers describing how to get from one location to the next location. Each leg will contain a variety of information, including index , time , distance , and formattedTime . |
Collapsed Narrative Parameters | The origin parameters are used if the user is familiar with the area and wants to collapse/hide the first few steps of the Route Narrative. The destination parameters are used if the user is familiar with the area and wants to collapse/hide the last few steps of the Route Narrative. Please note that this is currently only in the json response, not xml. An example of this is displayed on www.mapquest.com. See/Click the "I know the area, hide the first few steps" or "I know the area, hide the last few steps".
|
maneuvers | A collection of Maneuver objects. |
maneuver | Describes one step in a route narrative. Contains narrative, street names, m_shape, linkIds, route type, turnType, m_distance, m_time, direction, attributes, signs. See descriptions below. |
signs | Returns text name, extra text, type (road shield), and direction present for a particular maneuver. Also returns the URLs for the sign images. |
mapUrl | Returns a URL to a static map of this maneuver. |
narrative | Returns textual driving directions for a particular maneuver. |
maneuverNotes | A collection of maneuverNote objects, one for each maneuver. Note: In order to view the proper maneuver note styles, the narrativeType needs to be set to microformat . Microformat uses HTML span tags with class attributes to allow parts of the narrative to be easily styled via CSS. Read more. |
ruleId | A unique ID that is assigned to a particular maneuver note. This rule ID is used to determine the order that the maneuver notes will be displayed in the narrative. When enhancedNarrative=true , the possible return values are:
enhancedNarrative=false , the possible return values are:
|
manNote | Returns the maneuver note for a particular maneuver. Maneuver notes can exist for Timed Turn Restrictions, Timed Access Roads, HOV Roads, Seasonal Closures, and Timed Direction of Travel. Please Note: When the enhancedNarrative flag is set to true, additional maneuver notes may be displayed (see Route Option: enhancedNarrative). |
manNoteType | Used to specify the type of maneuver note. Possible return values are:
|
direction | Returns the direction associated to a particular maneuver. Possible return values are:
|
streets | Returns the collection of street names this maneuver applies to. |
attributes | Returns the attributes associated to a particular maneuver. Possible return values are:
|
turnType | Returns the turn type associated to a particular maneuver. Possible return values are:
|
startPoint | Returns the 1st shape point latLng for a particular maneuver. This will allow for zoomed street functionality for a maneuver. |
location | Returns a collection of locations in the form of an address. See the Specifying locations as JSON/XML section for more detail on the format of a Location object. |
sessionId | Returns a unique identifier used to refer to a session. An existing session id will be used if provided, otherwise a new one will be created. The route stored in the session will be automatically updated if the session id is provided. Expires after 30 minutes. |
mapState | Used to get the route shape from a session. |
shapeFormat | The shape format options:
|
shape | A collection of latitude/longitude coordinates or shape points for the entire route highlight based on the original mapState and/or the generalize option. Shape is an alternated array of lat/lngs. Evens are latitudes and odds are longitudes. Also included will be:
|
legIndexes | Returns an array of the shape point index for each specific route segment. The shape point index of the end of the segment is legIndex-1 of the next legIndex. Note that there is always one extra legIndex (the number of legIndexes = number of legs + 1) to account for the last shape point of the final segment. |
maneuverIndexes | Returns an array of the starting index for each maneuver. |
shapePoints | Shape points for the route (clipped and generalized) will be returned if mapState is given. Shape points is an alternated array of lat/lngs. Evens are latitudes and odds are longitudes. The index of a specific shape point is i/2. |
options | Returns route options. |
avoids | Attribute flags of roads to try to avoid. The available attribute flags depend on the data set. This does not guarantee roads with these attributes will be avoided if alternate route paths are too lengthy or not possible or roads that contain these attributes are very short. |
mustAvoidLinkIds | Returns link Ids of roads that will be absolutely avoided. May cause some routes to fail. |
tryAvoidLinkIds | Returns link Ids of roads that we will try to avoid during route calculation. Does not guarantee these roads will be avoided if alternate route paths are too lengthy or not possible. |
routeType | Returns the route type. |
locale | Returns the locale. |
unit | Specifies the type of units to use when calculating distance. |
info | This field contains information about the response. The statuscode subfield is an integer return value. See the Status Codes page for more details on our status codes and error messages.The messages subfield is an array of error messages which describe the status. |
transportMode | This is a string indicating the mode of transportation used for the maneuver. Values include:
|
filterZoneFactor | This is returned in the response as part of the options and represents an internal route options used in alternate routes. It cannot be set as an input by the application but can be used to differentiate 2 alternate route results. |
The response will contain a new route, which will be routed (if possible) through the locations supplied. It will not contain narrative information, but will include route shape information.
Note that the value of the route
attribute from the output of a Drag Route request is valid as input to a Route request. This allows you do make multiple Drag Route requests to reshape your route as desired, before making another Route request to get an updated Route narrative.
See the Status Codes page for more details on our status codes and error messages.
Example Request
GET
https://www.mapquestapi.com/directions/v2/dragroute?key=KEY&json={"mapState":{"center":{"lat":40.47683477496205,"lng":-76.46776167187544},"width":400,"height":300,"scale":1733371},"locations":[{"linkId":26982167,"latLng":{"lng":-77.793263,"lat":40.777703},"dragPoint":false},{"latLng":{"lng":-76.85228315623507,"lat":40.296919938790374},"dragPoint":true},{"linkId":37654138,"latLng":{"lng":-75.16562,"lat":39.951061},"dragPoint":false}]}
Example Response
{
"route": {
"hasTollRoad": false,
"computedWaypoints": [],
"fuelUsed": 0,
"shape": {
"maneuverIndexes": [],
"shapePoints": [
40.777702,
-77.793266,
40.794662,
-77.625228,
40.760421,
-77.614624,
40.732818,
-77.635719,
40.727794,
-77.604789,
40.66875,
-77.60427,
40.579151,
-77.551231,
40.611343,
-77.445587,
40.594306,
-77.37841,
40.538757,
-77.342369,
40.569873,
-77.243263,
40.564304,
-77.169738,
40.498077,
-77.126533,
40.471618,
-77.032493,
40.429916,
-77.010665,
40.382377,
-77.016738,
40.364086,
-76.928298,
40.301696,
-76.880767,
40.304107,
-76.830375,
40.213508,
-76.787384,
40.207733,
-76.568069,
40.227882,
-76.492874,
40.243461,
-76.154251,
40.208847,
-76.023696,
40.17218,
-75.979843,
40.176971,
-75.926872,
40.141578,
-75.806976,
40.099533,
-75.749961,
40.065311,
-75.65538,
40.090778,
-75.411567,
40.063911,
-75.328041,
40.071289,
-75.28289,
40.004798,
-75.196006,
39.982254,
-75.207763,
39.951061,
-75.165618
],
"legIndexes": [
0
]
},
"hasUnpaved": false,
"hasHighway": false,
"realTime": -1,
"distance": 81.571,
"time": 5022,
"locationSequence": [
0,
1,
2
],
"locations": [
{
"latLng": {
"lng": -77.793263,
"lat": 40.777703
},
"adminArea4": "",
"adminArea5Type": "City",
"adminArea4Type": "County",
"adminArea5": "",
"street": "",
"adminArea1": "",
"adminArea3": "",
"type": "s",
"displayLatLng": {
"lng": -77.793263,
"lat": 40.777703
},
"linkId": 26982167,
"postalCode": "",
"sideOfStreet": "N",
"dragPoint": false,
"adminArea1Type": "Country",
"geocodeQuality": "LATLNG",
"geocodeQualityCode": "XXXXX",
"adminArea3Type": "State"
},
{
"latLng": {
"lng": -76.853797,
"lat": 40.302349
},
"adminArea4": "",
"adminArea5Type": "City",
"adminArea4Type": "County",
"adminArea5": "",
"street": "US-322 EAST",
"adminArea1": "",
"adminArea3": "",
"type": "s",
"displayLatLng": {
"lng": -76.853797,
"lat": 40.302349
},
"linkId": 37005976,
"postalCode": "",
"sideOfStreet": "N",
"dragPoint": true,
"adminArea1Type": "Country",
"geocodeQuality": "LATLNG",
"geocodeQualityCode": "XXXXX",
"adminArea3Type": "State"
},
{
"latLng": {
"lng": -75.16562,
"lat": 39.951061
},
"adminArea4": "",
"adminArea5Type": "City",
"adminArea4Type": "County",
"adminArea5": "",
"street": "",
"adminArea1": "",
"adminArea3": "",
"type": "s",
"displayLatLng": {
"lng": -75.16562,
"lat": 39.951061
},
"linkId": 37654138,
"postalCode": "",
"sideOfStreet": "N",
"dragPoint": false,
"adminArea1Type": "Country",
"geocodeQuality": "LATLNG",
"geocodeQualityCode": "XXXXX",
"adminArea3Type": "State"
}
],
"hasSeasonalClosure": false,
"hasCountryCross": false,
"legs": [
{
"hasTollRoad": false,
"index": 0,
"roadGradeStrategy": [],
"hasHighway": false,
"hasUnpaved": false,
"distance": 81.571,
"time": 5022,
"origIndex": -1,
"hasSeasonalClosure": false,
"origNarrative": "",
"hasCountryCross": false,
"formattedTime": "01:23:42",
"destNarrative": "",
"destIndex": -1,
"maneuvers": [
{
"signs": [],
"index": 0,
"maneuverNotes": [],
"direction": 0,
"narrative": "",
"iconUrl": "https://content.mapquest.com/mqsite/turnsigns/icon-dirs-start_sm.gif",
"distance": 81.571,
"time": 5022,
"linkIds": [],
"streets": [],
"attributes": 0,
"transportMode": "AUTO",
"formattedTime": "01:23:42",
"directionName": "",
"mapUrl": "https://www.mapquestapi.com/staticmap/v5/getmap?key=KEY&type=map&size=225,160&pois=purple-1,40.777702,-77.793266,0,0|purple-2,39.951060999999996,-75.165618,0,0|¢er=40.3728615,-76.479442&zoom=3&rand=-974493818&session=null",
"startPoint": {
"lng": -77.793266,
"lat": 40.777702
},
"turnType": -1
}
],
"hasFerry": false
}
],
"formattedTime": "01:23:42",
"routeError": {
"message": "",
"errorCode": -400
},
"options": {
"mustAvoidLinkIds": [],
"drivingStyle": 2,
"countryBoundaryDisplay": true,
"generalize": -1,
"narrativeType": "text",
"locale": "en_US",
"avoidTimedConditions": false,
"destinationManeuverDisplay": true,
"enhancedNarrative": false,
"filterZoneFactor": -1,
"timeType": 0,
"maxWalkingDistance": -1,
"routeType": "FASTEST",
"transferPenalty": -1,
"stateBoundaryDisplay": true,
"walkingSpeed": -1,
"maxLinkId": 0,
"arteryWeights": [],
"tryAvoidLinkIds": [],
"unit": "M",
"routeNumber": 0,
"shapeFormat": "raw",
"maneuverPenalty": -1,
"useTraffic": false,
"returnLinkDirections": false,
"avoidTripIds": [],
"manmaps": "true",
"highwayEfficiency": 22,
"sideOfStreetDisplay": true,
"cyclingRoadFactor": 1,
"urbanAvoidFactor": -1
},
"hasFerry": false
},
"info": {
"copyright": {
"text": "© 2024 MapQuest, Inc.",
"imageUrl": "https://api.mqcdn.com/res/mqlogo.gif",
"imageAltText": "© 2024 MapQuest, Inc."
},
"statuscode": 0,
"messages": []
}
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
<info>
<statusCode>0</statusCode>
<messages/>
<copyright>
<imageUrl>https://api.mqcdn.com/res/mqlogo.gif</imageUrl>
<imageAltText>© 2024 MapQuest, Inc.</imageAltText>
<text>© 2024 MapQuest, Inc.</text>
</copyright>
</info>
<routeError>
<errorCode>-400</errorCode>
<message></message>
</routeError>
<route>
<options>
<shapeFormat>raw</shapeFormat>
<generalize>-1.0</generalize>
<maxLinkId>0</maxLinkId>
<narrativeType>text</narrativeType>
<stateBoundaryDisplay>true</stateBoundaryDisplay>
<countryBoundaryDisplay>true</countryBoundaryDisplay>
<sideOfStreetDisplay>true</sideOfStreetDisplay>
<destinationManeuverDisplay>true</destinationManeuverDisplay>
<avoidTimedConditions>false</avoidTimedConditions>
<enhancedNarrative>false</enhancedNarrative>
<returnLinkDirections>false</returnLinkDirections>
<timeType>0</timeType>
<routeType>FASTEST</routeType>
<locale>en_US</locale>
<unit>M</unit>
<tryAvoidLinkIds></tryAvoidLinkIds>
<mustAvoidLinkIds></mustAvoidLinkIds>
<manmaps>true</manmaps>
<drivingStyle>2</drivingStyle>
<highwayEfficiency>22.0</highwayEfficiency>
<useTraffic>false</useTraffic>
</options>
<distance>81.571</distance>
<time>5022</time>
<realTime>-1</realTime>
<fuelUsed>0.0</fuelUsed>
<formattedTime>01:23:42</formattedTime>
<legs>
<leg>
<distance>81.571</distance>
<time>5022</time>
<formattedTime>01:23:42</formattedTime>
<index>0</index>
<maneuvers>
<maneuver>
<startPoint>
<lat>40.7777</lat>
<lng>-77.7933</lng>
</startPoint>
<maneuverNotes/>
<distance>81.571</distance>
<time>5022</time>
<formattedTime>01:23:42</formattedTime>
<attributes>0</attributes>
<turnType>-1</turnType>
<direction>0</direction>
<narrative></narrative>
<directionName></directionName>
<index>0</index>
<streets/>
<signs/>
<linkIds/>
<mapUrl>
<![CDATA[https://www.mapquestapi.com/staticmap/v5/getmap?key=KEY&type=map&size=225,160&pois=purple-2,40.777702,-77.793266,0,0|purple-3,39.951060999999996,-75.165618,0,0|¢er=40.3728615,-76.479442&zoom=3&rand=1637210719&session=null]]>
</mapUrl>
</maneuver>
</maneuvers>
<hasTollRoad>false</hasTollRoad>
<hasFerry>false</hasFerry>
<hasHighway>false</hasHighway>
<hasSeasonalClosure>false</hasSeasonalClosure>
<hasUnpaved>false</hasUnpaved>
<hasCountryCross>false</hasCountryCross>
</leg>
</legs>
<hasTollRoad>false</hasTollRoad>
<hasFerry>false</hasFerry>
<hasHighway>false</hasHighway>
<hasSeasonalClosure>false</hasSeasonalClosure>
<hasUnpaved>false</hasUnpaved>
<hasCountryCross>false</hasCountryCross>
<locations>
<location>
<street></street>
<adminArea5 type="City"></adminArea5>
<adminArea3 type="State"></adminArea3>
<adminArea4 type="County"></adminArea4>
<postalCode></postalCode>
<adminArea1 type="Country"></adminArea1>
<geocodeQuality>LATLNG</geocodeQuality>
<geocodeQualityCode>XXXXX</geocodeQualityCode>
<dragPoint>false</dragPoint>
<sideOfStreet>N</sideOfStreet>
<displayLatLng>
<latLng>
<lat>40.777703</lat>
<lng>-77.793263</lng>
</latLng>
</displayLatLng>
<linkId>26982167</linkId>
<type>s</type>
<latLng>
<lat>40.777703</lat>
<lng>-77.793263</lng>
</latLng>
</location>
<location>
<street>US-322 EAST</street>
<adminArea5 type="City"></adminArea5>
<adminArea3 type="State"></adminArea3>
<adminArea4 type="County"></adminArea4>
<postalCode></postalCode>
<adminArea1 type="Country"></adminArea1>
<geocodeQuality>LATLNG</geocodeQuality>
<geocodeQualityCode>XXXXX</geocodeQualityCode>
<dragPoint>true</dragPoint>
<sideOfStreet>N</sideOfStreet>
<displayLatLng>
<latLng>
<lat>40.302349</lat>
<lng>-76.853797</lng>
</latLng>
</displayLatLng>
<linkId>37005976</linkId>
<type>s</type>
<latLng>
<lat>40.302349</lat>
<lng>-76.853797</lng>
</latLng>
</location>
<location>
<street></street>
<adminArea5 type="City"></adminArea5>
<adminArea3 type="State"></adminArea3>
<adminArea4 type="County"></adminArea4>
<postalCode></postalCode>
<adminArea1 type="Country"></adminArea1>
<geocodeQuality>LATLNG</geocodeQuality>
<geocodeQualityCode>XXXXX</geocodeQualityCode>
<dragPoint>false</dragPoint>
<sideOfStreet>N</sideOfStreet>
<displayLatLng>
<latLng>
<lat>39.951061</lat>
<lng>-75.16562</lng>
</latLng>
</displayLatLng>
<linkId>37654138</linkId>
<type>s</type>
<latLng>
<lat>39.951061</lat>
<lng>-75.16562</lng>
</latLng>
</location>
</locations>
<locationSequence>0,1,2</locationSequence>
<computedWaypoints/>
<shape>
<shapePoints>
<latLng>
<lat>40.777702</lat>
<lng>-77.793266</lng>
</latLng>
<latLng>
<lat>40.794662</lat>
<lng>-77.625228</lng>
</latLng>
<latLng>
<lat>40.760421</lat>
<lng>-77.614624</lng>
</latLng>
<latLng>
<lat>40.732818</lat>
<lng>-77.635719</lng>
</latLng>
<latLng>
<lat>40.727794</lat>
<lng>-77.604789</lng>
</latLng>
<latLng>
<lat>40.66875</lat>
<lng>-77.60427</lng>
</latLng>
<latLng>
<lat>40.579151</lat>
<lng>-77.551231</lng>
</latLng>
<latLng>
<lat>40.611343</lat>
<lng>-77.445587</lng>
</latLng>
<latLng>
<lat>40.594306</lat>
<lng>-77.37841</lng>
</latLng>
<latLng>
<lat>40.538757</lat>
<lng>-77.342369</lng>
</latLng>
<latLng>
<lat>40.569873</lat>
<lng>-77.243263</lng>
</latLng>
<latLng>
<lat>40.564304</lat>
<lng>-77.169738</lng>
</latLng>
<latLng>
<lat>40.498077</lat>
<lng>-77.126533</lng>
</latLng>
<latLng>
<lat>40.471618</lat>
<lng>-77.032493</lng>
</latLng>
<latLng>
<lat>40.429916</lat>
<lng>-77.010665</lng>
</latLng>
<latLng>
<lat>40.382377</lat>
<lng>-77.016738</lng>
</latLng>
<latLng>
<lat>40.364086</lat>
<lng>-76.928298</lng>
</latLng>
<latLng>
<lat>40.301696</lat>
<lng>-76.880767</lng>
</latLng>
<latLng>
<lat>40.304107</lat>
<lng>-76.830375</lng>
</latLng>
<latLng>
<lat>40.213508</lat>
<lng>-76.787384</lng>
</latLng>
<latLng>
<lat>40.207733</lat>
<lng>-76.568069</lng>
</latLng>
<latLng>
<lat>40.227882</lat>
<lng>-76.492874</lng>
</latLng>
<latLng>
<lat>40.243461</lat>
<lng>-76.154251</lng>
</latLng>
<latLng>
<lat>40.208847</lat>
<lng>-76.023696</lng>
</latLng>
<latLng>
<lat>40.17218</lat>
<lng>-75.979843</lng>
</latLng>
<latLng>
<lat>40.176971</lat>
<lng>-75.926872</lng>
</latLng>
<latLng>
<lat>40.141578</lat>
<lng>-75.806976</lng>
</latLng>
<latLng>
<lat>40.099533</lat>
<lng>-75.749961</lng>
</latLng>
<latLng>
<lat>40.065311</lat>
<lng>-75.65538</lng>
</latLng>
<latLng>
<lat>40.090778</lat>
<lng>-75.411567</lng>
</latLng>
<latLng>
<lat>40.063911</lat>
<lng>-75.328041</lng>
</latLng>
<latLng>
<lat>40.071289</lat>
<lng>-75.28289</lng>
</latLng>
<latLng>
<lat>40.004798</lat>
<lng>-75.196006</lng>
</latLng>
<latLng>
<lat>39.982254</lat>
<lng>-75.207763</lng>
</latLng>
<latLng>
<lat>39.951061</lat>
<lng>-75.165618</lng>
</latLng>
</shapePoints>
<legIndexes>
<index>0</index>
</legIndexes>
<maneuverIndexes/>
</shape>
</route>
</response>