Chrome似乎非常准确地检测了我的位置。 它是如何做到的? 你能给我指出源代码吗?
Chrome似乎非常准确地检测了我的位置。 它是如何做到的? 你能给我指出源代码吗?
根据以下方式可以计算地理位置:
请参阅W3C Geolocation API和Google Gears API(Chrome / W3C Geolocation API 基于此)。
Chromium的地理位置源代码可在线查看。
您可以使用设备上可用的不同服务和硬件来获取您的位置信息。最常见的是:GPS、wifi信息、蜂窝塔。另外还有IP查找,但这并不精确,也不涉及设备上的任何特殊事项。
在您的情况下,最有可能使用的是关于您的wifi网络的信息。存在着将wifi网络与位置相连接的巨大数据库,这些数据库是由具有GPS和wifi的汽车(例如Google Street View汽车)创建的。从您的计算机到服务器的传输根据W3C地理位置API规范进行,这是HTML5的一部分。
Chrome源代码? 在这里是一个起点。或者,如果您喜欢老式的文件浏览器:http://src.chromium.org/svn/trunk/src/chrome/browser/geolocation/
通过wifi进行本地化的实现文件:
PC上的浏览器没有GPS,但它有一个外部IP地址(通常是路由器的外部IP地址)。如果同一路由器后面的其他组件有GPS,则将位置固定到该IP地址,并通过位置服务将此位置附加到浏览器。
我认为他们使用您的IP地址以及像地理位置服务这样的http://www.ip2location.com/ 或者(更可能的是)他们自己的地理位置数据库/服务
最近我在做HTML 5地理位置分配的任务。它在所有现代浏览器(IE9,Safari,FF,Opera)中都得到支持。
但是当我使用Chrome时,它不被支持。我花了几个小时来解决这个问题。
最后我找到了一个解决方案:
Chrome中的地理位置默认是关闭的。要激活它,用户必须转到他们的Chrome快捷方式,在“快捷方式”选项卡下,在目标行的末尾添加--enable-geolocation
。