var that = this;
return {
name: "javascripts.directions.engines.mapquest_"+this.vehicleName.toLowerCase(),
- creditline: 'Directions courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">',
+ creditline: '<a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">',
draggable: false,
_hints: {},
MQ_SPRITE_MAP: {
18: 1 // straight fork
},
getRoute: function(isFinal,points) {
- var url="http://open.mapquestapi.com/directions/v2/route?key=Fmjtd%7Cluur290anu%2Crl%3Do5-908a0y";
+ var url=document.location.protocol+"//open.mapquestapi.com/directions/v2/route?key=Fmjtd%7Cluur290anu%2Crl%3Do5-908a0y";
var from=points[0]; var to=points[points.length-1];
url+="&from="+from.join(',');
url+="&to="+to.join(',');
url+="&"+that.vehicleParam;
- //url+="&locale=" + I18n.currentLocale(); //Doesn't actually work. MapQuest requires full locale e.g. "de_DE", but I18n only provides language, e.g. "de"
+ //url+="&locale=" + I18n.currentLocale(); //Doesn't actually work. MapQuest requires full locale e.g. "de_DE", but I18n may only provides language, e.g. "de"
url+="&manMaps=false";
url+="&shapeFormat=raw&generalize=0&unit=k";
this.requestCORS(url);
}
router.setPolyline(poly);
- // data.shape.maneuverIndexes links turns to polyline positions
- // data.legs[0].maneuvers is list of turns
+ // data.route.shape.maneuverIndexes links turns to polyline positions
+ // data.route.legs[0].maneuvers is list of turns
var steps=[];
var mq=data.route.legs[0].maneuvers;
for (var i=0; i<mq.length; i++) {
var s=mq[i];
- var d=(i==mq.length-1) ? 15: this.MQ_SPRITE_MAP[s.turnType];
- steps.push([L.latLng(s.startPoint.lat, s.startPoint.lng), d, s.narrative, s.distance*1000]);
+ var d;
+ var linesegstart, linesegend, lineseg;
+ linesegstart = data.route.shape.maneuverIndexes[i];
+ if (i==mq.length-1) {
+ d = 15;
+ linesegend = linesegstart + 1;
+ } else {
+ d = this.MQ_SPRITE_MAP[s.turnType];
+ linesegend = data.route.shape.maneuverIndexes[i+1] + 1;
+ }
+ lineseg = [];
+ for (var j=linesegstart; j<linesegend; j++) {
+ lineseg.push(L.latLng(data.route.shape.shapePoints[j*2], data.route.shape.shapePoints[j*2+1]));
+ }
+ steps.push([L.latLng(s.startPoint.lat, s.startPoint.lng), d, s.narrative, s.distance*1000, lineseg]);
}
router.setItinerary( { steps: steps, distance: data.route.distance*1000, time: data.route['time'] });
return true;
};
};
-OSM.RoutingEngines.list.push(new MapQuestEngine("Bicycle", "routeType=bicycle").createConfig());
-OSM.RoutingEngines.list.push(new MapQuestEngine("Foot", "routeType=pedestrian").createConfig());
-OSM.RoutingEngines.list.push(new MapQuestEngine("Car", "routeType=fastest").createConfig());
+OSM.RoutingEngines.add(true, new MapQuestEngine("Bicycle", "routeType=bicycle").createConfig());
+OSM.RoutingEngines.add(true, new MapQuestEngine("Foot", "routeType=pedestrian").createConfig());
+OSM.RoutingEngines.add(true, new MapQuestEngine("Car", "routeType=fastest").createConfig());
// can be: routeType=fastest|shortest|pedestrian|multimodal|bicycle