Как удалить по одному маркеру на карте Google

Я создал массив маркеров. Я использую этот массив маркеров для прослушивания «щелчка» и размещения маркера на карте Google Map, а также для создания функций «очистить все маркеры», «повторно отобразить все маркеры» и « удалить все маркеры ».

Проблема в том, как мне это сделать, чтобы я мог очищать или удалять по одному маркеру за раз? Причина в том, что если я случайно замуровал место, где я не хочу, и я хотел бы очистить / удалить его, я не смог бы этого сделать. Если бы я должен был очистить / удалить этот конкретный маркер, остальные маркеры, которые я нарисовал ранее, также будут очищены / удалены ...

Мой код:

//Initialize the map
function initialize() {
    var myLatlng = new google.maps.LatLng(2,110);
    var myOptions = {
        zoom: 3,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.HYBRID
    };

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    infowindow = new google.maps.InfoWindow({
        content: "loading..."
    });
}

function changeForm(the_form) {
    window.location = the_form;
}


//Listen for click
function marker() {
    google.maps.event.addListener(map, 'click', function(event) {
        addMarker(event.latLng);
    });
}

// Place markers in by click
function addMarker(location) {
    marker = new google.maps.Marker({
        position: location,
        map: map,
        title:"Specified Location",
        icon: 'images/greenPoint.png'
    });
    markersArray.push(marker);
}

// Deletes all markers in the array by removing references to them
function deleteOverlays() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(null);
        }
        markersArray.length = 0;
    }
}

// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(null);
        }
    }
}

// Shows any overlays currently in the array
function showOverlays() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(map);
        }
    }
}
5
задан AtomicCharles 21 December 2011 в 01:39
поделиться