Tôi đã 2 chức năng như sau:Google Maps Api 3 Remove Selected Marker Chỉ
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(); };
Vì vậy, khi có thể hiểu rằng tôi có một menu ngữ cảnh có "Delete Marker" tùy chọn trên đó. Tôi đang ràng buộc người nghe "rightclick" trong khi thêm điểm đánh dấu, để hiển thị menu này.
Mọi thứ đang hoạt động mà không có bất kỳ vấn đề nào cho đến thời điểm này.
Nhưng khi tôi cố gắng nhấp vào điểm đánh dấu để xóa; nó chỉ ảnh hưởng đến điểm đánh dấu được thêm cuối cùng. Khi tôi thử lại; chẳng có gì xảy ra.
Vì vậy, ý tưởng của tôi là lấy id của người đánh dấu đã nhấp (hoặc thứ gì đó có thể hữu ích) và chạy chức năng xóa này theo điều này.
Tóm tắt; Tôi muốn xóa điểm đánh dấu mà tôi đã nhấp vào, từ bản đồ có nhiều điểm đánh dấu.
Bạn có cách tiếp cận nào để giải quyết vấn đề này không?
Cảm ơn trước!
GIẢI PHÁP!
Đây là giải pháp. Cảm ơn bạn Fatih. nó đã không thể không có hướng dẫn của bạn:
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);
}
Calling xóa chức năng theo: delMarker(id)
Ps: "Nhấn chuột phải đủ về trường hợp này"
Cảm ơn bạn!
Nhưng bạn muốn đạt được điều gì ??? Xóa tất cả các điểm đánh dấu? – Jorge
Chỉ xóa một người đã nhấp vào! – MrGorki
@ MrGorki, bạn tạo ra __gm_id bằng cách nào? – jemz