【问题标题】:How, exactly does HTML5's GeoLocation work?HTML5 的 GeoLocation 究竟是如何工作的?
【发布时间】:2011-03-03 17:41:24
【问题描述】:

我知道浏览器会共享我的 IP 地址和附近无线网络的详细信息来确定我的位置,但它知道哪些关于附近 wifi 网络的信息?

例如,我住的地方没有公共无线网络,从我家我可以看到大约 5 个专用网络,但我的位置被确定在 20 米范围内。由于附近没有开放网络,Google 如何确定我的位置?我能想到的唯一方法是,Google 在为街景地图绘制街道时,会绘制所有无线网络的位置。

我在网上搜索过,但都找不到任何具体的细节。

【问题讨论】:

标签: google-maps html geolocation geocoding


【解决方案1】:

Firefox 向 Google 发送的数据适用于所有可见的访问点,无论是公共的还是私有的。对于检测到的每个接入点,它会将以下数据发送到https://www.google.com/loc/json

  "mac_address": "01-23-45-67-89-ab",
  "signal_strength": 8,
  "age": 0,
  "SSID": "MyAccessPoint"

在哪里

  • mac_address是WiFi节点的mac地址。
  • signal_strength 是以 dBm 为单位测量的当前信号强度。
  • age 是自检测到 WiFi 节点以来的毫秒数。
  • SSID 是 WiFi 节点的名称或 ESSID

用于对您的请求进行地理编码的地理参考 WiFi 数据是 collected when Google was driving around taking pictures for StreetView

需要注意的是,这就是 HTML5 地理定位 API 在 Firefox 上使用 Google 的地理定位服务实现的方式。 这是一种实现,而不是规范。如果您的设备具有内置 GPS,则可能希望您的 HTML5 实现直接查询 GPS,而不是使用地理定位服务。

即使是 firefox 在 Windows 和 Linux 上实现此功能的方式也不同。在 Windows 上使用当前的 Firefox,所有可见 WiFi 节点的详细信息都将发送给 Google。在 Linux 上使用当前的 Firefox,仅发送当前连接的 WiFi 节点的详细信息,因为reliance on libiw 用于访问点数据。

正如另一位回答者所说,Safari 使用Skyhook Wireless 的服务,其功能与 Google 的定位服务大致相同。

【讨论】:

    【解决方案2】:

    数据由Skyhook Wireless (Wikipedia) 收集,它们不区分公共 wifi 点和私人 wifi 点 - 它们会记录所有 wifi 点的位置。如果 Google 街景货车也记录接入点的位置数据,我不会感到惊讶。

    【讨论】:

    • Google 街车确实会记录 wifi 数据 - 目前正在几个欧洲和亚太国家/地区对它们进行调查,因为它可能违反隐私法。
    猜你喜欢
    • 2011-06-26
    • 2021-08-15
    • 2012-06-08
    • 2011-10-11
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    相关资源
    最近更新 更多