FRAMES | NO FRAMES | Description | New in 10.1 | Parameters | Examples | Response |
URL | http://<nalayer-url>/solve |
Parent Resource | Network Layer |
---|
Note: The Solve Route operation was added at 9.3.1.
The solve operation is performed on a network layer resource.
At 9.3.1, the solve operation is supported only on the route layer. Or specifically, on a network layer whose
layerType
is esriNAServerRouteLayer
.
You can provide arguments to the solve route operation as query parameters defined in the parameters table below.
M values:
outputLines
parameter supports a new value: esriNAOutputLineTrueShapeWithMeasure
. If specified, returned routes, compressed geometry, service area lines will contain M values on each vertex.
Z values:
Route solver supports a new returnZ
parameter. If returnZ=true
and the Route solver is running against Z-aware network dataset, returned routes and compressed geometry will contain Z values on each vertex. Input point and line locations can have Z values on them.
routes, directions, stops and barriers in the response include properties hasZ
and/or hasM
to indicate if the geometry includes z or m.
CompressedGeometry: CompressedGeometry is capable of containing M- and Z- values. How to decompress Ms and Zs: Code Gallery sample code
An optional url
property to specify input stops, barriers, polylinebarriers or polygonbarriers.
The url
value contains a REST Query request to a Feature, Map or a GP service returning a JSON featureset.
The advantage of using this format is that locations can be passed directly from a service endpoint as input to the NA operation, bypassing client as intermediate storage.
Parameter | Details |
---|---|
f | Description: The
response format. The default response format is html. Values: html | json |
stops |
Description:
The set of stops loaded as network locations during analysis.
Stops can be specified using a simple comma / semi-colon based syntax or as a JSON structure.
If stops are not specified, preloaded stops from the map document are used in the analysis.
Syntax and Examples: Simple syntax:You can use a simple comma / semi-colon based syntax if you need to specify only stop point geometries in the default spatial reference or WGS84. Syntax:stops=x1,y1; x2, y2; ...; xn, yn Example: stops=-122.4079, 37.78356; -122.404, 37.782
JSON Structures:Using JSON structures, you can specify 2 types of stops:
FeaturesYou can specify stop geometries as well as attributes using a more comprehensive JSON structure. The JSON structure can include the following properties:
Each feature in this array represents a stop and it contains the following fields:
Syntax 1: using features: { "type" : "features", "hasZ": <true|false>, "features" : [ { "geometry" : {<geometry1>}, "attributes" : {"<field1>" : <value11>, "<field2>" : <value12>} }, { "geometry" : {<geometry2>}, "attributes" : {"<field1>" : <value21>, "<field2>" : <value22>} } ], "doNotLocateOnRestrictedElements" : true | false } Example: { "features" : [ { "geometry" : {"x" : -122.4079, "y" : 37.78356}, "attributes" : {"Name" : "From", "RouteName" : "Route A"} }, { "geometry" : {"x" : -122.404, "y" : 37.782}, "attributes" : {"Name" : "To", "RouteName" : "Route A"} } ] } Syntax 2: using url: //This option was added at 10.1 { "type" : "features", "url" : "<url>", "doNotLocateOnRestrictedElements" : true | false } Example: { "type" : "features", "url" : "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/MapServer/1/query?where=1%3D1&outFields=Name,RouteName&f=json", "doNotLocateOnRestrictedElements" : true } LayerYou can specify stops by referencing a data layer in the map service. Attribute and spatial filters can also be applied on the layer. The JSON structure can include the following properties:
{ "type" : "layer", "layerName" : "<layerName>", "where" : "<whereClause>", "geometry" : {<geometry>}, "geometryType" : "<geometryType>", "spatialRel" : "<spatialRel>", "doNotLocateOnRestrictedElements" : true | false } Example: { "type" : "layer", "layerName" : "PointsOfInterest", "where" : "CITY = 'San Francisco'" } |
barriers |
Description:
The set of barriers loaded as network locations during analysis.
Barriers can be specified using a simple comma / semi-colon based syntax or as a JSON structure.
If barriers are not specified, preloaded barriers from the map document are used in the analysis. If an empty json object is passed ('{}') preloaded barriers are ignored.
Syntax and Examples: Simple syntax:You can use a simple comma / semi-colon based syntax if you need to specify only barrier point geometries in the default spatial reference or WGS84. Syntax:barriers=x1,y1; x2, y2; ...; xn, yn Example: barriers=-122.406, 37.7831; -122.405, 37.7827
JSON Structures:Using JSON structures, you can specify 2 types of barriers:
FeaturesYou can specify barrier geometries as well as attributes using a more comprehensive JSON structure. The JSON structure can include the following properties:
Each feature in this array represents a barrier and it contains the following fields:
{ "type" : "features", "hasZ": <true|false>, "features" : [ { "geometry" : {<geometry1>}, "attributes" : {"<field1>" : <value11>, "<field2>" : <value12>} }, { "geometry" : {<geometry2>}, "attributes" : {"<field1>" : <value21>, "<field2>" : <value22>} } ] } Example: { "features" : [ { "geometry" : {"x" : -122.406, "y" : 37.7831}, "attributes" : {"Name" : "Barrier 1"} }, { "geometry" : {"x" : -122.405, "y" : 37.7827}, "attributes" : {"Name" : "Barrier 2"} } ] } Syntax 2: using url: //This option was added at 10.1 { "type" : "features", "url" : "<url>" } Example: { "type" : "features", "url" : "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/MapServer/0/query?where=1%3D1&returnGeometry=true&f=json" } LayerYou can specify barriers by referencing a data layer in the map service. Attribute and spatial filters can also be applied on the layer. The JSON structure can include the following properties:
{ "type" : "layer", "layerName" : "<layerName>", "where" : "<whereClause>", "geometry" : {<geometry>}, "geometryType" : "<geometryType>", "spatialRel" : "<spatialRel>" } Example: { "type" : "layer", "layerName" : "TrafficAccidents", "where" : "SEVERITY > 0" } |
polylineBarriers |
Description: The set of polyline barriers loaded as network locations
during analysis. If polyline barriers are not specified, preloaded polyline barriers from the map document are used in the analysis.
If an empty json object is passed ('{}') preloaded polyline barriers are ignored. Syntax and Examples: JSON Structures:Using JSON structures, you can specify 2 types of barriers:
FeaturesYou can specify polyline barrier geometries as well as attributes using a more comprehensive JSON structure. The JSON structure can include the following properties:
Each feature in this array represents a barrier and it contains the following fields:
{ "type" : "features", "hasZ": <true|false>, "features" : [ { "geometry" : {<polyline1>}, "attributes" : {"<field1>" : <value11>, "<field2>" : <value12>} }, { "geometry" : {<polyline2>}, "attributes" : {"<field1>" : <value21>, "<field2>" : <value22>} } ] } Example: { "features" : [ { "geometry" : { "paths" : [ [ [-97.06138,32.837], [-97.06133,32.836], [-97.06124,32.834], [-97.06127,32.832] ], [ [-97.06326,32.759], [-97.06298,32.755] ] ], "spatialReference" : {"wkid" : 4326} }, "attributes" : {"Name" : "Barrier 1"} }, { "geometry" : { "paths" : [ [ [-97.06138,32.837], [-97.06133,32.836], [-97.06124,32.834], [-97.06127,32.832] ], [ [-97.06326,32.759], [-97.06298,32.755] ] ], "spatialReference" : {"wkid" : 4326} }, "attributes" : {"Name" : "Barrier 2"} } ] } Syntax 2: using url: //This option was added at 10.1 { "type" : "features", "url" : "<url>" } Example: { "type" : "features", "url" : "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/MapServer/6/query?where=1%3D1&returnGeometry=true&f=json" } LayerYou can specify polyline barriers by referencing a data layer in the map service. Attribute and spatial filters can also be applied on the layer. The JSON structure can include the following properties:
{ "type" : "layer", "layerName" : "<layerName>", "where" : "<whereClause>", "geometry" : {<geometry>}, "geometryType" : "<geometryType>", "spatialRel" : "<spatialRel>" } Example: { "type" : "layer", "layerName" : "PolylineBarrier" } |
polygonBarriers |
Description:
The set of polygon barriers loaded as network locations during analysis.
If polygon barriers are not specified, preloaded polygon barriers from the map document are used in the analysis.
If an empty json object is passed ('{}') preloaded polygon barriers are ignored. Syntax and Examples: JSON Structures:Using JSON structures, you can specify 2 types of barriers:
FeaturesYou can specify polygon barrier geometries as well as attributes using a more comprehensive JSON structure. The JSON structure can include the following properties:
Each feature in this array represents a barrier and it contains the following fields:
{ "type" : "features", "features" : [ { "geometry" : {<polygon1>}, "attributes" : {"<field1>" : <value11>, "<field2>" : <value12>} }, { "geometry" : {<polygon3>}, "attributes" : {"<field1>" : <value21>, "<field2>" : <value22>} } ] } Example: { "features" : [ { "geometry" : { "rings" : [ [ [-97.06138,32.837], [-97.06133,32.836], [-97.06124,32.834], [-97.06127,32.832], [-97.06138,32.837] ], [ [-97.06326,32.759], [-97.06298,32.755], [-97.06153,32.749], [-97.06326,32.759] ] ], "spatialReference" : {"wkid" : 4326} }, "attributes" : {"Name" : "Barrier 1"} }, { "geometry" : { "rings" : [ [ [-97.06138,32.837], [-97.06133,32.836], [-97.06124,32.834], [-97.06127,32.832], [-97.06138,32.837] ], [ [-97.06326,32.759], [-97.06298,32.755], [-97.06153,32.749], [-97.06326,32.759] ] ], "spatialReference" : {"wkid" : 4326} }, "attributes" : {"Name" : "Barrier 2"} } ] } Syntax 2: using url: //This option was added at 10.1 { "type" : "features", "url" : "<url>" } Example: { "type" : "features", "url" : "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/MapServer/7/query?where=1%3D1&returnGeometry=true&f=json" } LayerYou can specify polygon barriers by referencing a data layer in the map service. Attribute and spatial filters can also be applied on the layer. The JSON structure can include the following properties:
{ "type" : "layer", "layerName" : "<layerName>", "where" : "<whereClause>", "geometry" : {<geometry>}, "geometryType" : "<geometryType>", "spatialRel" : "<spatialRel>" } Example: { "type" : "layer", "layerName" : "PolygonBarrier" } |
attributeParameterValues |
Description:
A set of attribute parameter values that can be parameterized to determine which network elements can be used by a vehicle.
Syntax: [ { "attributeName" : "<attribute1>", "parameterName" : "<parameter1>", "value" : "<value1>" }, { "attributeName" : "<attribute2>", "parameterName" : "<parameter2>", "value" : "<value2>" } ] Example: [ { "attributeName" : "Time", "parameterName" : "65 MPH", "value" : "5.0" } ] |
returnDirections |
Description: If true , directions will be generated and returned with the analysis results.
Default is true .
The directions are available in the directions property of the JSON response.
Values: true | false
|
returnRoutes |
Description: If true , routes will be returned with the analysis results.
Default is true .
The routes are available in the routes property of the JSON response.
Values: true | false
|
returnStops |
Description: If true , stops will be returned with the analysis results.
Default is false .
The stops are available in the stops property of the JSON response.
Values: true | false
|
returnBarriers |
Description: If true , barriers will be returned with the analysis results.
Default is false .
The barriers are available in the barriers property of the JSON response.
Values: true | false
|
returnPolylineBarriers |
Description: If true , polyline barriers will be returned with the analysis results.
Default is false .
The polyline barriers are available in the polylineBarriers property of the JSON response.
Values: true | false
|
returnPolygonBarriers |
Description: If true , polygon
barriers will be returned with the analysis results.
Default is false .
The polygon barriers are available in the polygonBarriers property of the JSON response.
Values: true | false
|
outSR |
Description: The spatial reference of the geometries returned with the analysis results.
The spatial reference can be specified as either a well-known ID or as a spatial reference json object. If outSR is not specified, the geometries are returned in the spatial reference of the map. |
ignoreInvalidLocations |
Description: If true , the solver will ignore invalid locations. Otherwise, it will raise an error.
The default is as defined in the network layer.
Values: true | false
|
outputLines |
Description: The type of output lines to be generated in the result.
The default is as defined in the network layer.
Values: esriNAOutputLineNone | esriNAOutputLineStraight | esriNAOutputLineTrueShape | esriNAOutputLineTrueShapeWithMeasure
|
findBestSequence |
Description: If true , the solver should resequence the route in the optimal order.
The default is as defined in the network layer.
Values: true | false
|
preserveFirstStop |
Description: If true , the solver should keep the first stop fixed in the sequence.
The default is as defined in the network layer.
Values: true | false
|
preserveLastStop |
Description: If true , the solver should keep the last stop fixed in the sequence.
The default is as defined in the network layer.
Values: true | false
|
useTimeWindows |
Description: If true , the solver should consider time windows.
The default is as defined in the network layer.
Values: true | false
|
startTime |
Description: The time the route begins. If not specified, the solver will use the default as defined in the network layer.
The time should be specified as a numeric value representing the milliseconds since midnight January 1, 1970. It can be a negative number. You can also specify a value of none to indicate that a start time should not be used.
Example: startTime=1227663551096 (Wed Nov 26 2008 01:39:11 UTC)
|
accumulateAttributeNames |
Description: The list of network attribute names to be accumulated with the analysis.
The default is as defined in the network layer.
The value should be specified as a comma separated list of attribute names. You can also specify a value of none to indicate that no network attributes should be accumulated.
Example: accumulateAttributeNames=WalkingMinutes,Meters
|
impedanceAttributeName |
Description: The network attribute name to be used as the impedance attribute in analysis.
The default is as defined in the network layer.
Example: impedanceAttributeName=DrivingMinutes
|
restrictionAttributeNames |
Description: The list of network attribute names to be used as restrictions with the analysis.
The default is as defined in the network layer.
The value should be specified as a comma separated list of attribute names. You can also specify a value of none to indicate that no network attributes should be used as restrictions.
Example: restrictionAttributeNames=Oneway
|
restrictUTurns |
Description: Specifies how U-Turns should be restricted in the analysis.
The default is as defined in the network layer.
Values: esriNFSBAllowBacktrack | esriNFSBAtDeadEndsOnly | esriNFSBNoBacktrack | esriNFSBAtDeadEndsAndIntersections
|
useHierarchy |
Description: If true , the hierarchy attribute for the network should be used in analysis.
The default is as defined in the network layer.
Values: true | false
|
directionsLanguage |
Description: The language to be used when computing directions.
The default is as defined in the network layer. The list of supported languages can be found in REST layer description.
Example: directionsLanguage=en
|
directionsOutputType |
Description: Defines content, verbosity of returned directions.
The default is esriDOTStandard.
Values: esriDOTComplete | esriDOTCompleteNoEvents | esriDOTInstructionsOnly | esriDOTStandard | esriDOTSummaryOnly
|
directionsStyleName |
Description: The style to be used when returning the directions.
The default is as defined in the network layer. The list of supported styles can be found in REST layer description.
Example: directionsStyleName=NA Navigation
|
directionsLengthUnits |
Description: The length units to use when computing directions.
The default is as defined in the network layer.
Values: esriNAUFeet | esriNAUKilometers | esriNAUMeters | esriNAUMiles | esriNAUNauticalMiles | esriNAUYards | esriNAUUnknown
|
directionsTimeAttributeName |
Description: The name of network attribute to use for the drive time when computing directions.
The default is as defined in the network layer.
Example: directionsTimeAttributeName=DriveTime
|
outputGeometryPrecision |
Description: The precision of the output geometry after generalization.
If 0, no generalization of output geometry is performed.
The default is as defined in the network service configuration.
If present and positive, it represents the MaximumAllowableOffset parameter - generalization is performed according to
IPolycurve.Generalize.
Example: outputGeometryPrecision=0.5
|
outputGeometryPrecisionUnits |
Description: The units of the output geometry precision.
The default value is esriUnknownUnits
Values: esriUnknownUnits | esriCentimeters | esriDecimalDegrees | esriDecimeters | esriFeet | esriInches | esriKilometers |
esriMeters | esriMiles | esriMillimeters | esriNauticalMiles | esriPoints | esriYards
|
returnZ |
//This option was added at 10.1 Description: If true , Z values will be included in the returned routes and compressed geometry if the network dataset is Z-aware.
The default is false .
|
Example 1: http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/NAServer/Route/solve?stops=%7B+%0D%0A%22features%22++%3A+%5B%0D%0A%7B%0D%0A++%22geometry%22+%3A+%7B%22x%22+%3A+-122.4079%2C+%22y%22+%3A+37.78356%7D%2C%0D%0A++%22attributes%22+%3A+%7B%22Name%22+%3A+%22From%22%2C+%22RouteName%22+%3A+%22Route+A%22%7D%0D%0A%7D%2C%0D%0A%7B%0D%0A++%22geometry%22+%3A+%7B%22x%22+%3A+-122.404%2C+%22y%22+%3A+37.782%7D%2C%0D%0A++%22attributes%22+%3A+%7B%22Name%22+%3A+%22To%22%2C+%22RouteName%22+%3A+%22Route+A%22%7D%0D%0A%7D%0D%0A%5D%0D%0A%7D%0D%0A&barriers=&polylineBarriers=&polygonBarriers=&outSR=4326&ignoreInvalidLocations=true&accumulateAttributeNames=&impedanceAttributeName=Time&restrictionAttributeNames=OneWay%2CTurnRestriction%2CAvoid+passenger+ferries%2CNon-routeable+segments&attributeParameterValues=&restrictUTurns=esriNFSBAllowBacktrack&useHierarchy=true&returnDirections=true&returnRoutes=true&returnStops=false&returnBarriers=false&returnPolylineBarriers=false&returnPolygonBarriers=false&directionsLanguage=&directionsStyleName=NA+Desktop&outputLines=esriNAOutputLineTrueShape&findBestSequence=false&preserveFirstStop=true&preserveLastStop=true&useTimeWindows=true&startTime=1227663551096&outputGeometryPrecision=&outputGeometryPrecisionUnits=esriUnknownUnits&directionsTimeAttributeName=Time&directionsLengthUnits=esriNAUMiles&f=html
{ "directions": [ { "routeId": <routeId>, "routeName": "<routeName>", "summary": { "totalLength": <totalLength>, "totalTime": <totalTime>, "totalDriveTime": <totalDriveTime>, "envelope": {<envelope>} }, "hasZ": <true|false>, "hasM": <true|false>, "features": [ { "attributes" : { "length": <length1>, "time": <time1>, "text": "<text1>", "ETA": <ETA>, "maneuverType": "<maneuverType1>" }, "compressedGeometry": "<compressedGeometry1>" }, { "attributes" : { "length": <length2>, "time": <time2>, "text": "<text2>", "maneuverType": "<maneuverType2>" }, "compressedGeometry": "<compressedGeometry2>" } ] } ], "routes": { "spatialReference" : { <spatialReference> }, "hasZ": <true|false>, "hasM": <true|false>, "features": [ { "attributes": { "<field1>": <value11>, "<field2>": <value12> }, "geometry": {<polyline1>} }, { "attributes": { "<field1>": <value21>, "<field2>": <value22> }, "geometry": {<polyline2>} } ] }, "stops": { "spatialReference" : { <spatialReference> }, "hasZ": <true|false>, "features": [ { "attributes": { "<field1>": <value11>, "<field2>": <value12> }, "geometry": {<point1>} }, { "attributes": { "<field1>": <value21>, "<field2>": <value22> }, "geometry": {<point2>} } ] }, "barriers": { "spatialReference" : { <spatialReference> }, "hasZ": <true|false>, "features": [ { "attributes": { "<field1>": <value11>, "<field2>": <value12> }, "geometry": {<point1>} }, { "attributes": { "<field1>": <value21>, "<field2>": <value22> }, "geometry": {<point2>} } ] }, "messages": [ { "type": <type1>, "description": "<description1>" }, { "type": <type2>, "description": "<description2>" } ] }
{ "directions": [ { "routeId": 1, "routeName": "Location 1 - Location 2", "summary": { "totalLength": 0.50052060003988, "totalTime": 0.95, "totalDriveTime": 0.94686265905424, "envelope": {"xmin": -122.4079, "ymin": 37.782, "xmax": -122.40272, "ymax": 37.784} }, "features": [ { "attributes: { "length": 0, "time": 0, "text": "Start at Location 1", "ETA": 1227663551096, "maneuverType": "esriDMTDepart" }, "compressedGeometry": "+1lmd-6dda6+1vcv5+0+0" }, { "attributes: { "length": 0.021503010479337, "time": 0.0515989876798832, "text": "Go northeast on Stevenson St toward 5th St", "ETA": 1228163550000, "maneuverType": "esriDMTStraight" }, "compressedGeometry": "+1lmd-6dda6+1vcv5+f+c" }, { "attributes: { "length": 0.1085833094564, "time": 0.260563671374356, "text": "Turn right on Howard St", "ETA": 1228724380080, "maneuverType": "esriDMTTurnRight" }, "compressedGeometry": "+1lmd-6dd1i+1vcv0-o-j-1l-1a" }, { "attributes: { "length": 0, "time": 0, "text": "Finish at Location 2, on the left", "ETA": 1229125881280, "maneuverType": "esriDMTStop" }, "compressedGeometry": "+1lmd-6dd3v+1vct3+0+0" } ] } ], "routes": { "spatialReference" : {"wkid" : 4326}, "features": [ { "attributes": { "ObjectID": 1, "Name": "Location 1 - Location 2", "FirstStopID": 1, "LastStopID": 2, "StopCount": 2, "Total_Minutes": 12.6930240139726, "Total_Meters": 16446.0849108173, "Shape_Length": 0.171641389705288 }, "geometry": { "paths": [[ [-122.407735892572, 37.7833496425899], [-122.407456001947, 37.7835679980589], [-122.407200001947, 37.7833439980587], [-122.407024001946, 37.7831999980585] ]] } } ] }, "stops": { "spatialReference" : {"wkid" : 4326}, "features": [ { "attributes": { "ObjectID": 1, "Name": "Location 1", "Sequence": 1, "TimeWindowStart": null, "TimeWindowEnd": null, "ArriveCurbApproach": 1, "DepartCurbApproach": 2 }, "geometry": { "x": -122.4079, "y": 37.7835 } } }, { "attributes": { "ObjectID": 2, "Name": "Location 2", "Sequence": 2, "TimeWindowStart": null, "TimeWindowEnd": null, "ArriveCurbApproach": 1, "DepartCurbApproach": 2 }, "geometry": { "x": -122.3931, "y": 37.79496 } } } ] }, "barriers": { "spatialReference" : {"wkid" : 4326}, "features": [ { "attributes": { "ObjectID": 1, "Name": "Barrier 1", "SourceID": 1, "SourceOID": 9619, "PosAlong": 0.841037735851507, "SideOfEdge": 2, "CurbApproach": null, "Status": 0 }, "geometry": { "x": -122.41, "y": 37.7889 } } } ] }, "messages": [ { "type": 50, "description": "Location \"Location 3\" in \"Stops\" is unlocated." }, { "type": 50, "description": "Location \"Location 4\" in \"Stops\" is unlocated." } ] }