MarkerCluster ne change pas après SetVisible
-
14-11-2019 - |
Question
Actuellement, j'ai un ensemble de marqueurs et je les regroupe comme ceci:
var markerCluster = new MarkerClusterer(map, cm_mapMarkers);
Mais j'ai aussi un ensemble de filtres que j'utilise pour définir des marqueurs visibles faux ou vrai. Malheureusement, lorsque je définis le marqueur setVisible (false), le nombre de cluster ne change pas.
J'ai donc cherché des méthodes pour faire ceci:
J'ai essayé ce qui suit:
MarkerClusterer.redraw();
MarkerClusterer.repaint();
Les deux résultent: n'a pas de méthode «repeindre» n'a pas de méthode «redessiner»
Voici un jsfiddle:
Quelqu'un sait ce que je fais mal?
Merci d'avance
La solution
J'ai réussi à le faire en utilisant MarkerClusterErerPlus et en utilisant markerCluster.setIgnoreHidden(true); and markerCluster.repaint();
Autres conseils
Le MarkerCluster n'est pas vraiment conçu pour ce genre de chose. La façon la plus simple de faire ce que vous voulez est de clearMarkers()
alors addMarkers(markers)
avec une nouvelle gamme de marqueurs qui correspondent à votre filtre.
Après un certain temps, j'ai trouvé une solution qui fonctionne, peut-être utile pour quelqu'un là-bas ...
Enregistrez votre marqueur et votre carte (MYMAP) en variables.
Ensuite, faire bouger tous vos marqueurs disponibles et pour aimer ceci:
if (show) {
markerCluster.addMarker(markers[i]);
if (markers[i].getMap == null)
markers[i].marker.setMap(mymap);
showing++;
} else {
markerCluster.removeMarker(markers[i]);
if (markers[i].getMap != null)
markers[i].marker.setMap(null);
}