下面是我使用的代码,用于查找用户的位置。
if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(pos) {
me = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
infoWindow.setPosition(me);
infoWindow.setContent('Location found.');
},
function(error) {
handleLocationError(true, infoWindow, map.getCenter());
});
else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(me);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
}
我试图添加下面的手表位置功能,但它不起作用,我不确定它是如何工作的。
var watchID = navigator.geolocation.watchPosition(function(position) {
(position.coords.latitude, position.coords.longitude);
});
function getLocationUpdate(){
if(navigator.geolocation){
// timeout at 60000 milliseconds (60 seconds)
var options = {timeout:60000};
geoLoc = navigator.geolocation;
watchID = geoLoc.watchPosition(showLocation, errorHandler, options);
}
else{
alert("Sorry, browser does not support geolocation!");
}
如果有人可以帮助我在地图上观看用户的位置,我会非常感激!非常感谢你。
答案 0 :(得分:0)
watchPosition()方法用于注册每次设备位置更改时将自动调用的处理函数。您也可以选择指定错误处理回调函数。
此方法返回监视ID值,然后可以通过将处理程序传递给clearWatch()
方法来取消注册处理程序。
要获取用户的当前位置,您可以调用getCurrentPosition()
方法。这将启动异步请求以检测用户的位置,并查询定位硬件以获取最新信息。确定位置后,执行定义的回调函数。如果发生错误,您可以选择提供第二个回调函数。第三个可选参数是一个选项对象,您可以在其中设置返回位置的最大年龄,等待请求的时间以及您希望该位置的高精度。
如果位置数据发生变化(通过设备移动或更准确的地理信息到达),您可以设置使用更新的位置信息调用的回调函数。这是使用watchPosition()
函数完成的,该函数具有与getCurrentPosition()
相同的输入参数。回调函数被多次调用,允许浏览器在您移动时更新您的位置,或者提供更准确的位置,因为不同的技术用于地理定位您。 1}}的错误回调函数是可选的,可以重复调用。
有关详细信息,请查看此documentation
另请查看此SO question。