地理位置

W3C 候选推荐标准快照

关于此文档的更多细节
此版本
https://w3org.cn/TR/2026/CR-geolocation-20260326/
最新发布版本
https://w3org.cn/TR/geolocation/
最新编辑草案
https://w3c.github.io/geolocation/
历史
https://w3org.cn/standards/history/geolocation/
提交历史
测试套件
https://wpt.live/geolocation/
实现报告
https://w3c.github.io/geolocation/reports/implementation.html
编辑
Marcos Cáceres (Apple Inc.)
Reilly Grant (Google)
前任编辑
Andrei Popescu (Google Inc.)
反馈
GitHub w3c/geolocation (pull requests, new issue, open issues)
勘误表
存在勘误表.
浏览器支持
caniuse.com

摘要

地理位置 API (Geolocation) 提供对与宿主设备相关联的地理位置信息的访问。

本文档状态

本节描述了本文件发布时的状态。当前的 W3C 出版物列表和本技术报告的最新版本可以在 W3C 标准和草案索引中找到。

地理位置 API 最初作为 W3C 推荐标准于 2022 年 9 月 1 日发布。2026 年 3 月,该规范回归至候选推荐标准阶段,以便工作组能更高效地对实质性变更进行迭代,并持续添加新功能。

在本规范发布时,设备与传感器工作组仍根据 2020 年 9 月 15 日版本的 W3C 专利政策运行。

本文件由 设备与传感器工作组Web 应用工作组发布,作为候选推荐标准快照,使用 推荐标准流程 (Recommendation track)

作为候选推荐标准发布并不意味着 W3C 及其成员的背书。候选推荐标准快照已经过 广泛评审,旨在收集 实现经验,并且工作组成员已承诺为相关实现提供 免版税许可

预计本候选推荐标准在 2026 年 5 月 1 日之前不会进入推荐标准阶段。

本文件由遵循 W3C 专利政策的组别制定。W3C 维护了一份 专利披露公开列表(设备与传感器工作组) 和一份 专利披露公开列表(Web 应用工作组),其中包含与各组交付成果相关的专利披露;这些页面还包含了披露专利的说明。任何知悉包含 必要权利要求 (Essential Claim(s)) 的专利的个人,必须按照 W3C 专利政策第 6 节的要求披露该信息。

本文件受 2025 年 8 月 18 日 W3C 流程文档约束。

1. 简介

本节是非规范性的。

地理位置 API 定义了一个高级接口,用于获取仅与实现该接口的宿主设备相关联的地理位置信息。常见的地理位置信息源包括全球定位系统 (GPS),以及从网络信号推导出的位置信息(如 IP 地址、RFID、WiFi 和蓝牙 MAC 地址、GSM/CDMA 基站 ID)以及用户输入。API 本身对底层的地理位置信息源不置可否,且不保证 API 返回的是设备的实际位置。

如果最终用户 授予权限地理位置 API

1.1 范围

本节是非规范性的。

本规范仅限于提供一个用于获取与宿主设备相关联的地理位置信息的脚本 API。地理位置信息以世界大地测量系统坐标 [WGS84] 的形式提供。它不包括提供任何类型的标记语言,也不包括定义用于构建标识地理位置的 URL 的新 URL 方案。

2. 示例

本节是非规范性的。

该 API 的设计旨在同时支持“一次性”位置请求和持续位置更新。以下示例展示了常见的用例。

2.1 获取当前位置

本节是非规范性的。

请求用户的当前位置。如果用户允许,您将获得一个位置对象。

2.2 监听位置

本节是非规范性的。

请求监听用户的当前位置。如果用户允许,您将获得用户位置的持续更新。

2.3 停止监听位置

本节是非规范性的。

通过调用 clearWatch() 方法停止监听位置变化。

2.4 处理错误

本节是非规范性的。

当发生错误时,watchPosition()getCurrentPosition() 方法的第二个参数将调用一个 GeolocationPositionError 错误,这有助于确定可能出了什么问题。

2.5 使用 maximumAge 进行缓存控制

本节是非规范性的。

默认情况下,只要 API 有之前获取到的位置,它总是尝试返回该缓存位置。在此示例中,我们接受生存时间不超过 10 分钟的位置。如果用户代理没有足够新的缓存位置对象,它会自动获取一个新位置。

2.6 使用 timeout

本节是非规范性的。

如果您对位置信息有时间敏感的要求,可以使用 PositionOptionstimeout 成员来限制等待 获取位置 的时间。

2.7 在第三方上下文中启用 API

本节是非规范性的。

'self'默认允许列表 允许在同源嵌套框架中使用 API,但阻止第三方内容使用该 API。

通过在 iframe 元素上添加 allow="geolocation" 属性,可以选择性地启用第三方使用。

或者,可以通过指定 HTTP 响应头在第一方上下文中禁用 API。

有关 Permissions-Policy HTTP 头的更多详情,请参阅 权限策略

3. 隐私考量

本节是非规范性的。

本规范定义的 API 用于获取宿主设备的地理位置。在几乎所有情况下,此信息也会披露设备用户的位置,从而可能损害用户的隐私。

3.2 位置信息接收者的隐私考量

本节是非规范性的。

注意: 开发者对处理此类敏感数据的责任

本节适用于“接收者”,通常是指利用 地理位置 API 的开发者。虽然用户代理或本规范无法强制执行这些要求,但开发者需要仔细阅读本节并尽最大努力遵守以下建议。开发者需要意识到,其管辖区内可能存在规范用户位置数据使用和访问的隐私法律。

接收者应仅在必要时请求位置信息,并仅将位置信息用于提供该信息所针对的任务。除非明确获得用户允许保留,否则接收者应在任务完成后处理掉位置信息。接收者还需要采取措施保护该信息免受未经授权的访问。如果存储了位置信息,则需要允许用户更新和删除此信息。

位置信息的接收者需避免在未经用户明确许可的情况下重新传输位置信息。在重新传输时需特别小心,并鼓励使用加密技术。

接收者应清晰且显眼地披露其正在收集位置数据的事实、收集目的、数据保留时长、数据安全保障方式、若共享则数据如何共享、用户如何访问/更新/删除数据,以及用户对于该数据的任何其他选择权。此披露需要包括对上述指南中任何例外的解释。

3.3 实现考量

本节是非规范性的。

建议实现者考虑可能对用户隐私产生负面影响的以下方面:在某些情况下,用户可能会无意中授予用户代理将位置信息泄露给网站的权限。在其他情况下,托管在特定 URL 上的内容发生了变化,使得先前授予的位置权限不再适用于用户所认为的情况。或者,用户可能只是改变了主意。

预测或预防这些情况本身就很困难。缓解措施和深入的防御性措施是实现的责任,而非由本规范规定。然而,在设计这些措施时,建议实现者启用位置共享的用户感知,并提供允许撤销权限的用户界面。

3.4 检查使用 API 的权限

地理位置 API 是一个 默认强大功能,由 名称 "geolocation" 标识。

检查权限 以使用该 API 时,用户代理 可以 建议基于时间的 权限 生命周期,例如“24 小时”、“1 周”,或者选择无限期记住该 授权。然而,强烈建议 用户代理优先考虑将 权限 生命周期 限制为单个会话:例如,直到 领域 (realm) 被销毁、最终用户 导航 离开该 源 (origin) 或相关的浏览器标签页关闭。

4. 安全考量

本规范发布时,地理位置 API 没有相关的安全考量。但建议读者阅读 3. 隐私考量

6. Geolocation 接口与回调

WebIDL[Exposed=Window]
interface Geolocation {
  undefined getCurrentPosition (
    PositionCallback successCallback,
    optional PositionErrorCallback? errorCallback = null,
    optional PositionOptions options = {}
  );

  long watchPosition (
    PositionCallback successCallback,
    optional PositionErrorCallback? errorCallback = null,
    optional PositionOptions options = {}
  );

  undefined clearWatch (long watchId);
};

callback PositionCallback = undefined (
  GeolocationPosition position
);

callback PositionErrorCallback = undefined (
  GeolocationPositionError positionError
);

6.1 内部槽位

Geolocation 的实例使用下表中的内部插槽进行创建

内部槽位 描述
[[cachedPosition]] 一个初始化为 null 的 GeolocationPosition。它是对最后一次获取的位置的引用,并作为缓存使用。用户代理 可以 在任何时间因任何原因通过将其重置为 null 来清除 [[cachedPosition]]
[[watchIDs]] 初始化为一个空的 列表,包含 unsigned long

6.2 getCurrentPosition() 方法

getCurrentPosition(successCallback, errorCallback, options) 方法的步骤如下

  1. 如果 this相关全局对象关联 Document 未处于 完全活动状态
    1. 错误回调 errorCallback 并使用 POSITION_UNAVAILABLE
    2. 终止此算法。
  2. 请求位置,传入 thissuccessCallbackerrorCallbackoptions

6.3 watchPosition() 方法

watchPosition(successCallback, errorCallback, options) 方法的步骤如下

  1. 如果 this相关全局对象关联 Document 未处于 完全活动状态
    1. 错误回调,传入 errorCallbackPOSITION_UNAVAILABLE
    2. 返回 0。
  2. watchId 为一个 实现定义 的大于零的 unsigned long
  3. 追加 watchIdthis[[watchIDs]]
  4. 请求位置,传入 thissuccessCallbackerrorCallbackoptionswatchId
  5. 返回 watchId

6.4 clearWatch() 方法

当调用 clearWatch() 时,用户代理 必须

  1. 移除 watchIdthis[[watchIDs]]

6.5 请求位置

请求位置,需传入一个 Geolocation geolocation、一个 PositionCallback successCallback、一个 PositionErrorCallback? errorCallback、一个 PositionOptions options 以及一个可选的 watchId

  1. watchIDsgeolocation[[watchIDs]]
  2. documentgeolocation相关全局对象关联 Document
  3. 如果 document 不被 允许使用 "geolocation" 功能
    1. 如果传入了 watchId移除 watchIdwatchIDs
    2. 错误回调,传入 errorCallbackPERMISSION_DENIED
    3. 终止此算法。
  4. 如果 geolocation环境设置对象 是一个 非安全上下文
    1. 如果传入了 watchId移除 watchIdwatchIDs
    2. 错误回调,传入 errorCallbackPERMISSION_DENIED
    3. 终止此算法。
  5. 如果 document可见性状态 为 "hidden",等待运行以下 页面可见性变更步骤
    1. 断言document可见性状态 为 "visible"。
    2. 继续执行以下后续步骤。
  6. descriptor 为一个新的 PermissionDescriptor,其 name"geolocation"
  7. 并行地:
    1. 设置 permission请求使用权限 descriptor
    2. 如果 permission 为 "denied",则
      1. 如果传入了 watchId移除 watchIdwatchIDs
      2. 错误回调,传入 errorCallbackPERMISSION_DENIED
      3. 终止此算法。
    3. 等待 获取位置,传入 successCallbackerrorCallbackoptionswatchId
    4. 如果未传入 watchId,终止此算法。
    5. watchIDs 包含 watchId
      1. 等待地理位置发生显著变化。何谓地理位置的显著变化由实现决定。用户代理 可以 对位置变化的报告频率设置速率限制。用户代理 必须 考虑将调用 设置模拟位置数据 作为显著变化。
      2. 如果 document 未处于 完全活动状态 或者 可见性状态 不为 "visible",回到上一步并再次 等待地理位置发生显著变化
        注意: 位置更新仅针对完全活动的可见文档
      3. 等待 获取位置,传入 successCallbackerrorCallbackoptionswatchId

6.6 获取位置

获取位置,需传入 PositionCallback successCallback、一个 PositionErrorCallback? errorCallbackPositionOptions options 以及一个可选的 watchId

  1. 如果传入了 watchIdthis[[watchIDs]]包含 watchId,终止此算法。
  2. acquisitionTime 为一个表示当前时刻的 EpochTimeStamp
  3. timeoutTimeacquisitionTimeoptions.timeout 之和。
  4. cachedPositionthis[[cachedPosition]]
  5. 创建一个在 timeoutTime 过期的实现特定的 timeout 任务,在此期间它尝试运行以下步骤来获取设备位置
    1. permission获取当前权限状态 "geolocation" 的结果。
    2. 如果 permission 为 "denied"
      1. 停止 timeout
      2. 执行 用户或系统拒绝权限 的失败情况步骤。
    3. 如果 permission 为 "granted"
      1. 通过运行以下步骤检查是否应使用模拟位置
        1. emulatedPositionData获取模拟位置数据,传入 this
        2. 如果 emulatedPositionData 不为 null
          1. 如果 emulatedPositionDataGeolocationPositionError
            1. 错误回调,传入 errorCallbackemulatedPositionData.code
            2. 终止此算法。
          2. position一个新的 GeolocationPosition,传入 emulatedPositionDataacquisitionTimeoptions.enableHighAccuracy
          3. 地理位置任务源排队执行一个任务,其步骤为 调用 successCallback,传入参数 « position » 和 "report"。
          4. 终止此算法。
      2. position 为 null。
      3. 如果 cachedPosition 不为 null,且 options.maximumAge 大于 0
        1. cacheTimeacquisitionTime 减去 options.maximumAge 成员的值。
        2. 如果 cachedPositiontimestamp 的值大于 cacheTime,且 cachedPosition.[[isHighAccuracy]] 等于 options.enableHighAccuracy
          1. 地理位置任务源排队执行一个任务,其步骤为 调用 successCallback,传入参数 « cachedPosition » 和 "report"。
          2. 终止此算法。
      4. 否则,如果 position 不为 cachedPosition,尝试从底层系统获取位置数据,并在获取过程中可选地考虑 options.enableHighAccuracy 的值。
      5. 如果 timeout 在获取过程中过期,或者获取设备位置导致失败
        1. 停止 timeout
        2. 跳转至 处理失败情况
        3. 终止此算法。
      6. 如果从系统中成功获取到位置数据
        1. positionData 为一个 映射,其中包含基于获取到的位置数据的名称/值对
          "accuracy"
          一个非负 double,表示以米为单位的精度值,指示 95% 的置信水平。精度衡量测量坐标与真实位置的接近程度。
          "altitude"
          一个 double?,表示在 [WGS84] 椭球体之上的海拔(以米为单位),若不可用则为 null。海拔衡量海平面的高度。
          "altitudeAccuracy"
          一个非负 double?,表示海拔精度(若不可用则为 null),以米为单位,指示 95% 的置信水平。海拔精度衡量测量海拔与真实海拔的接近程度。
          "heading"
          一个 double?,表示以度为单位的航向(若不可用或设备静止则为 null)。航向衡量设备相对于真北的移动方向。
          "latitude"
          一个 double,表示地表上以度为单位的纬度坐标,使用 [WGS84] 坐标系。纬度衡量某点距赤道的南北距离。
          "longitude"
          一个 double,表示地表上以度为单位的经度坐标,使用 [WGS84] 坐标系。经度衡量某点距本初子午线的东西距离。
          "speed"
          一个非负 double?,表示以米每秒为单位的速度(若不可用则为 null)。速度衡量设备移动的快慢。
        2. 设置 position一个新的 GeolocationPosition,传入 positionDataacquisitionTimeoptions.enableHighAccuracy
        3. 设置 this[[cachedPosition]]position
      7. 停止 timeout
      8. 地理位置任务源排队执行一个任务,其步骤为 调用 successCallback,传入参数 « position » 和 "report"。
    处理失败情况
    • 如果获取位置失败,根据匹配到的失败条件执行以下操作之一
      用户或系统拒绝权限

      错误回调,传入 errorCallbackPERMISSION_DENIED

      注意: 浏览器权限 VS 操作系统权限
      超时过期
      错误回调,传入 errorCallbackTIMEOUT
      数据获取错误或任何其他原因
      错误回调,传入 errorCallbackPOSITION_UNAVAILABLE

6.7 错误回调

当被指示 进行错误回调 时,需提供一个 PositionErrorCallback? callback 和一个 unsigned short code

  1. 如果 callback 为 null,返回。
  2. error 为一个新创建的 GeolocationPositionError 实例,其 code 属性初始化为 code
  3. 地理位置任务源排队执行一个任务,其步骤为 调用 callback,传入参数 « error » 和 "report"。

7. PositionOptions 字典

WebIDLdictionary PositionOptions {
  boolean enableHighAccuracy = false;
  [Clamp] unsigned long timeout = 0xFFFFFFFF;
  [Clamp] unsigned long maximumAge = 0;
};

7.1 enableHighAccuracy 成员

enableHighAccuracy enableHighAccuracy 成员提供了一个提示,即应用希望接收最精确的位置数据。此成员的预期目的是允许应用告知实现其不需要高精度地理位置修正,因此实现 可以 避免使用消耗大量电能的地理位置提供商(例如 GPS)。

注意: 关于 enableHighAccuracy 的警告

7.2 timeout 成员

timeout timeout 成员表示 获取位置 过期前的最长时间,以毫秒为单位。

注意: 超时是如何计算的?

等待文档变得可见和 获取使用 API 的权限 所花费的时间不计入 timeout 成员所覆盖的周期中。timeout 成员仅在开始 获取位置 时适用。

注意: 立即取消

7.3 maximumAge 成员

maximumAge maximumAge 成员表示 Web 应用愿意接受生存时间不超过指定时间(以毫秒为单位)的缓存位置。

8. GeolocationPosition 接口

WebIDL[Exposed=Window, SecureContext]
interface GeolocationPosition {
  readonly attribute GeolocationCoordinates coords;
  readonly attribute EpochTimeStamp timestamp;
  [Default] object toJSON();
};

8.1 coords 属性

coords 属性包含地理坐标。

8.2 timestamp 属性

timestamp 属性表示设备地理位置获取的时间。

8.3 toJSON() 方法

toJSON() 方法返回 GeolocationPosition 对象的 JSON 表示。

8.4 内部插槽

GeolocationPosition 的实例使用下表中的内部插槽进行创建

内部槽位 描述
[[isHighAccuracy]] 一个 boolean,记录了当此 GeolocationPosition 被创建 时的 enableHighAccuracy 成员的值。

8.5 任务源

本规范定义了以下 任务源

地理位置任务源 (geolocation task source)
本规范使用它来排队执行非阻塞的 PositionCallbackPositionErrorCallback(在执行 位置请求 时)。

9. GeolocationCoordinates 接口

WebIDL[Exposed=Window, SecureContext]
interface GeolocationCoordinates {
  readonly attribute double accuracy;
  readonly attribute double latitude;
  readonly attribute double longitude;
  readonly attribute double? altitude;
  readonly attribute double? altitudeAccuracy;
  readonly attribute double? heading;
  readonly attribute double? speed;
  [Default] object toJSON();
};

9.1 latitude, longitude, accuracy 属性

latitudelongitude 属性表示位置,以 [WGS84] 坐标系中以度为单位的实数指定。

accuracy 属性表示以米为单位的位置精度半径。

9.2 altitude, altitudeAccuracy 属性

altitude 属性表示位置高度,指定为在 [WGS84] 椭球体之上的米数。

altitudeAccuracy 属性表示以米为单位的海拔精度(例如 10 米)。

9.3 heading 属性

heading 属性表示宿主设备的移动方向,以度为单位,其中 0° ≤ heading < 360°,相对于真北顺时针计数。

9.4 speed 属性

speed 属性表示宿主设备当前速度的水平分量大小,以米每秒为单位。

9.5 toJSON() 方法

toJSON() 方法返回 GeolocationCoordinates 对象的 JSON 表示。

9.6 构建 GeolocationPosition

一个新的 GeolocationPosition 的构造方式为:传入 映射 positionDataEpochTimeStamp timestamp 和布尔值 isHighAccuracy,并执行以下步骤

  1. coords 为一个新创建的 GeolocationCoordinates 实例。
  2. 对于 positionData 中的每个 keyvalue
    1. 设置 coords 名为 key 的属性为 value
  3. 返回一个新创建的 GeolocationPosition 实例,其 coords 属性初始化为 coordstimestamp 属性初始化为 timestamp,且其 [[isHighAccuracy]] 内部插槽设置为 isHighAccuracy

10. GeolocationPositionError 接口

WebIDL[Exposed=Window]
interface GeolocationPositionError {
  const unsigned short PERMISSION_DENIED = 1;
  const unsigned short POSITION_UNAVAILABLE = 2;
  const unsigned short TIMEOUT = 3;
  readonly attribute unsigned short code;
  readonly attribute DOMString message;
};

10.1 常量

PERMISSION_DENIED (数值 1)
请求位置 失败,原因是用户拒绝了 API 使用权限,或该请求是从 非安全上下文 发出的。
POSITION_UNAVAILABLE (数值 2)
获取位置 失败。
TIMEOUT (数值 3)
在用户代理成功 获取位置 之前,timeout 成员指定的时长已过期。

10.2 code 属性

code 属性返回其 初始化时 的值(可能的取值请参阅 10.1 常量)。

10.3 message 属性

message 属性是对 code 属性的开发者友好文本描述。

注意: 不要向用户显示 .message!

11. 权限策略

本规范定义了一个由 策略控制的功能,由标记字符串 "geolocation" 标识。其 默认允许列表'self'

12. 模拟

出于用户代理自动化和应用测试的目的,本文件定义了地理位置模拟。

每个 顶层可遍历对象 (top-level traversable) 都有一个关联的 模拟位置数据 (emulated position data),它代表 GeolocationCoordinatesGeolocationPositionError 或 null,初始为 null。

设置模拟位置数据,需提供 可导航对象 (navigable) navigable 和一个 emulatedPositionData

  1. 断言 emulatedPositionData 要么是 null,要么是 GeolocationCoordinatesGeolocationPositionError
  2. traversablenavigable顶层可遍历对象
  3. 如果 traversable 不为 null
  4. 设置 traversable 关联的 模拟位置数据emulatedPositionData
  5. 用户代理 必须 将此视为 等待地理位置发生显著变化 步骤中的“显著变化”。

获取模拟位置数据,需提供 Geolocation geolocation

  1. navigablegeolocation相关全局对象关联 Document节点可导航对象 (node navigable)
  2. 如果 navigable 为 null,返回 null。
  3. traversablenavigable顶层可遍历对象
  4. 如果 traversable 为 null,返回 null。
  5. 返回 traversable 关联的 模拟位置数据

13. 一致性

除了标记为非规范性的章节外,本规范中的所有创作指南、图表、示例和注释均为非规范性内容。本规范中的其他所有内容均为规范性内容。

本文档中的关键字 MAY (可以)、MUST (必须) 和 RECOMMENDED (推荐) 仅在全部大写时(如所示),按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释。

A. IDL 索引

WebIDLpartial interface Navigator {
  [SameObject] readonly attribute Geolocation geolocation;
};

[Exposed=Window]
interface Geolocation {
  undefined getCurrentPosition (
    PositionCallback successCallback,
    optional PositionErrorCallback? errorCallback = null,
    optional PositionOptions options = {}
  );

  long watchPosition (
    PositionCallback successCallback,
    optional PositionErrorCallback? errorCallback = null,
    optional PositionOptions options = {}
  );

  undefined clearWatch (long watchId);
};

callback PositionCallback = undefined (
  GeolocationPosition position
);

callback PositionErrorCallback = undefined (
  GeolocationPositionError positionError
);

dictionary PositionOptions {
  boolean enableHighAccuracy = false;
  [Clamp] unsigned long timeout = 0xFFFFFFFF;
  [Clamp] unsigned long maximumAge = 0;
};

[Exposed=Window, SecureContext]
interface GeolocationPosition {
  readonly attribute GeolocationCoordinates coords;
  readonly attribute EpochTimeStamp timestamp;
  [Default] object toJSON();
};

[Exposed=Window, SecureContext]
interface GeolocationCoordinates {
  readonly attribute double accuracy;
  readonly attribute double latitude;
  readonly attribute double longitude;
  readonly attribute double? altitude;
  readonly attribute double? altitudeAccuracy;
  readonly attribute double? heading;
  readonly attribute double? speed;
  [Default] object toJSON();
};

[Exposed=Window]
interface GeolocationPositionError {
  const unsigned short PERMISSION_DENIED = 1;
  const unsigned short POSITION_UNAVAILABLE = 2;
  const unsigned short TIMEOUT = 3;
  readonly attribute unsigned short code;
  readonly attribute DOMString message;
};

B. 索引

B.1 本规范定义的术语

B.2 引用定义的术语

C. 致谢

本节是非规范性的。

本规范基于业界的早期工作,包括 Aza Raskin、Google Gears Geolocation API 和 LocationAware.org 的研究。

同时也感谢 Alec Berntson、Alissa Cooper、Steve Block、Greg Bolsinga、Lars Erik Bolstad、Aaron Boodman、Dave Burke、Chris Butler、Max Froumentin、Shyam Habarakada、Marcin Hanclik、Ian Hickson、Brad Lassey、Angel Machin、Cameron McCormack、Daniel Park、Stuart Parmenter、Olli Pettay、Chris Prince、Arun Ranganathan、Carl Reed、Thomas Roessler、Dirk Segers、Allan Thomson、Martin Thomson、Doug Turner、Erik Wilde、Matt Womer 和 Mohamed Zergaoui 的贡献。

D. 更新日志

本节是非规范性的。

自 2022 年作为 W3C 推荐标准发布以来,地理位置 API 进行了以下规范性变更

自 2021 年首次公开工作草案以来,直至 2022 年发布为 W3C 推荐标准,地理位置 API 进行了以下规范性变更

自 2016 年发布第二版以来,本规范已进行以下实质性更改:

参阅提交历史以获取完整更改列表。

E. 参考文献

E.1 规范性引用

[hr-time]
高精度时间 (High Resolution Time). Yoav Weiss. W3C. 2026年3月2日. W3C 工作草案. URL: https://w3org.cn/TR/hr-time-3/
[html]
HTML 标准. Anne van Kesteren; Domenic Denicola; Dominic Farolino; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. 活标准. URL: https://html.whatwg.cn/multipage/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[Permissions]
Permissions (权限)。Marcos Caceres; Mike Taylor。W3C。2025年10月6日。W3C 工作草案。URL:https://w3org.cn/TR/permissions/
[permissions-policy]
权限策略. Ian Clelland. W3C. 2025年10月6日. W3C 工作草案. URL: https://w3org.cn/TR/permissions-policy-1/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. 1997年3月. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
RFC 2119 关键词中大小写的歧义. B. Leiba. IETF. 2017年5月. 最佳当前实践. URL: https://www.rfc-editor.org/rfc/rfc8174
[webidl]
Web IDL Standard. Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: https://webidl.spec.whatwg.org/
[WGS84]
1984年世界大地测量系统 (WGS 84). 国家地理空间情报局地理信息办公室. 2008. URL: https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84