Pergunta

Como posso remover todos os ícones de cluster (marcadores de cluster) do mapa? tentei com conselhos como:

Google Maps API V3: Como remover todos os marcadores?

... mas não funcionou.

Você pode me ajudar como conseguir isso?

Agradeço antecipadamente!

Atualização (2010-11-23)

Os marcadores são armazenados em matriz com

var markersClust = Array();

... e são adicionados com (combinação com PHP):

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

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

E funciona bem.

Mas, não posso removê -los de um mapa, e isso me leva ...

tentei remover marcadores (e eu fiz) com

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

Mas os ícones de cluster são postos no mapa.

Também tentei coisas como:

markerClusterer.clearMarkers();

e gosto

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

Mas, novamente, os ícones dos clusters ainda estão lá, em um mapa.

O que mais preciso fazer para remover esses ícones de cluster do meu mapa? por favor ajude...

Foi útil?

Solução

Itera sobre cada marcador e defina o mapa desse marcador para NULL. Isso removerá o marcador do mapa.

Outras dicas

Esta é a maneira certa de fazer isso:

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

Documentação: https://googlemaps.github.io/js-marker-clusterer/docs/reference.html

Eu também tive o mesmo problema. Eu o corrigi declarando apenas meu Markerclusterrer uma vez durante a inicialização:

markerCluster = new MarkerClusterer(map);

Isto é o que eu faço. Tenho muitos marcadores, mas quando eu mudo para o mapa de calor, quero remover todos os marcadores e cluster. Quando eu crio marcador, adiciono -o à matriz de marcadores globais

 markers.push(marker);

Eu defino cluster como este

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

Quando eu clico no botão para mostrar o mapa de calor

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

Quando repaint() é chamado com ignorar oculto, ele esconde todos os ícones de cluster.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top