html5获取当前用户gps位置、获取用户IP地址并获取ip所在位置

项目需要获取每一个用户的gps位置,如果用户禁止了获取位置权限,则根据用户IP获取用户的位置。
首先说使用HTML5进行GPS定位,使用 Geolocation(地理定位)的getCurrentPosition() 方法来获得用户的位置。getCurrentPosition(successCallback,errorCallback,positionOptions)方法含三个参数。

  • 第一个参数successCallback表示调用getCurrentPosition函数成功以后的回调函数,该函数带有一个参数,对象格式,表示获取到的用户位置数据。该对象包含两个属性 coords 和 timestamp。其中 coords 属性包含以下7个值:

    • accuracy:精确度;
    • latitude:纬度;
    • longitude:经度;
    • altitude:海拔;
    • 海拔高度的精确度;
    • heading:朝向;
    • speed:速度。
  • 第二个参数errorCallback表示调用getCurrentPosition函数失败以后的回调函数,同样带有一个对象格式的参数。message:错误信息和 code:错误代码。其中错误代码包含以下四个值:

    • UNKNOW_ERROR:表示不包括在其它错误代码中的错误,这里可以在 message 中查找错误信息;
    • PERMISSION_DENIED:表示用户拒绝浏览器获取位置信息的请求;
    • POSITION_UNAVALIABLE:表示网络不可用或者连接不到卫星;
    • TIMEOUT:表示获取超时。注:必须在options中指定了timeout值时才有可能发生这种错误;
  • 第三个参数为一个对象,用来设置一些属性
    • enableHighAcuracy【Boolean】: 表示是否启用高精确度模式,启用则浏览器在获取位置信息时可能需要耗费更多的时间;
    • timeout :表示浏览需要在指定的时间内获取位置信息(毫秒);
    • maximumAge :表示浏览器重新获取位置信息的时间间隔(毫秒);

【例】

var getLocation=function () {
   
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(locationSuccess,
                    locationError, {
                        enableHighAcuracy : true,// 指示浏览器获取高精度的位置,默认为false  
                        timeout : 5000,// 指定获取地理位置的超时时间,默认不限时,单位为毫秒  
                        maximumAge : 3000
                    // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。  
                    });
        } else {
            locationByIp();
        }
    },
locationSuccess=function (position) {
   
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值