地理位置服务——navigator.geolocation

本文详细介绍了如何使用HTML5的Geolocation API来获取用户的地理位置信息,包括getCurrentPosition、watchPosition和clearWatch方法的使用,以及处理用户授权、错误处理和位置信息的详细内容。同时,提供了示例代码展示如何在网页中实现位置信息的获取和显示。此外,还提到了浏览器支持和安全性问题,强调了在用户许可的前提下进行位置获取的重要性。
    使用navigator.geolocation对象来获取位置信息,geolocation对象包含一系列相关位置操作方法
    需要选择IE9及以上的浏览器
    一般流程:
        1.用户从浏览器打开位置感应应用程序
        2.程序执行,geolocation对象获取位置信息,此时浏览器要求用户授权同意才可以获得信息
        3.浏览器内部通过数据源获取信息
        4.浏览器将获取的信息发送给受信任的外部定位服务,返回位置信息到geolocation应用程序
    操作方法:
        navigator.geolocation包含三个方法:
        获取当前地址信息(请求一次)
        getCurrentPosition(successCallback, errorCallback, positionOptions)
        监视当前地理位置(请求多次)
        watchPosition(successCallback, errorCallback, positionOptions)
        清除监视功能
        clearWatch(watchId)
    
    getCurrentPosition(successCallback, errorCallback, positionOptions)
        successCallback 回调函数接受一个参数:位置对象。这个对象包含坐标(coords属性)和一个获取位置数据时的时间戳
            coords属性:
                coords.latitude  十进制数的纬度
                coords.longitude  十进制数的经度
                coords.accuracy  所提供的以米为单位的经度和纬度估计的精确度
                coords.altitude  海拔,海平面以上以米计
                coords.altitudeAccuracy  所提供的以米为单位的高度估计的精确度
                coords.heading  宿主设备当前移动的角度方向,相对于正北方向顺时针计算
                coords.speed  以米每秒为单位的设备的当前对地速度
            timestamp  响应的日期/时间
        errorCallback 接受错误对象作为参数,包含code属性、message信息
            code属性:
                1. 当属性值为1时,用户不允许地理定位(拒绝授权),“Permission denied”。
                2. 当属性值为2时,无法获取当前位置,“Position unavailable”。
                3. 当属性值为3时,操作超时,“Timeout”
            message属性:属性值是一个字符串,包含了错误信息,这个错误信息在我们开发和调试时非常有用
        positionOptions 是一个可选属性的列表,说明如下:
            enableHighAccuracy : 启用高精确度模式,这个参数通知浏览器启用HTML5
            Geolocation : 服务的高精确度模式,默认值为false
            timeout : 超时限制(单位为毫秒)。如果在该时间内为获取到地理位置信息,则返回错误
            maximumAge : 表示浏览器重新计算位置的时间间隔,单位为ms,默认值为零,这意味着浏览器每次请求都必须重新计算位置
    watchPosition(successCallback, errorCallback, positionOptions)
        使用该方法可以定期获取用户地理位置信息,该方法与getCurrentPosition方法类似,这里调用会返回一个数字,
        该数字与setInterval方法的返回值用法类似,可以被clearWatch方法使用,以停止对当前地理位置信息的监视。
    clearWatch(watchId)
        如果应用程序不需要再接受watchPosition的持续位置更新,则只需要调用clearWatch()函数,watchId是watchPosition函数的返回值

代码实现:
1. 判断浏览器是否支持Geolocation API
2. 调用navigator.geolocation下的方法获取位置信息
3. 对成功或失败设置回调函数
4. 设置回调函数的输出信息

<!DOCTYPE html>
<html lang="en
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值