1

我在我的集​​群项目中使用了谷歌地图 api (MarkerClusterer)

var markers=[];
for(var i=0;i<1000;i++)
{ //create marker
    markers.push(marker):
}
 markerclusterer = new MarkerClusterer(map, markers);
// then .. in another part .. i do .
for(var j=0;j<200;j++)
{
markers[j].setVisible(false);
}
markerclusterer.draw();

问题 ::

它隐藏了 200 个标记,但在集群图标中它仍然..

我的意思是..(如果我计算集群图标中显示的数字=1000)。但实际上 800 个标记是可见的,而 200 个是隐藏的。)

如何使集群图标 = 800 只。..thnx

4

1 回答 1

4

当你完成你的循环,添加 .repaint() 方法,所以它会更新计数器。但主要的是,您需要在隐藏/显示标记上自动从 markerclusterer 对象中添加/删除这些显示/隐藏标记

var markers=[], markerclusterer;

markerclusterer = new MarkerClusterer(map, []);

for(var i=0;i<1000;i++)
{ 
    //create marker
    markerclusterer.addMarker(marker, true);

    google.maps.event.addListener(marker, 'visible_changed', function(){
        if ( marker.getVisible() ) {
            markerclusterer.addMarker(marker, true);
        } else {
            markerclusterer.removeMarker(marker, true);
        }                   
    });
}
// then .. in another part .. i do .
for(var j=0;j<200;j++)
{
    markers[j].setVisible(false);
}
markerclusterer.repaint();

希望这会对某人有所帮助。

于 2012-11-21T08:03:14.763 回答