设置可见后标记簇没有改变

Posted

技术标签:

【中文标题】设置可见后标记簇没有改变【英文标题】:markercluster not changing after setvisible 【发布时间】:2012-02-19 18:24:13 【问题描述】:

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

var markerCluster = new MarkerClusterer(map, cm_mapMarkers);

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

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

我尝试了以下方法:

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

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

这是一个 JSfiddle:

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

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

提前致谢

【问题讨论】:

【参考方案1】:

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

【讨论】:

老兄!几周来一直在寻找这个解决方案。谢谢。 markerCluster.repaint() 非常适合我,谢谢!!!【参考方案2】:

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

【讨论】:

MarkerClusterer 不关心/注意标记的可见状态,它只使用位置。仅当集群中只有 1 个 Marker 时,才会将 Marker 添加到地图中。 完美答案,我的解决方案有问题。这行得通。【参考方案3】:

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

将您的 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);
    

【讨论】:

以上是关于设置可见后标记簇没有改变的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenGL 的散点图:如何设置标记样式

如何居中/设置地图缩放以覆盖 Xamarin.Forms 上可见的所有标记?

从数组中删除标记后更新标记簇

新手中心/设置地图缩放以覆盖所有可见标记? [复制]

javascript 获取谷歌地图的可见部分,并将中心主标记设置为可见部分的中心

python - 如何在python中使没有簇质心的簇不可见?