2010-11-22 8 views
18

Comment puis-je supprimer toutes les icônes de cluster (marqueurs de cluster) de la carte? tryed avec des conseils tels que:Google Maps Api v3 - comment supprimer les icônes de cluster?

Google Maps API v3: How to remove all markers?

... mais ça n'a pas fonctionné.

pouvez-vous m'aider comment y parvenir?

merci d'avance!

UPDATE (2010-11-23)

marqueurs sont stockés dans la matrice avec

var markersClust = Array(); 

... et sont ajoutés à (combinaison avec php):

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

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

et cela fonctionne bien.

mais je ne peux pas les enlever d'une carte, et il me pousse ...

tryed pour éliminer les marqueurs (et je l'ai fait) avec

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

mais les icônes du cluster sont Stil sur la carte.

aussi je tryed des choses comme:

markerClusterer.clearMarkers(); 

et comme

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

mais, encore une fois, les icônes des grappes sont toujours là, sur une carte. Quoi d'autre dois-je faire pour enlever ces icônes de grappe de ma carte?

Aidez-nous ...

Répondre

0

Effectuez une itération sur chaque marqueur et définissez la carte de ce marqueur sur null. Cela supprimera le marqueur de la carte.

+1

oui, avec markersClust [i] .setMap (null); markersClust = new Array(); J'ai supprimé les marqueurs de la carte, mais les marques pour les clusters sont toujours là ... – user198003

+0

Utilisez-vous d'autres outils pour afficher les clusters? Ne croyez pas que gmv3 a des clusters intégrés. Si vous pouvez nous dire quels autres js vous utilisez qui pourraient nous aider à vous aider. – Crag

+0

j'utilise http://gmaps-utility-library-dev.googlecode.com/svn/tags/markerclusterer/ aussi, pouvez-vous s'il vous plaît vérifier la partie mise à jour de mon post ... – user198003

2

J'ai eu le même problème aussi bien. Je l'ai corrigé en déclarant une seule fois mon MarkerClusterer lors de l'initialisation:

markerCluster = new MarkerClusterer(map); 
+1

markerCluster.clearMarkers(); –

0

C'est ce que je fais. J'ai beaucoup de marqueurs mais quand je passe à heatmap, je veux enlever tous les marqueurs et clusterer. Quand je crée marqueur ajouter à tableau global des marqueurs

markers.push(marker); 

je définis clustere comme ce

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

Lorsque je clique bouton pour afficher heatmap

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

Lorsque repaint() est appelé à ne pas tenir compte caché il cache toutes les icônes de cluster.

35

Ceci est la bonne façon de le faire:

// 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(); 

Démo: http://jsfiddle.net/HoffZ/gEzxx/

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

+0

Je n'avais pas besoin de boucler les marqueurs du tout. Je viens d'appeler 'markerClusterer.clearMarkers()' – hellatan

+1

Oui, @hellatan, clearMarkers() est suffisant pour cacher les marqueurs. Mais ils seront toujours en mémoire. Si vous appelez clearMarkers() et ajoutez plus de marqueurs au tableau plus tard, les anciens marqueurs s'afficheront à nouveau si vous initialisez 'new MarkerClusterer (map, markers)'. Donc, désactivez le tableau si vous voulez * enlever * les marqueurs. – HoffZ

+0

ah, merci pour la clarification @HoffZ. Je viens de commencer à jouer avec les cartes api la semaine dernière, donc mes connaissances sont assez limitées à ce stade. – hellatan

Questions connexes