地理位置API 允许JavaScirpt程序向浏览器询问用户真实的地理位置。
应用场景:可以使用它来显示地图,导航和其他一些用户当前位置相关的信息。(涉及到用户隐私问题,一般需要用户授权处理)
使用 navigator.geolocation 属性获取用户信息。
此属性还拥有三个方法的对象:
navigator.geolocation.getCurrentPosition() // 翻译:导航器,地理位置,获取当前位置
// 获取用用户当前位置
navigator.geolocation.watchPosition() // 翻译:导航器,地理位置,监听位置
// 获取当前位置,同时不断地监视当前位置,一旦用户位置发生更改,就会调用指定的回调函数
navigator.geolocation.clearWatch() // 翻译:导航器,地理位置,清除监听
// 停止监视用户位置。传递给此放大的参数应当是调用watchPosition()方法获得的返回值
地理位置相关的技术都包含通过网络的数据交换或者和多个卫星之间的通信,因此地理位置API是异步的:getCurrenPositionI()方法和watchPostion()方法需要接受一个回调函数作为参数,在判断用户的位置信息(或者当前位置发生改变)时,浏览器会调用该函数。
获取位置的简单例子:
// 导航器.地理位置.获取当前位置
navigator.geolocation.getCurrentPosition(function(pos){
let latitude = pos.coords.latitude // pos.坐标.纬度
let longitude = pos.coords.longitude // pos.坐标.经度
alert(你的位置: "+ latitude +","+ longitude")
})