2010-11-22 10 views
18

Wie kann ich alle Cluster-Symbole (Cluster-Marker) aus der Karte entfernen? tryed mit Hinweisen wie:Google Maps Api v3 - wie Cluster-Symbole entfernen?

Google Maps API v3: How to remove all markers?

... aber es hat nicht funktioniert.

Können Sie mir helfen, das zu erreichen?

danke im voraus!

UPDATE (2010-11-23)

Marker werden mit

var markersClust = Array(); 
in Array gespeichert

... und sind mit (Kombination mit php) hinzugefügt:

markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>); 

var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions); 

und es funktioniert gut.

aber, ich kann sie nicht entfernt aus einer Karte, und es macht mir ...

tryed Marker zu entfernen (und ich) mit

for (var i=0; i < markersClust.length; i++) { 
    markersClust[i].setMap(null); 
} 
markersClust = []; 

aber Cluster-Symbole sind auf dem stil Karte.

auch tryed i Dinge wie:

markerClusterer.clearMarkers(); 

und wie

MyMap.preventDefault(); 
MyMap.stopPropagation(); 
MyMap.clearMarkers(); 

aber auch hier Symbole der Cluster sind immer noch da, auf einer Karte.

was muss ich noch tun, um diese Cluster-Symbole aus meiner Karte zu entfernen? bitte helfen Sie ...

Antwort

0

Iterieren Sie über jeden Marker und setzen Sie die Karte dieses Markers auf null. Dadurch wird der Marker aus der Karte entfernt.

+1

ja, mit markersClust [i] .setMap (null); markersClust = neues Array(); Ich entfernte Markierungen aus der Karte, aber Markierungen für Cluster sind immer noch da ... – user198003

+0

Verwenden Sie andere Tools zum Anzeigen der Cluster? Glauben Sie nicht, dass gmv3 Cluster integriert hat. Wenn Sie uns sagen können, welche anderen js Sie verwenden, könnte uns das helfen. – Crag

+0

Ich benutze http://gmaps-utility-library-dev.googlecode.com/svn/tags/markerclusterer/ auch, können Sie bitte überprüfen, aktualisierte Teil meines Beitrags ... – user198003

2

Ich hatte das gleiche Problem. Ich habe es behoben, indem ich meinen MarkerClusterer während der Initialisierung nur einmal deklariert habe:

+1

markerCluster.clearMarkers(); –

0

Dies ist, was ich tue. Ich habe viele Marker, aber wenn ich auf Heatmap umschalte, möchte ich alle Marker und Clusterer entfernen. Wenn ich Marker schaffe ich es zu globalen Array Marker hinzufügen

markers.push(marker); 

I clustere wie diese

markerCluster = new MarkerClusterer(map, markers); 
markerCluster.setIgnoreHidden(true); 

definieren Wenn i-Taste klicken Heatmap

$.each(markers, function(k, v){ 
    v.setVisible(false); 
}); 
markerCluster.repaint(); 

zu zeigen, wenn repaint() mit ignorieren genannt wird versteckt versteckt es alle Cluster-Icons.

35

Dies ist der richtige Weg, es zu tun:

// 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/

Dokumentation: https://googlemaps.github.io/js-marker-clusterer/docs/reference.html

+0

Ich musste die Markierungen überhaupt nicht durchlaufen. Ich habe gerade 'markerClusterer.clearMarkers() 'aufgerufen. – hellatan

+1

Ja, @hellatan, clearMarkers() ist genug, um die Marker zu verstecken. Aber sie werden immer noch in Erinnerung bleiben. Wenn Sie clearMarkers() aufrufen und später weitere Marker zum Array hinzufügen, werden die alten Marker wieder angezeigt, wenn Sie 'new MarkerClusterer (map, markers)' initialisieren. Deaktivieren Sie also das Array, wenn Sie die Marker * entfernen * wollen. – HoffZ

+0

ah, danke für die Klarstellung @HoffZ. Ich habe erst letzte Woche angefangen, mit den Maps api zu spielen, so dass mein Wissen zu diesem Zeitpunkt ziemlich begrenzt ist. – hellatan