Javascript 是否按类别显示/隐藏markercluster?

Javascript 是否按类别显示/隐藏markercluster?,javascript,google-maps,markerclusterer,Javascript,Google Maps,Markerclusterer,我正在使用markerCluster构建项目,显示/隐藏标记时一切正常。。 但我的问题是,当标记不全部显示时,集群仍然对所有标记计数。 例如:我有100个标记用于所有标记状态Show&hide,实际上显示了60个标记,隐藏了40个标记,集群总数必须是60,但我仍然得到集群计数100 这是我的密码 function show(category) { for (var i = 0; i < gmarkers.length; i++) { if (gma

我正在使用markerCluster构建项目,显示/隐藏标记时一切正常。。 但我的问题是,当标记不全部显示时,集群仍然对所有标记计数。 例如:我有100个标记用于所有标记状态Show&hide,实际上显示了60个标记,隐藏了40个标记,集群总数必须是60,但我仍然得到集群计数100

这是我的密码

 function show(category) 
 {

    for (var i = 0; i < gmarkers.length; i++) 
    {
        if (gmarkers[i].mycategory == category) 
        {
            gmarkers[i].setVisible(true);           
        }        
    }

    var markerCluster = new MarkerClusterer(map, gmarkers);
}
如何使集群只显示60


谢谢

我用jquery解决了这个问题

选择类别的html代码:

<div id="optionbar-r"><u>(Un)mark to hide/show markers</u><br>
<form id="checkbox">
<input type="checkbox" name="status" value="1" checked>cat1<br>
<input type="checkbox" name="status" value="2" checked>cat2<br>
<input type="checkbox" name="status" value="3" checked>cat3<br>
<input type="checkbox" name="status" value="4" checked>cat4<br>
</form>
</div>
.js代码,用于选择标记

//checkbox elements are in div optionbar-r
var checkbox = document.getElementById("optionbar-r");
$ ("#optionbar-r").click(function() {
        markerclusterer.clearMarkers();//clear clusters
        var selected = new Array();
        //put every checked box into array
        $('#optionbar-r input:checked').each(function() {
                selected.push($(this).attr('value'));
        });
        //iterate over markersArray and set visibility if category is in array
        for(var i=0; i < markersArray.length-1; i++) {
                if($.inArray(markersArray[i].category, selected) >= 0) {
                        markersArray[i].setVisible(true);
                        markerclusterer.addMarker(markersArray[i]);//recluster all visible markers
                } else {
                        markersArray[i].setVisible(false);
                }
        }
});
因此,基本上您需要从簇中删除所有标记,并仅重新聚集要显示的类别中的标记

//checkbox elements are in div optionbar-r
var checkbox = document.getElementById("optionbar-r");
$ ("#optionbar-r").click(function() {
        markerclusterer.clearMarkers();//clear clusters
        var selected = new Array();
        //put every checked box into array
        $('#optionbar-r input:checked').each(function() {
                selected.push($(this).attr('value'));
        });
        //iterate over markersArray and set visibility if category is in array
        for(var i=0; i < markersArray.length-1; i++) {
                if($.inArray(markersArray[i].category, selected) >= 0) {
                        markersArray[i].setVisible(true);
                        markerclusterer.addMarker(markersArray[i]);//recluster all visible markers
                } else {
                        markersArray[i].setVisible(false);
                }
        }
});