¿Cómo puedo cambiar un icono de marcador cuando se hace clic en un marcador (en un evento de clic) y devolverlo a un icono normal cuando se hace clic en otro marcador?Google Maps API v3, cómo cambiar el icono de marcador al hacer clic
Respuesta
No he probado este código, por lo que puede haber errores tipográficos o errores, pero debería darle la idea.
En primer lugar, definir una devolución de llamada para establecer todos los marcadores al icono normal (para restablecer cualquier previamente ha hecho clic marcadores) y el icono de la corriente del marcador se ha hecho clic en el icono seleccionado:
var markerCallback = function() {
for (var i=0; i<arrayOfMarkers.length; i++) {
arrayOfMarkers[i].setIcon(normalIcon);
}
this.setIcon(selectedIcon);
}
A continuación, asignar la devolución de llamada el evento de clic en cada marcador así:
google.maps.event.addListener(marker, 'click', markerCallback);
Sin duda, hay algunas mejoras de código que se podrían realizar. Por ejemplo, es posible que no desee que normalIcon
, selectedIcon
y arrayOfMarkers
sean variables globales de la forma en que el código anterior supone que son. Y si tiene muchos marcadores, probablemente desee realizar un seguimiento del marcador previamente seleccionado en lugar de tener un bucle for
que reinicie el icono en cada uno de ellos.
Pero como dije, esto debería darle la idea.
Sólo en cualquier caso alguien quiere ver un ejemplo de hacer el seguimiento del marcador anterior en una variable global como Kasper ha mencionado, esto es lo que hice:
google.maps.event.addListener(marker,'click',function() {
if (selectedMarker) {
selectedMarker.setIcon(normalIcon);
}
marker.setIcon(selectedIcon);
selectedMarker = marker;
});
(después de ajustar selectedMarker como una variable global)
¡Gracias! Funcionó :) – VishwaKumar
necesitaba algunos cambios para mi caso, pero la idea es super clean man, gracias – vaskort
Excelente hombre, proporcionó la mejor solución – Devz
- 1. Google Maps api V3 marcador de actualización
- 2. Quitar marcador en Google Maps Api v3
- 3. Cambiar marcadores individuales en direcciones de google maps api V3
- 4. icono de marcador de cambio en mouseover (google maps V3)
- 5. ¿Cómo cambiar MapTypeid en Google Maps API v3?
- 6. Cambiar el tamaño del marcador en Google maps V3
- 7. GoogleMaps v3 API Crear solo 1 marcador al hacer clic
- 8. Google Maps Api v3, icono del clúster personalizado
- 9. Eliminación de un marcador en Google Maps API v3
- 10. marcador animoso en Google Maps v3
- 11. Google Maps API v3: haga clic en eventos no activados en Firefox para el marcador personalizado
- 12. Google Maps API v3 marcador con la etiqueta
- 13. Google Maps API v3: Administrador de dibujos
- 14. JS Google Maps API v3 Marcador animado entre coordenadas
- 15. Google Maps API v3 BrowserIsCompatible
- 16. Actualizar Marcador Posición Google Maps V3
- 17. marcador google maps v3 mouseover tooltip
- 18. Google Maps marcador V3 con la etiqueta
- 19. Google Maps v3 marcador ventana de información en mouseover
- 20. API de Google Maps: Abrir URL haciendo clic en marcador
- 21. Google Maps Api V3 - Asignación de varios oyentes al mismo objeto marcador
- 22. Google Maps API v2 vs Google Maps API v3?
- 23. Google Maps: cómo agregar sombra al marcador personalizado?
- 24. ¿Cómo acceder al DIV del marcador de Google Maps API v3 y su posición de píxel?
- 25. Hacer que la superposición personalizada se pueda hacer clic (Google Maps API v3)
- 26. google maps v3 API mouseover con polígonos?
- 27. Evento desencadenante con InfoWindow o InfoBox al hacer clic en Google Map API V3
- 28. Google Maps API v3 - ¿Cómo borrar las superposiciones?
- 29. Google Maps API V3 fromDivPixelToLatLng no es coherente
- 30. Google Maps API de JavaScript v3
Sería mucho más fácil simplemente asignar el marcador seleccionado actualmente a una variable global en lugar de ejecutar todos los marcadores cada vez :) –
@Kasper: Sí, tienes razón, ¡eso sería mejor! (En mi defensa, mencioné ese problema: "Y si tiene muchos marcadores, probablemente desee realizar un seguimiento del marcador seleccionado previamente en lugar de tener un bucle' for' para restablecer el ícono en cada uno de ellos. ") – Trott
Lo siento, me extrañé por completo. Solo se centró en el ejemplo de código: D –