Удалить маркеры из markerClusterer

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

Кто-нибудь знает, как исправить это поведение? :)

8
задан Zoé de Moffarts 10 April 2014 в 07:40
поделиться