Tengo un mapa con ruta (varios destinos, no solo A, B como en la página siguiente). Las direcciones son arrastrables. Me gustaría guardar las rutas modificadas. La página a continuación es lo que iba ... pordirecciones Gmaps guardado de rutas, puntos intermedios
Esto es lo que tengo:
google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
console.log('reroute');
var rleg_count = directionsDisplay.directions.routes[0].legs.length;
data.start = {
'lat':directionsDisplay.directions.routes[0].legs[0].start_location.lat(),
'lng':directionsDisplay.directions.routes[0].legs[0].start_location.lng()
};
data.end = {
'lat':directionsDisplay.directions.routes[0].legs[rleg_count-1].end_location.lat(),
'lng':directionsDisplay.directions.routes[0].legs[rleg_count-1].end_location.lng()
};
var wp=[];
var w = [];
var route = directionsDisplay.directions.routes[0];
for (var l = 0; l < route.legs.length; l++)
{
for(var j = 0; j < route.legs[l].via_waypoints.length; j++)
{
w.push({
location:{'lat':route.legs[l].via_waypoints[j].lat(), 'lng':route.legs[l].via_waypoints[j].lng()},
stopover:true
});
}
}
data.waypoints = w;
});
Y la función setroute:
function setRoute(os)
{
var wp = [];
for(var i=0;i<os.waypoints.length;i++)
{
wp[i] = {
'location': new google.maps.LatLng(os.waypoints[i].location.lat, os.waypoints[i].location.lng),
'stopover': os.waypoints[i].stopover
}
}
var request = {
'origin':new google.maps.LatLng(os.start.lat, os.start.lng),
'destination':new google.maps.LatLng(os.end.lat, os.end.lng),
'waypoints': wp,
optimizeWaypoints: false,
avoidHighways: false,
avoidTolls: false,
travelMode: google.maps.TravelMode.DRIVING,
}
directionsService.route(request, function(res,sts){
// console.log(res);
// console.log(sts);
if(sts=='OK')
directionsDisplay.setDirections(res);
});
}
El problema es que el código funciona si solo hay 2 destinos (A, B), pero tan pronto como hay más destinos ... no funciona bien ... ignora los otros destinos
Por lo que he podido decir, los waypoints son correctos. Parece que hay un problema con múltiples destinos y no sé cómo rectificarlo.
Gracias!