HTML5的GeoLocation究竟如何运作?

Dan*_*Dan 81 html5 google-maps geocoding geolocation

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

例如,我居住的地方没有公共无线网络,从我家我可以看到大约5个私人网络,但我的位置确定在20米内.由于附近没有开放式网络,Google如何确定我的位置?我能想到的唯一方法是,Google在为街景视图绘制街道时映射了所有无线网络的位置.

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

fma*_*ark 68

Firefox发送给Google的数据适用于所有可见的公共或私人接入点.对于检测到的每个接入点,它将以下数据发送到https://www.google.com/loc/json:

  "mac_address": "01-23-45-67-89-ab",
  "signal_strength": 8,
  "age": 0,
  "SSID": "MyAccessPoint"
Run Code Online (Sandbox Code Playgroud)

哪里

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

用于对您的请求进行地理编码的地理配准WiFi数据是在Google开车为StreetView拍照时收集的.

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

甚至firefox也在Windows和Linux上以不同的方式实现此功能.在Windows上使用当前的Firefox,所有可见WiFi节点的详细信息都将发送给Google.在Linux上使用当前的Firefox,由于依赖于libiw接入点数据,仅发送当前连接的WiFi节点的详细信息.

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


cee*_*yoz 6

数据由Skyhook Wireless(维基百科)收集,他们不区分公共和私人wifi点 - 他们记录所有这些点的位置.如果Google街景货车还记录了接入点的位置数据,我不会感到惊讶.

  • Google街道汽车会记录无线数据 - 他们目前正在几个欧洲和apac国家进行调查,因为它可能违反了隐私法. (3认同)