All,
I'm using esri javascript api 3.20.
I want to implement an ONE-WAY restriction for route analysis.
The network server (NAServer) has an attribute "Driving a Passenger Car". (TomTom North America data)
In arcmap, the results are as expected.
But when using esri js api, the results was
How to apply the one-way restriction?
var layer = new GraphicsLayer({id: 'route'});
map.addLayer(layer);
var features = [];
var p1 = new Graphic(new Point(-73.936131, 42.818060), stopSymbol);
var p2 = new Graphic(new Point(-73.936946, 42.819637), stopSymbol);
features.push(p1);
features.push(p2);
layer.add(p1);
layer.add(p2);
var featureSet = new FeatureSet();
featureSet.features = features;
parameters.stops = featureSet;
parameters.outSpatialReference = {wkid: 3857};
parameters.returnStops = true;
parameters.returnDirections = true;
parameters.directionsTimeAttributes = "Minutes";
parameters.outputLines = NATypes.OutputLine.TRUE_SHAPE;
parameters.doNotLocateOnRestrictedElements = false;
parameters.attributeParameterValues = [{
"attributeName": "Driving a Passenger Car",
"parameterName": "Restriction Usage",
"value": "Prohibited"
}];
parameters.restrictionAttributes = ['Driving a Passenger Car'];
task.solve(parameters).then(function(results){
var routeResults = results.routeResults[0],
route = routeResults.route;
route.setSymbol(routeSymbol);
layer.add(route); // the route without restriction
}.bind(this), function(error){
console.log(error);
}.bind(this));
I'm trying to use travel mode option, but the result is same as before.
var featureSet = new FeatureSet();
featureSet.features = features;
parameters.stops = featureSet;
parameters.outSpatialReference = {wkid: 3857};
parameters.returnStops = true;
parameters.returnDirections = true;
parameters.directionsTimeAttributes = "Minutes";
parameters.outputLines = NATypes.OutputLine.TRUE_SHAPE;
parameters.doNotLocateOnRestrictedElements = false;
task.getServiceDescription().then(function(results){
var travelMode = results.supportedTravelModes.filter(function(item) { return item.name == "Driving Time" })[0];
parameters.travelMode = travelMode;
task.solve(parameters).then(function(results){
var routeResults = results.routeResults[0],
route = routeResults.route;
route.setSymbol(routeSymbol);
layer.add(route);
}.bind(this), function(error){
console.log(error);
}.bind(this));
}.bind(this));
The travel mode description
"
{"name":"Driving Time",
"id":"1",
"type":"AUTOMOBILE",
"description":"Models the movement of cars and other similar small automobiles, such as pickup trucks, and finds solutions that optimize travel time. Travel obeys one-way roads, avoids illegal turns, and follows other rules that are specific to cars. Dynamic travel speeds based on traffic are used where it is available when you specify a start time.",
"timeAttributeName":"TravelTime",
"distanceAttributeName":"Kilometers",
"impedanceAttributeName":"TravelTime",
"restrictionAttributeNames":
["Avoid Unpaved Roads",
"Avoid Private Roads",
"Driving a Passenger Car",
"Through Traffic Prohibited",
"Roads Under Construction Prohibited",
"Avoid Gates",
"Avoid Express Lanes",
"Avoid Carpool Roads",
"Avoid Pedestrian Zones",
"Avoid Roads for Authorities",
"Avoid Service Roads",
"Avoid Walkways"],
"attributeParameterValues":
[
{"attributeName":"Driving a Passenger Car",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Driving a Public Bus",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Driving a Residential Vehicle",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Driving a Taxi",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Driving a Commercial Vehicle",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Driving a Truck",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Ferries",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Toll Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Service Roads",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Pedestrian Zones",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Walkways",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Roads for Authorities",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Roads in Poor Condition",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Private Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Roads Under Construction Prohibited",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Back Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Limited Access Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Unpaved Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_High"},
{"attributeName":"Through Traffic Prohibited",
"parameterName":"Restriction Usage",
"value":"Avoid_High"},
{"attributeName":"Avoid Express Lanes",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Carpool Roads",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Avoid Gates",
"parameterName":"Restriction Usage",
"value":"Avoid_Medium"},
{"attributeName":"Avoid Truck Restricted Roads",
"parameterName":"Restriction Usage",
"value":"Avoid_High"},
{"attributeName":"Any Hazmat Prohibited",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Height Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Height Restriction",
"parameterName":"Vehicle Height (meters)",
"value":0},
{"attributeName":"Length Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Length Restriction",
"parameterName":"Vehicle Length (meters)",
"value":0},
{"attributeName":"Trailer Length Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Trailer Length Restriction",
"parameterName":"Trailer Length (meters)",
"value":0},
{"attributeName":"Use Preferred Hazmat Routes",
"parameterName":"Restriction Usage",
"value":"Prefer_Medium"},
{"attributeName":"Use Preferred Truck Routes",
"parameterName":"Restriction Usage",
"value":"Prefer_Medium"},
{"attributeName":"Weight Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Weight Restriction",
"parameterName":"Vehicle Weight (kilograms)",
"value":0},
{"attributeName":"Weight per Axle Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Weight per Axle Restriction",
"parameterName":"Vehicled Weight per Axle (kilograms)",
"value":0},
{"attributeName":"Width Restriction",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"Width Restriction",
"parameterName":"Vehicle Width (meters)",
"value":0},
{"attributeName":"Riding a Bicycle",
"parameterName":"Restriction Usage",
"value":"Prohibited"},
{"attributeName":"WalkTime",
"parameterName":"Walking Speed (km/h)",
"value":5},
{"attributeName":"Walking",
"parameterName":"Restriction Usage",
"value":"Prohibited"}],
"useHierarchy":true,"uturnAtJunctions":"esriNFSBAtDeadEndsAndIntersections",
"simplificationTolerance":null,"simplificationToleranceUnits":"esriUnknownUnits"}"