【问题标题】: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/

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

提前致谢

【问题讨论】:

    标签: google-maps-api-3 visibility markerclusterer


    【解决方案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);
        }
    

    【讨论】:

      猜你喜欢
      • 2015-02-07
      • 1970-01-01
      • 2012-06-27
      • 2021-04-04
      • 2011-04-10
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多