Como llegar marcadores después de llamar a las direcciones de accionamiento en la API de Google Maps?
-
19-09-2019 - |
Pregunta
Acabo de empezar a trabajar con Google Maps API de ayer, y tratar de establecer direcciones de unidad a mi mapa. Mi problema es: cuando llame a la función de carga,
// [...]
gdir = new GDirections(map, directionsPanel);
// [...]
gdir.load("from: " + fromAddress + " to: " + toAddress);
devuelve un mapa cuyos marcadores no se pueden arrastrar. Por lo tanto, tengo que hacerlos arrastrable con el fin de volver a calcular las direcciones, pero no puedo conseguir los objetos marcadores.
Alguien sabe cómo puedo hacerlo?
Solución
Es necesario agregar un controlador en el GDirections de objeto para el addoverlay eventos:
GEvent.addListener(gdir, "addoverlay", onGDirectionsAddOverlay);
Cuando su onGDirectionsAddOverlay gestor se llama que se pueden recorrer los nuevos marcadores y reemplazarlos con ejemplares que pueden arrastrarse:
for (var i = 0; i <= gdir.getNumRoutes(); i++)
{
var originalMarker = gdir.getMarker(i);
latLngs[i] = originalMarker.getLatLng();
icons[i] = originalMarker.getIcon();
newMarkers[i] = new GMarker(latLngs[i], { icon: icons[i], draggable: true, title: 'Kan flyttes' });
map.addOverlay(newMarkers[i]);
// add stuff to your newMarkers[i] drag end event...
// ...
//Bind 'click' event to original markers 'click' event
copyClick(newMarkers[i], originalMarker);
// Now we can remove the original marker safely
map.removeOverlay(originalMarker);
}
Puede encontrar un ejemplo de trabajo de esta aquí ( fuente ).