我验证了同样的效果。 Chrome 将我钉在离得太近的地方……可怕的接近。
而 Firefox 错过了大约 500 英里和整个州。
那是什么?
当您深入研究 HTML5 geoLocation 文档时,您会发现 API 根据定义与您的 geoLocation 服务的来源无关。
它可以是一个支持 GPS 的设备,它可以是一个蜂窝塔网络,它可以是通过 WIFI 热点,也可以是通过 Geo-IP。
因此,以此为背景,我提出了 Chrome 使用 WIFI 热点但 Firefox 正在回退到 GeoIP 的假设。 (许多网站很容易为您提供 GeoIP……果然,我的 GeoIP 出现在俄勒冈州胡德或远离我真实所在的某个地方。- 我猜这要怪 ISP。)
因此,有了这些信息,当我使用 Firefox 测试我的地理位置时,果然:Hood Oregon。
但正如我所说,当我使用 Chrome 测试我的地理位置时:几乎可以找到。
到目前为止我还没有提到,但对我的假设至关重要的是,到目前为止,我一直在使用支持 WIFI 的笔记本电脑进行测试。
开始测试 2:
在笔记本电脑上禁用WIFI,通过以太网线将笔记本电脑连接到路由器,然后使用Chrome重复上述geoLocation测试。
结果:Chrome 将我置于 Firefox 的位置,远在 Hood Oregon。
经验结论:
Chrome 会使用 WIFI 热点(如果可用)计算您的地理位置,而 Firefox 则不会。
HTML5 GeoLocation API 确实有一个“高精度”标志,默认设置为 False。也许就像 Chrome 将其设置为 True 一样简单,而 FireFox 则没有。
后续问题:
如何窥探数据流来验证这一点?