Удаление маркера в Google Maps API v3 - PullRequest
23 голосов
/ 01 ноября 2011

Я пытаюсь удалить маркер , который был инициализирован так:

marker = new google.maps.Marker({
    position: latLng,
    map: map,
    draggable: true,
    animation: google.maps.Animation.DROP,
    title: 'Marker 1',
    icon: redPin
});

google.maps.event.addListener(marker, "click", function() {
    showMarkerDialog(marker.position, "marker");
});

google.maps.event.addListener(marker, "dblclick", function() {
    // Add a alert: Are you sure you want to remove this marker?

    map.removeOverlay(marker);
});

Все работает отлично, за исключением того, что когда я дважды щелкаю по нему, чтобы удалить то, что я получаю на консоли ошибок, это:

TypeError: у Object # нет метода 'removeOverlay'

Что я делаю не так?

1 Ответ

66 голосов
/ 01 ноября 2011

На объекте map нет функции removeOverlay . Похоже, у вас есть только один маркер, зачем использовать массив? Просто измените это:

google.maps.event.addListener(marker, "dblclick", function() {
    map.removeOverlay(marker);
});

к этому:

marker.addListener("dblclick", function() {
    marker.setMap(null);
});
...