HTML5 Geolocation
一,位置信息
1,纬度和经度坐标
十进制格式:
DMS格式:39‘10’20‘
2,位置信息从何而来
设备从使用下列数据源
IP地址
三维坐标:GPS,MAC地址,GSM或CDMA手机的ID
3,IP地址地理定位数据
基于IP地址的地理定位的实现方式是,自动查找用户的IP地址,然后检索其注册的物理地址,
如果用户的IP地址是由ISP提供的,其位置由服务供应商的物理地址决定
4,GPS地理定位数据
提供非常准确的定位结果,通过收集运行在地球周围的多个GPS卫星的信号实现的,定位时间较长,室内效果不好
5,Wi-Fi地理定位数据
通过三角距离计算得出,三角距离指用户当前位置到已知的多个Wi-Fi接入点的距离,精确可在室内使用,乡村效果不好
6,手机地理定位数据
通过用户到一些基站的三角距离确定的,通常同基于Wi-Fi和基于GPS的地理定位信息结合使用,精确,室内可使用
7,用户自定义的地理定位数据
二,隐私
1,触发隐私保护机制
在HTML5 Geolocation代码被执行时触发隐私保护机制
2,处理位置信息
如果用户没有授权存储位置信息,那么应用程序应该在任务完成后删除
重传位置信息,要先进行加密
三,使用HTML5 GolocationAPI
1,浏览器支持性检查
function loadDemo(){
if(navigator.geolocation){
document.getElement("support").innerHTML = "Geolocation supported.";
}else{
document.getElement("support").innerHTML = "Geolocation is not supported in your browser."
}
}
2,位置请求
1)单次定位请求
navigator.geolocation.getCurrentPosition(successCallBack,errorCallBack,options)
successCallback是收到实际位置信息并进行处理的信息,errorCallBack是错误处理函数,options可选的地理定位请求特性
a)updateLocation()函数,收到实际位置信息时调用,接收一个参数,位置对象,包含一个coords(位置数据)和timestamp(时间戳)
coords特性包含latitude,longitude,accuracy
b)hangleLocationError()函数,错误处理函数,传人一个error对象,有code特性
特性值,PERMISSION_DENIED(1)用户拒绝获取其位置
POSITION_UNAVAILABLE(2)尝试获取位置但失败
TIMEOUT(3)设置了可选的timeout值,获取过程中超时
c)可选的第三个参数
enableHighAccuracy:通知浏览器启用HTML5 Geolcation服务的高精度模式,默认为false
timeout:等待时间,默认为infinity无穷大
maximumAge:浏览器重新计算位置的时间间隔,ms为单位
2)多次重复性的位置更新请求
navigator.geolocation.watchPosition(updateLocation,handleLocationError)
只要用户位置发生变化就会触发updateLocation处理程序
var watchID = navigator.geolocation.watchPostion(updateLocation,handleLocationError);
navigator.geolocation.clearWatch(watchID);