HTML5 中 Geolocation 获取地理位置的原理是什么?
时间:2012-9-13 作者:smarteng 分类: 编程
具体的 API 是 Navigator.geolocation.getCurrentPosition。这个的原理是什么,为什么走了代理还能知道我在北京?用的是 Chrome 卓面版,没走 Wifi,是插的网线。
薛天禄
Geolocation API 的数据来源可能是 GPS、IP 地址、RFID、WiFi、蓝牙 MAC 地址、GSM/CDMA 卡 ID 等。
因为 Geolocation API 是运行在你本地设备上的。所以,在使用 VPN 或代理的情况下,Geo API 仍能获得你准确的 IP 地址信息(除非因为某些因素浏览器获取不到这些信息)。
刚刚测试了下,在使用美国 VPN 的情况下,Safari 仍能获取我准确的地理位置信息。
下面是 W3C 文档的描述:
The Geolocation API defines a high-level interface to location information associated only with the device hosting the implementation, such as latitude and longitude. The API itself is agnostic of the underlying location information sources. Common sources of location information include Global Positioning System (GPS) and location inferred from network signals such as IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs, as well as user input. No guarantee is given that the API returns the device's actual location.
张宁
这个API里面有一个参数告诉浏览器是否启用高精度设备,所谓的高精度设备包含但不局限于前面所提到的 GPS 和 WIFI,值为 true 的时候,浏览器会尝试启用这些设备,默认指为 true,在这种情况下,浏览器会尽可能地进行更为精确的查询,简单地说,如果用户有可用的 GPS 设备,会返回 GPS 设备的查询结果,IP 是最后的选择,对于移动设备来说,网络接入点(基站)或许成为另一个选择。以大多数人的情况,桌面版的Chrome一般是调用了Wifi数据来定位。
smarteng
人生就流星,虽然转瞬即逝,但也有永恒。
- 使用Erlang的OTP框架创建应用
- php 使用curl模拟登录discuz以及模拟发帖
- 腾讯QQ、阿里旺旺、淘宝、MSN在线状态代码生成
- 新浪微博错误代码解析
- erlang程序设计笔记
- 《HTML 5与CSS 3权威指南》权威的HTML5与CSS3实战教程
- dedecms修改数据库密码配置文件
- 服务器优化小记--Etag和Expires
- 在PHP5中使用PHPMailer发送邮件
- PHP中冒号、endif、endwhile、endfor介绍
- PHP框架——ThinkPHP
- QQ登陆成功返回openId后与网站绑定
- Mediawiki的配置和修改方法
- 使用Golang的官方mock工具--gomock、mockgen
- 用yaf-codes-generator 生成代码
- MacOs 电脑关闭/打开IPV6
- MySQL中datetime和timestamp的区别
- C++声明结构
- 如何保证数据库和缓存的一致性
- 优雅的golang日期时间处理库go-carbon
- API接口纪要
- 解析 Golang 测试(11)- 模糊测试
- 解析 Golang 测试(10)- 什么是好的单测
- 解析 Golang 测试(9)- 一篇文章搞懂 testify
- 解析 Golang 测试(8)- gomonkey 实战
- 解析 Golang 测试(7)- 如何针对 Redis 进行 Fake 测试
- 解析 Golang 测试(6)- 如何针对 MySQL 进行 Fake 测试
- 解析 Golang 测试(5)- MySQL 经典 mock driver—— sqlmock
- 解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake
- 解析 Golang 测试(3)- goconvey 实战
- 2023年11月(1)
- 2023年10月(1)
- 2023年3月(2)
- 2023年2月(1)
- 2022年12月(1)
- 2022年9月(13)
- 2022年8月(5)
- 2022年7月(9)
- 2022年6月(2)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(2)
- 2021年12月(1)
- 2021年11月(14)
- 2021年10月(2)
- 2021年9月(111)
- 2015年3月(1)
- 2014年5月(4)
- 2014年4月(18)
- 2014年1月(1)
- 2013年11月(2)
- 2013年7月(1)
- 2013年6月(1)
- 2013年3月(13)
- 2013年2月(3)
- 2013年1月(1)
- 2012年12月(8)
- 2012年11月(8)
- 2012年10月(1)
- 2012年9月(13)
- 2012年8月(4)
- 2012年6月(2)
- 2012年5月(10)
- 2012年4月(13)
- 2012年3月(9)
- 2012年2月(8)
- 2011年11月(1)
- 2011年8月(9)
- 2011年7月(8)
- 2011年6月(8)
- 2011年5月(7)
- 2011年4月(19)
- 2011年3月(15)
- 2011年2月(8)
- 2011年1月(9)
- 2010年12月(2)
- 2010年11月(2)
- 2010年10月(2)
- 2010年9月(8)
- 2010年8月(9)
- 2010年7月(1)
- 2010年6月(9)
- 2010年5月(5)
- 2010年1月(7)
- 2009年12月(21)
- 2009年11月(29)
- 2009年10月(100)
- 2009年8月(1)
- 2009年7月(15)
- 2009年6月(52)