我正在嘗試創建一個交互式地圖,其中包含當用戶選中某個框時需要顯示的羣集,並且當該框未被再次選中時將其刪除。 到目前爲止,一切運行良好,羣集工作正常,但我注意到了一個我無法解釋和修復的奇怪行爲:每次取消選中該複選框並再次檢查該複選框時,羣集中顯示的數字會遞增標記在該區域的量(所以它卻從來沒有被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),但是這似乎沒有任何操作) –