HTML5地理定位如何运作?

时间:2010-11-18 09:40:15

标签: browser html5 geolocation

Chrome和Firefox已实施HTML地理定位。

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

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

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

Update2:Firefox正在使用Google WebService来检测位置。现在,考虑到他们现在是竞争对手,这似乎很奇怪此外,这种行为对我来说真的很意外......我跳过每个浏览器都会启用(可能是离线)解决方案。

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

Update4:最后,浏览器发送到谷歌网络服务的信息是什么?检测到的SSID似乎没问题(如果谷歌根据他们的物理位置对他们进行跟踪以便在数据库中查找匹配信息,这是有道理的)但是在google没有扫描这个的国家,它如何运作得如此之好?您的浏览器发送的其他信息是您的IP,但这还不足以确定您的确切位置吗?

关于可能实现此目的的其他浏览器。他们应该怎么做? api没有记录,只有旧的弃用的GEAR api提供了一些线索。所以这不是公开的。

6 个答案:

答案 0 :(得分:48)

首先,一个惊人的演示

在Chrome中尝试this

如何运作

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

从该页面开始:

  

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

     

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

此外,我认为Google位置服务包含一个数据库,该数据库是根据Google街景货车收集的数据构建的,因为它们与来自路由器的WiFi信号(或至少used to)匹配位置。

访问数据库

对于数据库(Google位置服务),this SO问题可以帮助您访问它。

答案 1 :(得分:20)

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

我们希望未来的浏览器能够提供一些位置提供商的选择。我同意,如果浏览器支持不需要向第三方发送WiFi ID列表的地理定位技术,那么对用户隐私和功能会有好处;我怀疑由于GPS传感器更多地集成到智能手机和笔记本电脑中,我们会看到允许您使用GPS传感的浏览器用于W3C Geolocation API。为桌面计算机提供一个功能可能也很好,可以在浏览器设置中手动指定位置,这也可以与当前规范兼容。

答案 2 :(得分:11)

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

答案 3 :(得分:8)

来自Firefox's "How does it work"

  

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

"How Chrome determines your location"

  

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

答案 4 :(得分:3)

我对update4中的最后一个问题的猜测是,据说他们会根据您使用的设备不时更新您的位置。例如,如果您仅使用您的PC访问网络,并且附近没有已知的无线网络,那么您的位置将由IP地址决定,但是有关您的网络的信息将被收集,稍后您将连接iPhone或任何其他设备GPS到你的同一个wifi网络,并使用GPS,谷歌将匹配那些GPS坐标到你的无线SSID或IP地址。因此,在此之后,当PC上的浏览器发送地理定位请求时,它将检查IP和SSID是否匹配(也可能是其他一些东西,如邻居中的SSID等),如果它们匹配,它将返回之前由配备GPS的设备确定的位置。这只是一个猜测当然,但它可能是这样..即使你从未将任何配备GPS的设备连接到你的网络,但它仍然准确地确定它,这可能是因为附近的无线网络,已经被谷歌知道..这是他们做的很棒的工作,肯定:)

更新:
  Firefox
  Google Chrome

答案 5 :(得分:0)

HTML5地理位置是应用程序编程界面,用于获取用户的地理位置。它将通过地图或坐标定位客户位置 HTML5 Geolocation API用于获取用户的地理位置。不幸的是,由于这会损害用户的隐私,因此除非用户批准,否则该职位将不可用。 W3C开发了一组API,以有效地允许用户或客户端设备使用JavaScript检索地理位置信息。

地理位置定位在与客户互动并提供视觉指示时非常有用。您可以使用它向客户显示位置并将其显示在您的网站上。

了解更多click-here