navigator. geolocation.getCurrentPosition()
触发浏览器弹窗询问用户同意访问地址。接收三个参数:成功回调函数,可选的失败回调,可选选项对象
成功回调函数接受一个地址对象作为唯一的参数,该对象有两个属性,coords和timestamp.
coords一定包含latitude,longitude,和accuracy。可选的altitude,altitudeAccuracy,heading,speed
最常用是画出用户地点:
navigator.geolocation.getCurrentPosition(function(position){
drawMapCenteredAt(position.coords.latitude, positions.coords.longitude);
});
失败回调函数也接受一个参数,也是一个对象,上面有两个属性:message和code。message是让人看的错误信息。code是失败类型:1代表用户拒绝,2代表地址不可用,3超时。
最后,可选对象可以设置是否获取最精确地支,最长等待时长,上次地址有限时间
navigator.geolocation.getCurrentPosition(function(position){
drawMapCenteredAt(position.coords.latitude, positions.coords.longitude);
}, function(error){
console.log(“Error code: “ + error.code);
console.log(“Error message: “ + error.message);
}, {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 25000
});
如果想跟踪用户地点,那么可以用watchPosition()方法,和 getCurrentPosition接受同样的三个参数。该方法首先执行一次,然后等待系统通知地点改变再执行。返回一个identifier用来结束。
var watchId = navigator.geolocation.watchPosition(function(position){
drawMapCenteredAt(position.coords.latitude, positions.coords.longitude);
}, function(error){
console.log(“Error code: “ + error.code);
console.log(“Error message: “ + error.message);
});
clearWatch(watchId);