h5地理位置对象navigator.geolocation

地理位置对象能够用于基于地图的应用,通常手机的位置信息是经过GPS或者基站来获取,而pc则是经过IP地址来获取,准确度没有移动设备高。git

地理位置对象navigator.geolocation下有有两个方法,分别是getCurrentPosition()单次定位请求和watchPosition()屡次定位请求。json

1.navigator.geolocation.getCurrentPosition(function(),function(),{});浏览器

三个参数依次为请求成功的回调,失败的回调,数据收集方式(一个json形式的配置),以下:缓存

timer = navigator.geolocation.getCurrentPosition(function(position){
            
         '经度:' + position.coords.longitude+'\n';
         '纬度 :' + position.coords.latitude+'\n';
         '准确度 :' + position.coords.accuracy+'\n';
         '海拔 :' + position.coords.altitude+'\n';
         '海拔准确度 :' + position.coords.altitudeAcuracy+'\n';
         '行进方向 :' + position.coords.heading+'\n';
         '地面速度 :' + position.coords.speed+'\n';
         '时间戳:' + new Date(position.timestamp)+'\n';                            
        },function(err){
            
            //err.code // 失败所对应的编号
            
            navigator.geolocation.clearWatch(timer);
            
        },{
            enableHighAcuracy : true,
            timeout : 5000,
            maximumAge : 5000,
            frequency : 1000
        });

如上所示:函数

请求成功的函数,接受一个参数,该参数下有一下属性:spa

经度 : coords.longitudecode

纬度 : coords.latitude对象

准确度 : coords.accuracyblog

海拔 : coords.altitudeget

海拔准确度 : coords.altitudeAcuracy

行进方向 : coords.heading

地面速度 : coords.speed

时间戳 : new Date(position.timestamp)

不过其中有些属性只有在移动设备才会存在。

 

2.、屡次定位请求watchPosition()

用法和getCurrentPosition同样,不过仅仅只有移动设备,位置改动才会触发。

 

请求失败的时候,err.code是错误编号,分别表示不一样的错误,以下:

code 0 : 不包括其余错误编号中的错误

1 : 用户拒绝浏览器获取位置信息

2 : 尝试获取用户信息,但失败了

3 : 设置了timeout值,获取位置超时了

 

数据收集方式:

enableHighAcuracy : 更精确的查找,默认false

timeout : 获取位置容许最长时间,默认infinity

maximumAge : 位置能够缓存的最大时间,默认0

frequency :更新的频率

这两个方法的使用相似于定时器,因此也有一个方法clearWatch()用于关闭更新请求。

相关文章
相关标签/搜索