我正在尝试创建一个交互式地图,其中包含当用户选中某个框时需要显示的群集,并且当该框未被再次选中时将其删除。 到目前为止,一切运行良好,群集工作正常,但我注意到了一个我无法解释和修复的奇怪行为:每次取消选中该复选框并再次检查该复选框时,群集中显示的数字会递增标记在该区域的量(所以它却从来没有被reseted为零,当我做“clearMarkers”删除markerClusterer中的标记
下面是有关函数的代码:
//Display or remove PREDICTED accident's markers.
function toDisplayPredictedAccidents()
{
//If the checkbox is checked : Display all the PREDICTED accident's markers.
if(checkBoxPredicted.checked == true)
{
for (i = 0; i < predictedAccidentArray.length; i++)
{
marker = new google.maps.Marker
({
position: new google.maps.LatLng(predictedAccidentArray[i][1], predictedAccidentArray[i][2]),
icon : iconPredicted
});
markersPredicted.push(marker); //Put the created marker in an array.
//Create the pop-up when we click on the marker.
google.maps.event.addListener(marker, 'click', (function(marker, i)
{
return function()
{
infowindow.setContent(predictedAccidentArray[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
markerClusterPredicted = new MarkerClusterer(map, markersPredicted);
}
else
{
clearPredictedMarkers();
markerClusterPredicted.clearMarkers();
}
}
//clearMarkers and setAllMap are related and aim to REMOVE all the PREDICTED accident's markers.
function clearPredictedMarkers() {
setAllMapPredicted(null, markersPredicted);
}
function setAllMapPredicted(map, markersArray)
{
for (var i = 0; i < markersArray.length; i++)
{
markersPredicted[i].setMap(map);
}
}
任何人都知道如何解决这个问题? :)
你没有删除'markersPredicted'标记但是从地图上只是其分离。所以,下一次您将相同的标记放入数组并将它们全部显示出来。 –
好的,你可以指点我一种方法或技术从数组中删除它们吗? (我尝试对数组上的所有元素执行setMap(null),但是这似乎没有任何操作) –