Подтвердить что ты не робот

Удаление маркера в API Карт Google v3

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

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'

Что я делаю неправильно?

4b9b3361

Ответ 1

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

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

:

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