Chrome如何知道我的地理位置?

gak*_*gak 23 html5 google-chrome geolocation

Chrome在检测我的位置时似乎非常准确.它是如何做到的?你能指点我的源代码吗?

Mat*_*tin 54

地理位置可以根据以下因素计算:

  1. GPS(如果有的话)
  2. 可用的Wi-Fi网络和信号强度
  3. 可用的蜂窝塔和信号强度
  4. IP地址查找

请参阅W3C Geolocaton APIGoogle Gears API(Chrome的/ W3C Geolocation API所基于的).

可以在线查看Chromium的地理定位源代码.


Tho*_*mas 8

您可以使用设备上提供的不同服务和硬件获取您的位置.最常见的是:GPS,wifi信息,手机信号塔.或者也有IP查找,但这不是很准确,并且不涉及您设备上的任何特殊内容.

在您的情况下,很可能使用有关您的WiFi网络的信息.有大量的数据库将wifi网络连接到一个位置,由带有GPS和Wifi的汽车(例如Google街景汽车)创建.从您的计算机到服务器的传输是根据W3C Geolocation API规范完成的,该规范是HTML5的一部分.

Chrome来源为此? 是一个入门点.或者,如果您更喜欢旧式文件浏览器:http://src.chromium.org/svn/trunk/src/chrome/browser/geolocation/

通过wifi进行本地化的实施文件:

  • wifi_data_provider_mac.cc
  • wifi_data_provider_linux.cc
  • wifi_data_provider_win.cc