Como llegar marcadores después de llamar a las direcciones de accionamiento en la API de Google Maps?

StackOverflow https://stackoverflow.com/questions/2434471

  •  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?

¿Fue útil?

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 ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top