Вопрос

Как я могу удалить все кластерные значки (кластерные маркеры) с карты? попробую со своими советами, как:

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() называется с игнорированием скрытых, он скрывает все значки кластеров.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top