我正在使用谷歌地圖api 3.9。在應用程序用戶可以添加標記或刪除marker.when用戶點擊地圖上將顯示一個Infowindow。用戶可以輸入名稱,經緯度和長按保存圖像如下:爲什麼setMap(null)不起作用google maps api v3?
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);
});
標記保存在數據庫中。 當刪除按鈕follwing方法用戶cliclks會被調用:
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(空);標記從地圖上移除,仍然在地圖上。我用console.log(marker)查看;標記對象正常,沒有console.i錯誤經歷了很多谷歌搜索,但沒有result.Please幫助。
雅我試過兩個仍然沒有隱藏。我的版本是3.9 –
看起來在代碼中有一些不需要的聲明。查看更新。 markerObj是否在這個函數中保存標記實例? – Cdeez
雅我試過你的更新仍然result.is這個瀏覽器緩存問題 –