una que puntos multiples marcar marcadores google ejemplos desde datos custom añadir javascript google-maps maps leaflet

javascript - que - ¿Cómo borrar el mapa de folletos de todos los marcadores y capas antes de agregar otros nuevos?



marcar puntos en google maps api (2)

Tengo el siguiente código:

map: function (events) { var arrayOfLatLngs = []; var _this = this; // setup a marker group var markers = L.markerClusterGroup(); events.forEach(function (event) { // setup the bounds arrayOfLatLngs.push(event.location); // create the marker var marker = L.marker([event.location.lat, event.location.lng]); marker.bindPopup(View(event)); // add marker markers.addLayer(marker); }); // add the group to the map // for more see https://github.com/Leaflet/Leaflet.markercluster this.map.addLayer(markers); var bounds = new L.LatLngBounds(arrayOfLatLngs); this.map.fitBounds(bounds); this.map.invalidateSize(); }

Inicialmente llamo a esta función y agregará todos los events al mapa con marcadores y agrupaciones.

en algún punto de paso, en algunos otros eventos, el mapa se acercará a los nuevos eventos, pero los anteriores todavía están en el mapa.

He intentado this.map.removeLayer(markers); y algunas otras cosas, pero no puedo hacer desaparecer los viejos marcadores

¿algunas ideas?


Estás perdiendo la referencia del marcador porque está configurado con var. Trate de guardar las referencias a ''esto'' en su lugar.

mapMarkers: [], map: function (events) { [...] events.forEach(function (event) { [...] // create the marker var marker = L.marker([event.location.lat, event.location.lng]); [...] // Add marker to this.mapMarker for future reference this.mapMarkers.push(marker); }); [...] }

Luego, más tarde, cuando necesite eliminar los marcadores, ejecute:

for(var i = 0; i < this.mapMarkers.length; i++){ this.map.removeLayer(this.mapMarkers[i]); }

Alternativamente, en lugar de guardar cada referencia a cada marcador, simplemente puede guardar el clúster en "esto".


Si desea eliminar todas las capas actuales (marcadores) de su grupo, puede usar el método L.markerClusterGroup() de L.markerClusterGroup() . Su referencia se llama markers por lo que deberá llamar:

markers.clearLayers();