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

来源:互联网 发布:淘宝网用户名大全 编辑:程序博客网 时间:2024/05/16 09:33

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,通过此值判断用户是否拒绝网站获取浏览器位置信息




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);  if(r.accuracy==null){  alert('accuracy null:'+r.accuracy);  //用户决绝地理位置授权  return;  }  //用户允许地理位置授权  }else {  alert('failed'+this.getStatus());  }          },{enableHighAccuracy: true})





0 0
原创粉丝点击