我有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(); };
因此,据了解,我有一个上下文菜单,上面有“删除标记”选项。我在添加标记期间绑定了一个“右键单击”侦听器,以显示此菜单。
到目前为止,一切都在正常工作。
但是当我尝试单击要删除的标记时;它只影响最后添加的标记。当我再次尝试时;没发生什么事。
所以我的想法是获取点击标记的 id(或可能很有用的东西)并根据这个运行这个删除功能。
简要地; 我想从具有多个标记的地图中删除我单击的标记。
你有什么方法可以解决这个问题吗?
提前致谢!
解决了!
这是解决方案。谢谢法提赫。没有您的指导是不可能的:
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:“在这种情况下右键单击就足够了”
谢谢!