HTML5地理位置如何工作?


70

Chrome和Firefox已实现HTML Geolocation。

我的问题是:它如何运作?他们是否在本地拥有数据库并从提供者那里获取信息,然后尝试匹配它?

数据库存储在哪里?可以访问吗?

Update1:​​地理位置的唯一缺点是浏览器必须征求用户的许可,这对可用性确实是一件坏事。我了解安全问题,但仍然看不到它将如何成为流行的解决方案。

Update2:Firefox使用Google WebService来检测位置。考虑到他们现在是竞争对手,这似乎很奇怪。同样,这种行为对我来说真的是出乎意料的……我希望每个浏览器都可以使用它(可能是离线)解决方案。

Update3:那么浏览器实际上在嗅探使用您的无线网卡的路由器吗?

更新4:最后,浏览器将向google网络服务发送哪些信息?检测到的SSID似乎还可以(并且,如果google根据其物理位置对它们进行跟踪以在数据库中进行查找以匹配信息),这在谷歌未对其进行扫描的国家/地区来说效果如何?您的浏览器发送的其他信息是您的IP,但这还不足以精确指出您的确切位置吗?

关于可能实现此目的的其他浏览器。他们应该怎么做?没有记录该api,只有旧的已弃用的GEAR api给出了一些线索。因此,这并不是真正的公开。


2
我怀疑基于mozilla.com/en-GB/firefox/geolocation,如果您使用的是台式机,那么它只会使用Google定位服务进行IP位置查询
-Rup

无法回答您的问题,但这是一个很棒的演示(在Chrome中尝试):html5demos.com/geo
Chetan

Answers:


24

就其价值而言,API规范本身与地理位置实现无关。因此,虽然Mozilla Firefox和Google Chrome浏览器都依赖于通过Google的位置服务数据库启用网络的地理位置,但这并不是标准的要求。例如,在某些情况下,iPhone上的Mobile Safari会使用GPS而不是WiFi三角测量或小区站点地理位置,这取决于在给定时刻最准确和可访问的位置服务。

我们希望未来的浏览器会提供一些位置提供者的选择。我同意,如果浏览器支持不需要将WiFi ID列表发送给第三方的地理定位技术,则将对用户隐私和功能产生好处;我怀疑随着GPS传感器越来越多地集成到智能手机和笔记本电脑中,我们将看到允许您将GPS传感用于W3C Geolocation API的浏览器。为台式计算机提供功能可能也不错,该功能可以在浏览器设置中手动指定位置,这也与当前规范兼容。


“为台式计算机提供功能,在浏览器设置中手动指定位置可能也不错” –好主意
Jedi.za 2013年

51

首先,一个很棒的演示

试试在Chrome。

这个怎么运作

是你的答案。点击“ Google Chrome如何确定您的位置”。

从该页面:

如果您允许Google Chrome浏览器与网站共享您的位置,则浏览器会将本地网络信息发送到Google定位服务,以估算您的位置。然后,浏览器可以与请求站点共享您的位置。Google定位服务用于估算您的位置的本地网络信息包括有关可见WiFi接入点的信息,包括其信号强度;有关您本地路由器的信息;您计算机的IP地址。Google定位服务的准确性和适用范围会因位置而异。

Google Chrome浏览器会保存您的位置信息,以便您轻松检索。该信息会定期更新;更新的频率取决于对本地网络信息的更改。

另外,我相信Google定位服务包含一个数据库,该数据库是根据Google街景货车的位置与路由器发出的WiFi信号(或至少曾经使用过)匹配的数据而构建的。

访问数据库

至于数据库(Google定位服务),这个SO问题将帮助您访问它。


6
太疯狂了 我做了测试,它精确地指出了我在哪里-我正在和街上的房子说话。我很想弄清楚我的邻居,但是它将如何找到我所在的房子?疯。
RPM1984

是的,非常疯狂。基本上,它会根据您使用的路由器的广播来找出您所在的房子,而Google已将其标记为位于您房子的位置。
Chetan

真正有价值的东西-也是因为我的公司有一个基于位置的站点,因此进入首页并根据您的位置进行调整非常好。不过,从我看到的只是Google而不是HTML-5的角度来看,这HTML5怎么样?
RPM1984

2
@Chetan这是W3C的官方标准,但是由与HTML5工作组不同的组(地理位置工作组)创建。从技术上讲,它不是HTML5标准的一部分,而是一个单独的开放标准。
npdoty

1
有趣。Firefox认为我在市区,但Chromium却将点点滴滴打入了我的房屋。从这篇文章中,我了解到它使用的wifi网络数据是从使用Android手机的人那里收集的,而不再是从街车上收集的。有趣。
2012年

11

在Firefox中,打开一个新标签,然后输入地址about:config。跳过警告消息并输入geo.wifi.uri过滤器框,现在您正在查看Firefox用于确定您的位置的Web服务。


8

Firefox的“工作原理”中

当您访问位置感知网站时,Firefox会询问您是否要共享位置。
如果您同意,Firefox会收集有关附近无线访问点和您计算机的IP地址的信息。然后,Firefox将此信息发送到默认的地理位置服务提供商Google定位服务,以获取您的位置估计。然后将该位置估算值与发出请求的网站共享。
如果您不同意,Firefox将不做任何事情。

并从“ Chrome如何确定您的位置”中

如果您允许Google Chrome浏览器与网站共享您的位置,则浏览器会将本地网络信息发送到Google定位服务,以估算您的位置。然后,浏览器可以与请求站点共享您的位置。在与网站共享您的位置之前,您应该查看网站的隐私政策。


3

我对update4中的最后一个问题的猜测是,据推测,它们会根据您使用的设备不时更新您的位置。例如,如果您仅使用PC来访问网络,并且附近没有已知的wifi网络,则您的位置将由IP地址确定,但是有关网络的信息将被收集,稍后说您将iPhone或任何其他设备与GPS到您的同一个wifi网络,并在上面使用GPS,Google会将这些GPS坐标与您的wifi SSID或IP地址进行匹配。因此,此后,每当您在PC上的浏览器发送地理定位请求时,它都会检查IP和SSID是否匹配(也许还有很多其他东西,例如附近的SSID等),如果匹配,它将返回先前由配备GPS的设备确定的位置。

更新:
       Firefox
       Google Chrome

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.