Geolocation API 是浏览器原生地理定位接口,需用户授权且仅在 HTTPS 或 localhost 中可用;支持单次获取(getCurrentPosition)和持续监听(watchPosition),需处理兼容性、错误及隐私限制。

Geolocation API 是浏览器原生支持的获取用户地理位置的接口,不需要额外库,但需要用户授权,且只在安全上下文(HTTPS 或 localhost)中可用。
基本用法:获取一次当前位置
调用 navigator.geolocation.getCurrentPosition() 即可请求当前经纬度。它接受两个回调函数:成功时执行第一个,失败时执行第二个。
- 成功回调接收一个
position对象,其中position.coords.latitude和position.coords.longitude是关键字段 - 失败回调接收一个
error对象,error.code可判断原因(如 1=用户拒绝、2=位置不可用、3=超时) - 可选第三个参数是配置对象,比如
{ enableHighAccuracy: true, timeout: 5000, maximumAge: 60000 }
监听位置变化:持续跟踪移动
用 navigator.geolocation.watchPosition() 替代单次获取,它返回一个唯一 ID,可用于后续停止监听。
- 每次位置更新(哪怕微小变动)都会触发成功回调
- 建议在不需要时主动调用
navigator.geolocation.clearWatch(watchId)释放资源 - 注意:频繁更新会增加耗电,生产环境建议结合
maximumAge和timeout控制精度与频率
处理常见错误和兼容性
不是所有浏览器或环境都支持 Geolocation,需做兜底判断。
标签: javascript java git 浏览器 安卓 回调函数 safari ios 地理位置
还木有评论哦,快来抢沙发吧~