JavaScript通过Geolocation API获取地理位置,需HTTPS安全上下文,调用getCurrentPosition()一次性获取经纬度,watchPosition()持续监听,注意权限、错误处理及隐私合规。
JavaScript 获取地理位置主要靠浏览器内置的 Geolocation API,它能请求用户授权后获取设备的大致经纬度(精度取决于设备和网络环境),不需第三方库或服务器中转。
这是最常用的方法,一次性获取当前位置:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude } = position.coords;
console.log(`纬度:${latitude},经度:${longitude}`);
},
(error) => {
console.error('定位失败:', error.message);
},
{ enableHighAccuracy: false, timeout: 5000, maximumAge: 60000 }
);
} else {
console.log('当前浏览器不支持地理定位');
}适合需要持续跟踪的场景(如导航、运动记录):
navigator.geolocation.clearWatch(watchId)
用户可能遇到的典型报错及处理建议:
timeout 值,或改用 watchPosition 等待更久geolocation 权限 → 父页面需加
实际使用中容易忽略但很关键的点:
enableHighAccuracy: true 不保证更高精度,反而可能延长响应时间或失败基本上就这些。Geolocation API 接口简单,但成败往往取决于权限逻辑、错误兜底和用户体验设计。