我正在尝试在谷歌地图上创建一个标记来向用户显示当前位置。使用以下代码我可以做到这一点,但每次 watchPosition 刷新时都会创建一个新点。每次添加新点时如何清除以前的标记?
// Geolocation
var win = function(position) {
var iconimage = new google.maps.MarkerImage('images/current_location_small.png',
new google.maps.Size(15, 15),
new google.maps.Point(0,0),
new google.maps.Point(7, 7)
);
var lat = position.coords.latitude;
var long = position.coords.longitude;
var myLatlng = new google.maps.LatLng(lat, long);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon: iconimage
});
marker.setMap(map);
};
var watchID = navigator.geolocation.watchPosition(win);
最佳答案
您可以在函数外声明您的标记并使用 setPosition(LatLng)
方法
// Geolocation
var marker=null;
var win = function(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
var myLatlng = new google.maps.LatLng(lat, long);
if(marker==null){
var iconimage = new google.maps.MarkerImage('images/current_location_small.png',
new google.maps.Size(15, 15),
new google.maps.Point(0,0),
new google.maps.Point(7, 7)
);
marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon: iconimage
});
marker.setMap(map);
}else{
marker.setPosition(myLatlng);
}
};
var watchID = navigator.geolocation.watchPosition(win);
关于javascript - 使用 watchPosition 仅显示当前位置标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538760/