HTML5地理位置如何工作?

Chrome和Firefox已经实现了HTML地理位置。

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

DB存储在哪里? 可以访问吗?

Update1:​​地理定位的唯一缺点是浏览器必须要求用户许可,这对可用性来说确实是一件坏事。 我理解安全问题,但是我不明白这将成为一个stream行的解决scheme。

Update2:Firefox正在使用Google WebService来检测位置。 考虑到现在是竞争对手,现在看起来很奇怪。 此外,这种行为真的让我感到意外…我跳了每个浏览器将它的(也许离线)解决scheme。

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

Update4:到底什么信息是浏览器发送到谷歌Web服务? 检测到的SSID似乎没问题(如果谷歌根据自己的物理位置进行跟踪,以便在数据库中查找匹配的信息,这是有道理的),但是在谷歌没有扫描到的国家,它是如何工作的呢? 您的浏览器发送的其他信息是您的IP,但这不足以指出您的确切位置?

关于可能实现这一点的其他浏览器。 他们应该怎么做? api没有logging,只有旧的弃用的GEAR api给出了一些线索。 所以这不是真正公开的。

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

我们希望未来的浏览器能够提供一些位置提供商的select。 我同意,如果浏览器支持不需要向第三方发送WiFi ID列表的地理定位技术,则用户隐私和function是有益的。 我怀疑,由于GPS传感器更经常集成到智能手机和笔记本电脑,我们将看到浏览器,让您使用W3C地理定位API的GPS感测。 对于可以在浏览器设置中手动指定位置的台式计算机,也可能会很好,这也可以与当前的规范兼容。

首先,一个惊人的演示

在Chrome中试试这个 。

怎么运行的

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

从该页面:

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

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

另外,我相信Google定位服务包含一个数据库,这个数据库是由Google Street View vans收集的数据构build的,因为它们与来自路由器的WiFi信号相匹配(或者至less已经习惯了 )。

访问数据库

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

在Firefox中打开一个新标签并inputabout:config的地址。 通过警告消息并键入geo.wifi.uri到filter框中,您现在正在查看Firefox用于确定您的位置的Web服务。

从Firefox的“它是如何工作的” :

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

和“Chrome如何确定您的位置” :

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

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

更新:
火狐
谷歌浏览器