Я пытаюсь создать интерактивную карту с кластером, которая должна отображаться, когда пользователь устанавливает флажок, и удаляется, когда флажок снова снимается. Пока все работает хорошо, кластер работает и все такое, но я заметил странное поведение, которое не могу объяснить и исправить: каждый раз, когда я снимаю флажок и проверяю его снова, число, отображаемое в кластере, увеличивается на количество маркеров в этом регионе (поэтому, когда я делаю «clearMarkers», он почему-то никогда не сбрасывается в ноль
Вот код соответствующей функции:
//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);
}
}
Кто-нибудь знает, как исправить это поведение? :)