Google Maps API V3从阵列中删除标记

时间:2013-04-24 19:33:03

标签: google-maps-api-3

我使用下面的代码向地图添加标记它还有一个监听器从地图中删除标记但我无法弄清楚如何删除 来自markerarray的标记,同时将其从地图中删除。

有人可以给我一个关于如何实现这个目标的指针。

function createRedMarker(Lat, Lang, html, atitle) {
    var latlng = new google.maps.LatLng(Lat, Lang);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: atitle,
        icon: redmarker,
        shadow: mshadow
    });

    google.maps.event.addListener(marker, "rightclick", function() {
        if (confirm("Deselect " + marker.title + " and remove from Map?")) {
            marker.setMap(null);
            window.status = "Deselected>" + marker.title + "<";
        }
    });

    markersArray.push(marker);
}

1 个答案:

答案 0 :(得分:0)

请看一下这个解决方案。希望这会有所帮助。

function createRedMarker(Lat, Lang, html, atitle) {
    var latlng = new google.maps.LatLng(Lat, Lang);
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: atitle,
        icon: redmarker,
        shadow: mshadow
    });

    google.maps.event.addListener(marker, "rightclick", function() {
        if (confirm("Deselect " + marker.title + " and remove from Map?")) {
            marker.setMap(null);
            for (var i = 0; i < markers.length; i++) {
                if (markers[i].getPosition().equals(marker.getPosition())) {
                    var index = markers.indexOf(marker);
                    markers.splice(index, 1);
                    break;
                }
            }
            window.status = "Deselected>" + marker.title + "<";
        }
    });

    markersArray.push(marker);
}