设置可见后标记簇没有改变
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);
【讨论】:
以上是关于设置可见后标记簇没有改变的主要内容,如果未能解决你的问题,请参考以下文章
如何居中/设置地图缩放以覆盖 Xamarin.Forms 上可见的所有标记?