gpt4 book ai didi

google-maps - 为什么 setMap(null) 不起作用 google maps api v3?

转载 作者:行者123 更新时间:2023-12-01 16:21:09 30 4
gpt4 key购买 nike

我正在使用 google maps api 3.9。在应用程序中,用户可以添加标记或删除标记。当用户单击 map 时,将显示一个信息窗口。用户可以在其中输入名称、纬度、经度并单击保存图像,如下所示:

google.maps.event.addListener(map, 'click', function(event) {

point = new google.maps.Marker({
position: event.latLng
, map: map
, icon: 'resource/image/mapIcons/point.png'
, id: id
, type:"point"
});

type = point.type;
newPoint = true;
existingPoint = false;
markerObj = this;

inputInfowindow.setContent("<table style='width:92%;' id='inputTable'>" +
"<tr> <td>point</td> </tr>" +
"<tr> <td><input class='infoInput' type='text' id='name' placeholder='name'/> </td> </tr>" +
"<tr> <td><input class='infoInput'type='text' id='lat' placeholder='latitude'/></td> </tr>" +
"<tr> <td><input class='infoInput'type='text' id='lon' placeholder='longitude'/></td> </tr>" +
"<tr><td><input type='image' src='resource/image/mapIcons/save.png' onclick='save()' class='saveImage' alt='save'/> </td></tr>");

event1 = event.latLng;
currentMarker = point;
inputInfowindow.open(map,point);

});

标记保存在数据库中。
当用户单击删除按钮时,将调用以下方法:

function deleteMarker(id,rev) {
var marker = markerObj;
markerObj = undefined;
var x = confirm("are you sure to delete marker?");
if(x){
deleteLocations(id,rev);//removes marker details from DB
if(marker){
console.log(marker);
marker.setMap(null);
}
}
}

但在marker.setMap(null);标记从 map 上移除仍然在 map 上。我检查了 console.log(marker);标记对象正确出现,控制台上没有错误。我进行了大量的谷歌搜索,但没有结果。请帮忙解决这个问题。

最佳答案

从文档-

To remove an overlay from a map, call the overlay's setMap() method, passing null. Note that calling this method does not delete the overlay; it simply removes the overlay from the map. If instead you wish to delete the overlay, you should remove it from the map, and then set the overlay itself to null.



所以在 marker.setMap(null)之后你也应该写 marker=null
更新1-
function deleteMarker(id,rev) {
var x = confirm("are you sure to delete marker?");
if(x)
{
deleteLocations(id,rev);//removes marker details from DB
if(markerObj)
{
console.log(markerObj);
markerObj.setMap(null);
markerObj=null;
}
}
}

更新 2-

这是一个有效的简单演示。查看代码并检查您的代码错误的地方。您的代码中可能存在一些变量范围问题。

WORKING DEMO

关于google-maps - 为什么 setMap(null) 不起作用 google maps api v3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099556/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com