当我使用http://html5demos.com/geo定位自己时,它会在FF和Chrome中显示错误的位置(错误的城市)。发生这种情况的任何原因
答案 0 :(得分:7)
我在Windows上使用Chrome时遇到了同样的问题,但至少在某些时候我才开始工作。
我也在使用示例http://html5demos.com/geo
位置不仅不准确,而且还在错误的城市。
我在我的iPad(Safari)上尝试了相同的例子,那里的位置是正确的。我的iPad使用的是与我的电脑相同的WiFi网络,所以我知道我的ISP返回错误的位置不是问题,这与我的电脑上的浏览器有关。
我通过进入Chrome设置并清除缓存和Cookie来显示Chrome中的正确位置。
仅仅在Chrome浏览器中选择"工具/清除浏览数据/ Cookie&高速缓存&#34 ;, 只有在Chrome浏览器中我选择了"设置/隐私/内容设置/所有Cookie和网站数据"并删除所有cookie,示例显示正确的位置。
更新1:第二天我尝试了相同的地理位置示例,令我烦恼的是,它再次显示错误的城市。我试图通过清除Chrome设置来实现它,如上所述,这次解决方案无法正常工作。但是,当我使用应用程序CCleaner并选择Cleaner / Applications并清除所有Chrome数据(互联网缓存,互联网历史记录,Cookie和会话)时,geo示例显示了正确的位置。我使用的是最新版本的Chrome。希望在未来的版本中它能更加稳定地工作。
更新2:我在以后尝试了上述程序,但根本无法生成正确的位置。可能是地理位置现在使用我的IP和Google位置服务返回我的互联网服务提供商的位置,而不是我的位置。当然这个位置相当无用。我的iPad返回正确位置的原因可能是因为它包含内置GPS。 iPad 3G / 4G在GSM接收器芯片中内置了GPS芯片,而仅WiFi型号没有GPS。当'定位服务'在iPad设置中关闭,通过GPS和IP关闭位置。能够在我的iPad上关闭GPS并仅使用IP位置会很有用,但我不确定这是否可行。
更新3.正如我所提到的,我在我的电脑上使用WiFi棒。我注意到当我查看可用的WiFi网络(查看可用的无线网络)并且我的是唯一的网络时,地理位置示例返回不同城市的位置,但是如果我的任何邻居都有一个范围内的WiFi网络我的电脑,地理位置示例返回我的确切位置,在几米之内。即浏览器中的地理位置足够聪明,可以使用这些额外信息来定位我。
(我认为这个问题的其他答案完全是在错误的轨道上。提问者说该位置是在错误的城市中显示的,所以问题与位置准确性无关)
答案 1 :(得分:3)
不同的设备具有不同的准确度,因此您的应用程序必须意识到这些差异。其内部具有GPS单元的手机通常在三米内准确无误。没有GPS装置的手机,GPS装置关闭以使电池最大化,或者在GPS无法接触GPS卫星的位置将不得不使用手机信号塔三角测量来估计用户位置,并且通常在3000以内准确米是准确的,足以知道用户所在的社区,但完全没用告诉他们他们正在看什么建筑物。
如果用户从连接到陆基宽带连接的计算机访问您的站点,它通常可以通过咨询提供商数据库并精确定位DSL或有线电视提供商的确切地址来确定准确的地址。
要获得位置信息的准确性,可以查询coords对象的精度属性。精确属性无论如何都不准确,但它会让你的应用程序很清楚你是否有一个几乎精确的位置或邻域。
答案 2 :(得分:2)
根据Firefox geolocation FAQ,Firefox使用Google进行位置服务。它向Google发送以下信息:
我认为如果您的计算机安装了接收器,它也会使用GPS数据,但FAQ没有提到。也许是因为如果您有可用的GPS数据,则无需使用Google的服务器。
我认为Chrome作为Google产品使用相同的地理位置数据库。
至于为什么你得到错误的答案,那将存在于谷歌的数据库中。那里肯定有很多错误。例如,我的办公室计算机出现在墨西哥城,即使我的IP地址和我雇主的代理服务器的IP地址都在德克萨斯州普莱诺,所有其他IP到位置数据库都有这个正确(取自注册的whois)地址数据。)
以下是他们声称会帮助的两个Google网页,尽管他们还没有为我做过任何事情:
后者(contact / ip)是一种报告Google位置问题的表单,表明Google会将您重定向到错误国家/地区的主页。他们说纠正数据库可能需要一个多月的时间。我已经等了近两个月没有运气了。
有一些Firefox附加组件可用于强制您的浏览器报告特定位置。它们用于调试位置感知Web服务,但也可以在这种情况下使用,其中常规方法不起作用。
答案 3 :(得分:0)
我认为如果您可以使用方法watchPosition()
代替getCurrentPosition()
,则坐标会更新太多,从而产生更好的结果
注意:最好使用Chrome以外的其他浏览器,它不支持watchPosition()
方法足够好
答案 4 :(得分:0)
我知道了。每部手机的位置模式默认为高精度。 高精度使用GPS,Wi-Fi,蓝牙或移动网络来确定位置。
这可能是一个挑战,因为获取设备位置的变量很多。
解决方案是将位置模式从高精度更改为仅设备或仅GPS 。
仅设备或仅GPS 应该仅使用GPS和设备传感器来确定位置。我已经尝试过了,它就像一种魅力。
使用下面的链接更改位置模式 https://www.verizon.com/support/knowledge-base-106080/
答案 5 :(得分:-2)
我取决于使用哪种方法来获取您的位置。如果它使用IP,那么你几乎可以在任何地方出现。如果它使用Wifi,那么它可能只是有偏见的数据。