无需登录 数据私有 本地保存

地理位置 API 演示 - 获取当前设备坐标

30
0
0
0

地理位置 API 演示

Geolocation API Demo
开启后将持续监听设备位置变化
等待获取位置...
纬度 Latitude
--
--
经度 Longitude
--
--
完整坐标
--
精度 Accuracy --
海拔 Altitude --
速度 Speed --
方向 Heading --
更新时间 --
追踪点数: 0 (最近100个)
点击左侧按钮获取位置 位置将显示在此地图上
当前位置 追踪轨迹 精度范围
常见问题与知识点

Geolocation API 是浏览器提供的一组接口,允许网页在用户授权的情况下获取设备的地理位置信息。它通过 navigator.geolocation 对象暴露,支持两种获取方式:getCurrentPosition()(单次获取)和 watchPosition()(持续追踪)。位置数据来源于设备的 GPS 芯片、Wi-Fi 三角定位、蜂窝基站定位或 IP 地址定位,精度因来源而异。

出于隐私保护,所有现代浏览器都要求网页在获取地理位置前必须获得用户明确授权。当你点击"获取位置"时,浏览器会弹出权限对话框。如果选择了拒绝,网页将无法获取位置信息。你可以在浏览器设置中管理位置权限:
Chrome:设置 → 隐私和安全 → 网站设置 → 位置
Firefox:设置 → 隐私与安全 → 权限 → 位置
Safari:偏好设置 → 网站 → 位置
Edge:设置 → Cookie 和网站权限 → 位置

从 Chrome 50(2016年)开始,Geolocation API 被标记为仅安全上下文可用。这意味着只有通过 HTTPS 访问的页面(或 localhost 本地开发环境)才能使用此 API。这是为了防止中间人攻击窃取用户敏感的位置数据。如果你的网站仍在使用 HTTP,浏览器将直接拒绝位置请求。

位置精度主要取决于定位方式:
GPS(户外):精度 3-10 米,需要卫星信号,室内几乎不可用
Wi-Fi 三角定位:精度 10-50 米,城市区域表现较好
蜂窝基站:精度 100-1000 米,偏远地区偏差更大
IP 定位:精度可达数公里,仅作为后备方案

此外,高楼遮挡、天气、设备硬件质量等也会影响精度。属性 position.coords.accuracy 会告诉你本次定位的误差半径(单位:米,置信度95%)。

getCurrentPosition():仅获取一次当前位置,适合签到、搜索附近等场景。
watchPosition():持续监听设备位置变化,每当位置发生显著变化时自动回调,适合导航、运动追踪等场景。它会返回一个 watchId,可通过 clearWatch(watchId) 停止追踪。

⚠️ 持续追踪会显著增加电量消耗,建议在不需要时及时关闭。本工具开启追踪后会在页面上显示"追踪中"指示器提醒你。

iOS(Safari):设置 → 隐私与安全性 → 定位服务 → 找到对应浏览器 → 选择"使用App期间"或"始终"
Android(Chrome):设置 → 应用 → Chrome → 权限 → 位置 → 允许
部分浏览器还要求在系统层面开启GPS/定位服务,如果系统定位服务关闭,浏览器也无法获取位置。

WGS84(World Geodetic System 1984)是全球最广泛使用的地理坐标系,GPS 设备和浏览器 Geolocation API 返回的坐标均基于此坐标系。

坐标格式转换示例:
十进制度(DD):39.9042°N, 116.4074°E
度分秒(DMS):39°54'15.1"N, 116°24'26.6"E
转换方法:取整数部分为度,小数部分×60取整数为分,余下小数×60为秒。本工具同时显示两种格式,方便不同场景使用。

海拔和速度数据依赖设备的GPS 硬件。桌面电脑通常没有 GPS 芯片,通过 Wi-Fi 或 IP 定位无法提供海拔和速度信息。智能手机在户外开启 GPS 时可以获取这些数据。
如果值为 null,说明当前定位方式不支持该数据维度。此外,海拔的精度通常低于水平精度,误差可能在数十米。