Javascript 是否按类别显示/隐藏markercluster?
我正在使用markerCluster构建项目,显示/隐藏标记时一切正常。。 但我的问题是,当标记不全部显示时,集群仍然对所有标记计数。 例如:我有100个标记用于所有标记状态Show&hide,实际上显示了60个标记,隐藏了40个标记,集群总数必须是60,但我仍然得到集群计数100 这是我的密码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
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);
}
}
});