我用 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>
标记
var marker = new gm.Marker({
position: placemark.latlng,
icon: placemark.style.icon,
category: stat
});
选择标记的 .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);
}
}
});
所以基本上你需要从集群中删除所有标记并只重新聚集你想要显示的类别中的标记