Chrome和Firefox中的HTML5地理位置不同

时间:2012-03-08 23:17:34

标签: html5 geolocation

我正在尝试HTML5中的GeoLocation功能。我试过这个例子:html5demos.com当在Ubuntu下使用Firefox 10.0.2打开它时,我找到了一个我不在的城市。使用Chrome,它可以正确找到我。我所在的城市离我所在的城市很远,即使我一个月前在那个城市。

任何人都知道会发生什么事情? HTML5-Geolocation(从编程的角度来看)如何工作,在这方面可能会失败?

1 个答案:

答案 0 :(得分:5)

我验证了同样的效果。 Chrome把我钉在了太近的地方......吓人的。 虽然Firefox错过了大约500英里和整个州。

那是什么给了什么?

当您深入了解HTML5 geoLocation文档时,您会发现API根据定义与您的geoLocation服务的来源无关。

它可能是一个支持GPS的设备,它可能是一个Cell塔网络,可能是通过WIFI热点,也可能是通过Geo-IP。

因此,作为背景,我形成了Chrome使用WIFI热点但Firefox正在回归GeoIP的假设。 (许多网站都会很容易地给你一个GeoIP ......当然,我的GeoIP会出现在Hood Oregon或远离我真正的地方。 - 我猜错了ISP。)

所以有了这些信息,当我使用Firefox测试我的geoLocation时,果然:Hood Oregon。

但正如我所说,当我使用Chrome测试我的geoLocation时:实际上发现了。

到目前为止我还没有提到,但对我的假设至关重要的是,直到这个时候,我一直在使用支持WIFI的笔记本电脑进行测试。

开始测试2:

在笔记本电脑上禁用WIFI,通过以太网电缆将笔记本电脑连接到路由器,然后使用Chrome重复上述geoLocation测试。

结果:Chrome把我放在Firefox所做的地方,远在Hood Oregon。

实证结论:

Chrome会根据可用的WIFI热点计算您的地理位置,而Firefox则不会。

HTML5 GeoLocation API具有“高精度”标志,默认情况下设置为False。也许它就像Chrome将其设置为True一样简单,而FireFox则不是。

后续问题:

如何监听数据流以验证这一点?