JavaScript地理定位API通过navigator.geolocation提供位置服务,需用户授权且仅在HTTPS或localhost下运行;主要方法包括getCurrentPosition()、watchPosition()和clearWatch(),使用时须处理PERMISSION_DENIED等错误并配置选项。
JavaScript 的地理定位(Geolocation)是浏览器提供的一套 API,用来获取用户设备的大致物理位置(如经纬度),前提是用户授权。
它挂载在全局 navigator 对象下,主要通过三个方法操作:
调用前必须确保页面运行在安全上下文(https 或 localhost),否则浏览器会直接拒绝。获取时需处理用户授权逻辑:
以下是最简可行代码:
if ("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude } = position.coords;
console.log("纬度:", latitude, "经度:", longitude);
},
(error) => {
console.error("定位失败:", error.message);
},
{
enableHighAccuracy: false, // 是否启用高精度(耗电/慢),默认 false
timeout: 5000, // 最长等待毫秒数
maximumAge: 60000 // 接受缓存位置的最大时长(毫秒)
}
);
} else {
console.log("当前浏览器不支持地理定位");
}
基本上就这些。不复杂但容易忽略授权和错误处理,补上这两块,定位功能就能稳稳跑起来。