8

目前我有一组标记,我将它们聚集成这样:

var markerCluster = new MarkerClusterer(map, cm_mapMarkers);

但我也有一组过滤器,用于将标记设置为 false 或 true。不幸的是,当我设置标记 setvisible(false) 时,集群计数没有改变。

所以我寻找方法来做到这一点:

我尝试了以下方法:

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

两者都导致:没有方法'repaint'没有方法'redraw'

这是一个JSfiddle:

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

有人知道我做错了什么吗?

提前致谢

4

3 回答 3

22

我设法使用markerclustererplus并使用markerCluster.setIgnoreHidden(true); and markerCluster.repaint();

于 2012-01-30T09:28:25.033 回答
3

MarkerClusterer 并不是真正为这类事情设计的。做您想做的最简单的方法是使用与您的过滤器clearMarkers()匹配addMarkers(markers)的新标记数组。

于 2012-01-27T02:59:52.587 回答
2

经过一段时间的尝试,我找到了一个可行的解决方案,可能对那里的人有帮助......

将您的 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);
    }
于 2014-04-17T11:54:09.200 回答