当我使用http://html5demos.com/geo定位自己时,它在FF和chrome中显示错误的位置(错误的城市)。任何原因发生这种情况
我在Windows上使用Chrome时遇到了同样的问题,但我至少在某些时候让它工作了。
我也在使用http://html5demos.com/geo这个例子
位置不仅不准确,它也在错误的城市。
我在我的iPad(Safari)上尝试了相同的例子,那里的位置是正确的。我的iPad使用的是与我的电脑相同的WiFi网络,所以我知道我的ISP返回错误位置不是问题,这与我的电脑上的浏览器有关。
我通过进入Chrome设置并清除缓存和Cookie来显示Chrome中的正确位置。
仅仅在Chrome中选择“工具/清除浏览数据/ Cookie和缓存”是不够的,只有在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网络(使用View Available Wireless Networks)并且我的是唯一的网络时,地理定位示例返回不同城市的位置,但是如果我的任何邻居都有一个范围内的WiFi网络我的电脑,地理位置示例返回我的确切位置,在几米之内。即浏览器中的地理位置足够聪明,可以使用这些额外信息来定位我。
(我认为这个问题的其他答案完全是在错误的轨道上。提问者说该位置是在错误的城市中显示的,所以问题与位置准确性无关)
不同的设备具有不同的准确度,因此您的应用程序必须意识到这些差异。其内部具有GPS单元的手机通常在三米内准确无误。没有GPS装置的手机,GPS装置关闭以使电池最大化,或者在GPS无法接触GPS卫星的位置将不得不使用手机信号塔三角测量来估计用户位置,并且通常在3000以内准确米的精确度足以知道用户所在的社区,但完全没用告诉他们他们正在看什么建筑物。
如果用户从连接到陆基宽带连接的计算机访问您的站点,它通常可以通过咨询提供商数据库并精确定位DSL或有线电视提供商的确切地址来确定准确的地址。
要获得位置信息的准确性,可以查询coords对象的精度属性。准确性属性无论如何都不准确,但它会使您的应用程序对您是否具有几乎精确的位置或邻域有一个良好的认识。
根据Firefox geolocation FAQ,Firefox使用Google进行位置服务。它向Google发送以下信息:
我认为如果您的计算机安装了接收器,它也将使用GPS数据,但FAQ没有提到。也许是因为如果您有可用的GPS数据,则无需使用Google的服务器。
我认为Chrome作为Google产品使用相同的地理位置数据库。
至于为什么你得到错误的答案,那将存在于谷歌的数据库中。那里肯定有很多错误。例如,我的办公室计算机出现在墨西哥城,即使我的IP地址和我雇主的代理服务器的IP地址都在德克萨斯州的普莱诺,所有其他IP到位置的数据库都是正确的(取自注册的whois)地址数据。)
以下是他们声称会有所帮助的两个Google网页,尽管他们还没有为我做过一件事:
后者(contact / ip)是一种报告Google位置问题的表单,表明Google会将您重定向到错误国家/地区的主页。他们说纠正数据库可能需要一个多月的时间。我已经等了差不多两个月没有运气了。
有一些Firefox附加组件可用于强制您的浏览器报告特定位置。它们用于调试位置感知Web服务,但它们也可以在这种情况下使用,其中普通方法不起作用。
我想如果你可以使用方法watchPosition()
而不是getCurrentPosition()
坐标将更新太多,这将产生更好的结果
注意:最好使用除chrome之外的其他浏览器,它不支持watchPosition()
方法足够好
我取决于使用哪种方法来获取您的位置。如果它使用IP,那么你几乎可以在任何地方出现。如果它使用Wifi,那么它可能只是有偏见的数据。