У меня есть 2 функции, как показано ниже:
function addMarker() {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
google.maps.event.addListener(marker, "rightclick",
function (point) {
showContextMarker(point.latLng); } );
$('.contextmenu').remove();
};
function delMarker() { marker.setMap(null); $('.contextmenu').remove(); };
Итак, как вы понимаете, у меня есть контекстное меню с опцией «Удалить маркер».Я привязываю слушателя «щелчка правой кнопкой мыши» во время добавления маркера, чтобы показать это меню.
До этого момента все работает без проблем.
Но когда я пытаюсь нажать на маркер дляудалять;это влияет только на последний добавленный маркер.Когда я попробую еще раз;ничего не происходит.
Так что моя идея - получить идентификатор кликаемого маркера (или что-то, что может быть полезно) и запустить эту функцию удаления в соответствии с этим.
Кратко;Я хочу удалить маркер, на который я нажал, с карты, имеющей несколько маркеров.
Есть ли у вас какой-либо подход к решению этой проблемы?
Заранее спасибо!
решено!
Вот решение проблемы.Спасибо, Фатих.это было невозможно без вашего руководства:
var id;
var markers = {};
var addMarker = function () {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
id = marker.__gm_id
markers[id] = marker;
google.maps.event.addListener(marker, "rightclick", function (point) { id = this.__gm_id; delMarker(id) });
}
var delMarker = function (id) {
marker = markers[id];
marker.setMap(null);
}
Вызов функции удаления: delMarker(id)
Ps: "В этом случае достаточно щелчка правой кнопкой мыши"
Спасибо!