2012-03-08 70 views
1

我正在尝试HTML5中的地理位置功能。我试过这个例子:html5demos.com并且在Ubuntu下使用Firefox 10.0.2打开它时,我在一个城市中找到了我,我不是。使用Chrome浏览器可以正确定位我。即使我一个月前在那个城市,我所在的城市距离我所在的城市相当远。Chrome和Firefox中的HTML5地理位置不同

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

+0

试试这个问题http://stackoverflow.com/questions/4213410/how-does-html5-geolocation-work – 2012-03-08 23:25:31

回答

4

我验证了同样的效果。铬钉我的方式太靠近了...可怕的关闭。而火狐则错过了大约500英里的路程和整个州。

那么是什么原因?

当您深入研究HTML5地理位置文档时,您会发现该API根据定义对geoLocation服务的来源不可知。

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

因此,以此为背景,我形成了一个假设,即Chrome使用的是WIFI热点,但Firefox又回落到了GeoIP。 (很多网站会很容易地给你一个GeoIP ......并且果然,我的GeoIP出现在Hood Oregon或远离我的位置 - 我想这应该归咎于ISP。)

所以这个当我使用Firefox测试我的地理位置时,我确信:Hood Oregon。但是正如我所说的,当我使用Chrome测试我的地理位置时:实际上发现了。

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

在测试2:

禁用WIFI在笔记本电脑,笔记本电脑连接到经由所述以太网电缆的路由器,以及使用铬重复上述测试的地理定位。

结果:Chrome将我放在Firefox所在的位置,远在俄勒冈州胡德。

实证结论:

Chrome的计算使用WIFI热点,如果你提供地理定位,而Firefox没有。

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

后续问题:

一个如何能窃取数据流来验证这一点?

+0

我刚刚启用了“enableHighAccuracy”标志,而且Chrome和Firefox之间的差距仍然有850米左右。打开或关闭标志没有区别。 – kiwicomb123 2017-07-07 16:42:49