我想用简单的功能创建一个Map。每次点击时,都会移除现有的标记,并在点击位置出现一个新的标记。
创建新的工作正常,但删除它们并不起作用。这是代码,我试过了:
var map;
var latitude, longitude;
var marker;
function placeMarker(location) {
marker.setMap(null);
marker = new google.maps.Marker({
map: map,
position: location,
});
latitude = location.lat();
longitude = locaton.lng();
document.getElementById('koordinaten').innerHTML = '<p>' + latitude + '</p>';
}
好的,注释marker.setMap(null);我可以添加尽可能多的标记,但我想在地图上只有一个标记。
您能帮我,如何移除标记并放置一个新标记?
谢谢
答案 0 :(得分:0)
第一次运行此功能时,第一行会导致错误,因为标记仍为undefined
(没有setMap
- 方法)。
你可能会遇到这种情况并绕过第一行:
if(typeof marker!=='undefined'){
marker.setMap(null);
}
但更好的方法是始终使用相同的标记并应用新位置:
function placeMarker(location) {
//when marker is undefined, create a marker
if(typeof marker==='undefined'){
marker = new google.maps.Marker({
map: map
});
}
//set the position
marker.setPosition(location);
latitude = location.lat();
longitude = locaton.lng();
document.getElementById('koordinaten').innerHTML
= '<p>' + latitude + '</p>';
}