Google Maps Api v3 - how to remove cluster icons?
-
27-09-2019 - |
Question
how can i remove all cluster icons (cluster markers) from map? tryed with advices like:
Google Maps API v3: How to remove all markers?
... but it did not worked.
can you help me how to achieve that?
thank you in advance!
UPDATE (2010-11-23)
markers are stored in array with
var markersClust = Array();
... and are added with (combination with php):
markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);
var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);
and it works fine.
but, i can not remove them from a map, and it drives me...
tryed to remove markers (and i did) with
for ( var i=0; i < markersClust.length; i++) {
markersClust[i].setMap(null);
}
markersClust = [];
but cluster icons are stil on the map.
also i tryed things like:
markerClusterer.clearMarkers();
and like
MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();
but, again, icons of the clusters are still there, on a map.
what else do i have to do to remove those cluster icons from my map? please help...
Solution
Iterate over each marker and set that marker's map to null. That will remove the marker from the map.
OTHER TIPS
This is the right way to do it:
// Unset all markers
var i = 0, l = markers.length;
for (i; i<l; i++) {
markers[i].setMap(null)
}
markers = [];
// Clears all clusters and markers from the clusterer.
markerClusterer.clearMarkers();
Demo: http://jsfiddle.net/HoffZ/gEzxx/
Documentation: https://googlemaps.github.io/js-marker-clusterer/docs/reference.html
I had the same problem as well. I fixed it by only declaring my MarkerClusterer once during initialization:
markerCluster = new MarkerClusterer(map);
This is what I do. I have many markers but when I switch to heatmap I want to remove all markers and clusterer. When i create marker I add it to global markers array
markers.push(marker);
I define clustere like this
markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);
When i click button to show heatmap
$.each(markers, function(k, v){
v.setVisible(false);
});
markerCluster.repaint();
When repaint()
is called with ignore hidden it hides all cluster icons.