Google Maps API V3 - Как удалить значки кластеров?
-
27-09-2019 - |
Вопрос
Как я могу удалить все кластерные значки (кластерные маркеры) с карты? попробую со своими советами, как:
Google Maps API V3: Как удалить все маркеры?
... но это не сработало.
Можете ли вы помочь мне, как это добиться?
заранее спасибо!
Обновление (2010-11-23)
Маркеры хранятся в массиве с
var markersClust = Array();
... и добавляются (комбинация с php):
markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);
var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);
И это работает нормально.
Но я не могу удалить их с карты, и она ведет меня ...
пытался удалить маркеры (и я сделал) с
for ( var i=0; i < markersClust.length; i++) {
markersClust[i].setMap(null);
}
markersClust = [];
Но значки кластеров на карте.
Также попробовал такие вещи, как:
markerClusterer.clearMarkers();
и вроде
MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();
Но, опять же, иконы кластеров все еще там, на карте.
Что еще я должен сделать, чтобы удалить эти кластерные значки с моей карты? пожалуйста помоги...
Решение
Итайте через каждый маркер и установите карту маркера на NULL. Это удалит маркер с карты.
Другие советы
Это правильный способ сделать это:
// 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();
Демо: http://jsfiddle.net/hoffz/gezxx/
Документация: https://googlemaps.github.io/js-marker-cluerer/docs/Reference.html.
У меня была такая же проблема. Я исправил его, объявляя моим маркербщиком один раз во время инициализации:
markerCluster = new MarkerClusterer(map);
Вот что я делаю. У меня много маркеров, но когда я переключаюсь на тепловую карту, я хочу удалить все маркеры и кластерику. Когда я создаю маркер, я добавляю его в массив глобальных маркеров
markers.push(marker);
Я определяю кластеров, как это
markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);
Когда я нажимаю кнопку, чтобы показать тепловую карту
$.each(markers, function(k, v){
v.setVisible(false);
});
markerCluster.repaint();
Когда repaint()
называется с игнорированием скрытых, он скрывает все значки кластеров.