HTML5: Geolocation地理位置

window.navigator.geolocation对象 返回经纬坐标等元数据信息

        console.log( window.navigator.geolocation )

      

返回空对象,对象的原型上有三个方法:

clearWatch() // 停止获取位置
getCurrentPosition() // 获取位置
watchPosition() // 定期自动获取位置

        navigator.geolocation.getCurrentPosition(suc, err)
function suc(position) {
    console.log(position)
}
function err() {
    console.log('err')
}

      

获取位置方法需要三个参数:

参数1: 成功回调:

如果成功得到(从浏览器底层得到,不管什么方法)执行成功回调函数,失败执行失败函数。成功函数中默认有一个position参数,打印一下看看

v2-1ab941a901a27a70539626ae2ceb9485_b.jpg
accuracy:经纬度的精度
altitude:null海拔
altitudeAccuracy:null海拔的精度
heading:null设备前进方向
latitude:34.0653347纬度
longitude:-118.24389099999999经度
speed:null设备前进速度
timestamp: 获取地理位置信息的时间

我们可以根据获取经纬度来判断城市所在的位置。

参数2: 失败回调:

失败的错误信息:

        function err(positionError) {
    console.log(positionError)
}

      

v2-27253267b65df813a57a22b7c7a7fd3d_b.jpg

描述: 用户拒绝位置定位

code属性:
1 用户拒绝了位置服务
2 获取不到位置信息
3 获取信息超时
        var obj = {
    timeout: 1000
}
navigator.geolocation.getCurrentPosition(suc, err, obj)
function suc(position) {
    console.log(position)
}
function err(positionError) {
    console.log(positionError)
}

      

如果1s以后还不能获取到则报3的错误,timeout是固定的写法。

v2-7c8804d06c3bda4ea51717192cd0d134_b.gif

参数3:obj 可选参数

enableHighAccuracy:是否要求高精度的地理位置信息

timeout: 超时限制

maximumAge: 缓存有效时间,若为0则无条件重新获取新地理信息


监事位置信息

var id = navigator.geolocation.watchPosition(suc, err, obj);

// 同样也是三个参数

持续定期的自动获取用户的当前地理位置信息,并同计时器一样有个位置标识。

可以连续获取,利用canvas点连线做成图,做成运动轨迹。


停止获取位置信息

navigator.geolocation.clearWatch(id);



总结: 只是了解了一下,有兴趣可以调用百度地图API, 申请密钥捣鼓捣鼓。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值