markercluster не меняется после установки - PullRequest
8 голосов
/ 26 января 2012

В настоящее время у меня есть набор маркеров, и я группирую их так:

var markerCluster = new MarkerClusterer(map, cm_mapMarkers);

Но у меня также есть набор фильтров, которые я использую, чтобы установить маркеры видимыми false или true.К сожалению, когда я установил маркер setvisible (false), количество кластеров не меняется.

Поэтому я искал способы сделать это:

Я попробовал следующее:

MarkerClusterer.redraw();
MarkerClusterer.repaint();

Обе, приводящие к: нет метода 'repaint', не имеют метода 'redraw'

Вот JSfiddle:

http://jsfiddle.net/tDYcX/30/

Кто-нибудь знает, что я делаюнеправильно?

Заранее спасибо

Ответы [ 3 ]

15 голосов
/ 30 января 2012

Мне удалось сделать это, используя markerclustererplus и используя markerCluster.setIgnoreHidden(true); and markerCluster.repaint();

2 голосов
/ 27 января 2012

MarkerClusterer на самом деле не предназначен для такого рода вещей.Самый простой способ сделать то, что вы хотите - это clearMarkers(), а затем addMarkers(markers) с новым массивом маркеров, соответствующих вашему фильтру.

1 голос
/ 17 апреля 2014

Через некоторое время я нашел решение, которое работает, может быть, полезно для кого-то там ...

Сохраните ваш markerCluster и вашу карту (mymap) в переменных.

ТогдаЗациклите все доступные маркеры, и вам понравится:

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);
    }
...