En Google Maps API v2, si quisiera eliminar todos los marcadores del mapa, simplemente podría hacer:
map.clearOverlays();
¿Cómo hago esto en la API de Google Maps v3 ?
Mirando la API de referencia , no me queda claro.
En Google Maps API v2, si quisiera eliminar todos los marcadores del mapa, simplemente podría hacer:
map.clearOverlays();
¿Cómo hago esto en la API de Google Maps v3 ?
Mirando la API de referencia , no me queda claro.
Respuestas:
Simplemente haga lo siguiente:
I. Declarar una variable global:
II Definir una función:
O
III. Empuje los marcadores en la 'matriz de marcadores' antes de llamar a lo siguiente:
IV. Llame a la función
clearOverlays();
omap.clearOverlays();
donde sea necesario.¡¡Eso es!!
fuente
markersArray
en una matriz vacía en lugar de establecer su longitud, lo que me parece extraño:markersArray = [];
while
método para el procesamiento de la matriz:while(markersArray.length) { markersArray.pop().setMap(null); }
. No es necesario borrar la matriz después de eso.El mismo problema. Este código ya no funciona.
Lo he corregido, cambie el método clearMarkers de esta manera:
set_map (null) ---> setMap (null)
La documentación se ha actualizado para incluir detalles sobre el tema: https://developers.google.com/maps/documentation/javascript/markers#remove
fuente
new Array();
?Parece que todavía no existe tal función en V3.
Las personas sugieren mantener referencias a todos los marcadores que tiene en el mapa en una matriz. Y luego, cuando desee eliminarlos todos, simplemente recorra la matriz y llame al método .setMap (nulo) en cada una de las referencias.
Vea esta pregunta para más información / código.
Mi version:
El código es una versión editada de este código http://www.lootogo.com/googlemapsapi3/markerPlugin.html Eliminé la necesidad de llamar a addMarker manualmente.
Pros
Contras
fuente
Esta fue la más simple de todas las soluciones publicadas originalmente por YingYang el 11 de marzo de 14 a 15: 049 en la respuesta original a la pregunta original de los usuarios
Estoy usando su misma solución 2.5 años después con google maps v3.18 y funciona de maravilla
fuente
No creo que haya uno en V3, así que utilicé la implementación personalizada anterior.
Descargo de responsabilidad: no escribí este código, pero olvidé conservar una referencia cuando la fusioné en mi base de código, así que no sé de dónde vino.
fuente
En la nueva versión v3, recomendaron mantener en matrices. como sigue.
Ver muestra en overlay-overview .
fuente
La Galería de demostración de Google tiene una demostración de cómo lo hacen:
http://code.google.com/apis/maps/documentation/javascript/examples/overlay-remove.html
Puede ver el código fuente para ver cómo agregan marcadores.
En pocas palabras, mantienen los marcadores en una matriz global. Al borrarlos / eliminarlos, recorren la matriz y llaman ".setMap (null)" en el objeto marcador dado.
Sin embargo, este ejemplo muestra un 'truco'. "Borrar" para este ejemplo significa eliminarlos del mapa pero mantenerlos en la matriz, lo que permite que la aplicación los vuelva a agregar rápidamente al mapa. En cierto sentido, esto actúa como "ocultarlos".
"Eliminar" también borra la matriz.
fuente
solo funciona en IE.
trabajando en Chrome, Firefox, es decir ...
fuente
La solución es bastante fácil. Es posible utilizar el método:
marker.setMap(map);
. Aquí, usted define en qué mapa aparecerá el pin.Entonces, si configura
null
este método (marker.setMap(null);
), el pin desaparecerá.Ahora, puedes escribir una función bruja mientras haces desaparecer todos los marcadores en tu mapa.
Simplemente agregue para colocar sus pines en una matriz y declararlos con
markers.push (your_new pin)
o este código, por ejemplo:Esta es una función que la bruja puede establecer o desaparecer todos los marcadores de su matriz en el mapa:
Para desaparecer todos sus marcadores, debe llamar a la función con
null
:Y, para eliminar y desaparecer todos sus marcadores, debe restablecer su matriz de marcadores de esta manera:
Este es mi código completo. Es lo más simple que podría reducir. Tenga cuidado de que pueda reemplazar
YOUR_API_KEY
en el código por su API de Google clave:Puede consultar al desarrollador de Google o la documentación completa en, también, el sitio web del desarrollador de Google .
fuente
Una aplicación limpia y fácil de la respuesta de Rolinger.
fuente
set_map
Parece que la función " " publicada en ambas respuestas ya no funciona en la API de Google Maps v3.Me pregunto qué pasó
Actualizar:
Parece que Google cambió su API de modo que "
set_map
" no es "setMap
".http://code.google.com/apis/maps/documentation/v3/reference.html
fuente
Aquí puede encontrar un ejemplo de cómo eliminar marcadores:
https://developers.google.com/maps/documentation/javascript/examples/marker-remove?hl=es
fuente
Lo siguiente de Anon funciona perfectamente, aunque con parpadeos cuando se borran repetidamente las superposiciones.
Simplemente haga lo siguiente:
I. Declarar una variable global:
II Definir una función:
III. Empuje los marcadores en la 'matriz de marcadores' antes de llamar a lo siguiente:
IV. Llame a la
clearOverlays()
función donde sea necesario.¡¡Eso es!!
Espero que te ayude.
fuente
for(in in markersArray){}
probablemente no hace lo que espera que haga. SiArray
se extiende a cualquier otro lugar del código, también iterará sobre esas propiedades, y no solo los índices. La versión javascript de eso es lamarkersArray.forEach()
que no es compatible en todas partes. Sería mejor confor(var i=0; i<markersArray.length; ++i){ markersArray.setMap(null); }
Encontré el uso de la biblioteca markermanager en el proyecto google-maps-utility-library-v3 como la forma más fácil.
1. Configure el MarkerManager
2. Agregue marcadores al MarkerManager
3. Para borrar marcadores solo necesita llamar a la
clearMarkers()
función MarkerMangerfuente
clearMarkers
hace es iterar sobre los marcadores que llamanmarker.setMap(null)
(verifiqué la fuente). Sería menos trabajo ponerlos en una matriz y hacerlo usted mismo.También puedes hacerlo de esta manera:
fuente
Acabo de probar esto con kmlLayer.setMap (nulo) y funcionó. No estoy seguro de si eso funcionaría con marcadores regulares, pero parece funcionar correctamente.
fuente
Para eliminar todas las superposiciones, incluyendo polys, marcadores, etc.
simplemente use:
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);}
Aquí hay una función que escribí para que me forme en una aplicación de mapas:
fuente
Para eliminar todos los marcadores del mapa, cree funciones como esta:
1.addMarker (ubicación): esta función se usa para agregar marcador en el mapa
2.clearMarkers (): esta función elimina todos los marcadores del mapa, no de la matriz
3.setMapOnAll (mapa): esta función se usa para agregar información de marcadores en la matriz
4.deleteMarkers (): esta función elimina todos los marcadores en la matriz eliminando referencias a ellos.
fuente
La forma más limpia de hacerlo es iterar sobre todas las características del mapa. Los marcadores (junto con polígonos, polilíneas, etc.) se almacenan en la capa de datos del mapa.
En el caso de que los marcadores se agreguen a través del administrador de dibujo , es mejor crear una matriz global de marcadores o empujar los marcadores a la capa de datos en la creación de la siguiente manera:
Recomiendo el segundo enfoque, ya que le permite utilizar otros métodos de clase google.maps.data más adelante.
fuente
Este es el método que Google usa en al menos una muestra:
Verifique el ejemplo de Google para obtener un ejemplo de código completo:
https://developers.google.com/maps/documentation/javascript/examples/places-searchbox
fuente
No sé por qué, pero la configuración
setMap(null)
de mis marcadores no me funcionó cuando la usoDirectionsRenderer
.En mi caso tuve que llamar
setMap(null)
a miDirectionsRenderer
también.Algo como eso:
fuente
Simplemente camine sobre los marcadores y elimínelos del mapa, matriz de marcadores de mapas vacíos después de eso:
fuente
simplemente borra Googlemap
fuente
He intentado todas las soluciones propuestas, pero nada funcionó para mí mientras todos mis marcadores estaban bajo un clúster. Finalmente acabo de poner esto:
En otras palabras, si envuelve marcadores en un clúster y desea eliminar todos los marcadores, llame a:
fuente
¿Te refieres a eliminar como al ocultarlos o eliminarlos?
si se esconde
si desea eliminarlos:
Observe que uso marcadores de matriz para hacer un seguimiento de ellos y restablecerlo manualmente.
fuente
Debe establecer un mapa nulo para ese marcador.
fuente
Encontré una solución simple (creo):
fuente
Yo uso una taquigrafía que hace bien el trabajo. Solo haz
fuente
si usa el complemento gmap V3:
$("#map").gmap("removeAllMarkers");
ver: http://www.smashinglabs.pl/gmap/documentation#after-load
fuente
Sé que esta puede ser una solución simple, pero esto es lo que hago
Siempre funciona para mí.
fuente