jsrouting: mouseover an instruction, highlight the route segment

This commit is contained in:
Dan Stowell 2014-03-09 09:37:42 +00:00
parent eab2eeaa47
commit 15f0367e7f
4 changed files with 41 additions and 8 deletions

View file

@ -60,14 +60,27 @@ MapQuestEngine.prototype.createConfig = function() {
}
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;