百度地图,用户拒绝获取地理位置getStatus()还是等于BMAP_STATUS_SUCCESS,拒绝依旧显示地理位置

11 篇文章 0 订阅
3 篇文章 0 订阅

1、(用的浏览器定位)百度地图 JavaScript API中有一个方法是通过浏览器定位,getCurrentPosition。但是用户拒绝或者允许获取地理位置,this.getStatus()都是0;

 

    var myposition;
    var myposition_lng;
    var myposition_lat;
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
            myposition_lat = r.point.lat;
            myposition_lng = r.point.lng;
            alert('accuracy:' + r.accuracy);
            myposition = new BMap.Point(r.point.lng, r.point.lat);
        } else {
            alert('failed' + this.getStatus());
        }
    }, {
        enableHighAccuracy: true
    })


 

2、因为当用户拒绝该网站使用浏览器位置时,百度地图会通过其他方式获取大概位置,所以this.getStatus()都是0

 

3、解决办法:当用户拒绝该网站使用浏览器位置时,此时其精度则为null,通过此值判断用户是否拒绝网站获取浏览器位置信息(通过判断返回的accuracy 是否为null判断)

 

 

4、代码如下:

    var myposition;
    var myposition_lng;
    var myposition_lat;
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
            myposition_lat = r.point.lat;
            myposition_lng = r.point.lng;
            //alert('accuracy:'+r.accuracy);
            myposition = new BMap.Point(r.point.lng, r.point.lat);
            //拒绝获取地理位置:accuracy 为 null ;同意: accuracy 不为 null
            if (r.accuracy == null) { //用户拒绝地理位置授权
                alert('accuracy null:' + r.accuracy);
                return;
            }
        } else {//用户允许地理位置授权
            alert('failed' + this.getStatus());
        }
    }, {
        enableHighAccuracy: true
    })

 

 

 

 

 

转载地址:https://blog.csdn.net/u014520797/article/details/56023658

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值