Как удалить маркеры с карты Google, прежде чем рисовать новые на праздном событии - PullRequest
0 голосов
/ 31 мая 2011

Я рисую маркеры на карте Google после ее панорамирования или масштабирования.
Если область просмотра изменилась не полностью, то маркеры, которые появились до перемещения и должны появиться после того, как они нарисованы поверх себяснова и снова.
Я знаю, что должен удалить все маркеры с карты до того, как новые маркеры будут нарисованы, и я знаю, что должен использовать marker.setMap(null);.
Я просто не знаю, как и где соответствоватьэто в моем коде.

google.maps.event.addListener(map, 'idle', showMarkers);

function showMarkers(){
    // get viewport bounds
    var southWestLat = map.getBounds().getSouthWest().lat();
    var southWestLng = map.getBounds().getSouthWest().lng();
    var northEastLat = map.getBounds().getNorthEast().lat();
    var northEastLng = map.getBounds().getNorthEast().lng();            

    var marker;

    $.ajax({
        type: "POST",
        url: "markers.php",
        dataType: "json",
        data: ({'southWestLat' : southWestLat , 'southWestLng' : southWestLng , 'northEastLat' : northEastLat , 'northEastLng' : northEastLng}),
        success: function(coordinatesMap){
            for (var id in coordinatesMap){
                if (coordinatesMap.hasOwnProperty(id)){                     
                    marker = new google.maps.Marker({
                        position: new google.maps.LatLng(coordinatesMap[id].lat,coordinatesMap[id].lng), 
                        map: map
                    });   
                }
            }
        }
    });         
}

1 Ответ

0 голосов
/ 31 мая 2011

Из соображений производительности не нужно сбрасывать все маркеры;Только те, которых больше нет на карте.Это может быть достигнуто путем сохранения маркера в массиве или объекте.В случае «успеха» вы хотите проверить, находится ли маркер уже в конце, используя ваш массив / объект.Если так, то не добавляйте новый, если нет, то добавьте его.После того, как вы закончили обработку маркеров в запросе ajax, удалите те, которые больше не видны на карте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...