首页 > 系统 > Android > 正文

如何调用百度地图API实现手机自动定位

2020-04-11 11:26:47
字体:
来源:转载
供稿:网友

最近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的。我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置。经过2天研究和咨询,找到了解决方案,在此备忘一下。

//声明地址解析器var geoc = new BMap.Geocoder(); //自动定位var autoLocation = function () {  if (navigator.geolocation) { //判断浏览器是否能获取当前位置    navigator.geolocation.getCurrentPosition(AddrSuc, AddrFail);  }  else {    simpleNoty("无法自动定位,请输入您的用餐地址");  }} //获取当前坐标成功function AddrSuc(param) {  var lng = param.coords.longitude;  var lat = param.coords.latitude;  var point = new BMap.Point(lng, lat);  //将gps坐标转换为百度地址坐标  BMap.Convertor.translate(point, 0, translateCallback);} //获取坐标失败function AddrFail(err) {  showNotify("自动定位失败");} //坐标转换function translateCallback(point) {     geoc.getLocation(point, function (rs) {    var addComp = rs.addressComponents; //查询得到的地址对象组件    //addComp.streetNumber:街道门牌号    //addComp.city:城市    //addComp.district:区    //addComp.street:街道    //addComp.province:省    var address = addComp.city + addComp.district + addComp.street;    var lng_t = point.lng; //经度    var lat_t = point.lat;  //纬度      $(".locationTxt").text("当前位置:" + address);  })}

对象示例:

rs 对象 :{point: H, address: "北京市朝阳区广顺北大街", addressComponents: Object, surroundingPois: Array[0], business: "望京,来广营,花家地"}
addressComponents 对象 :{streetNumber: "", street: "广顺北大街", district: "朝阳区", city: "北京市", province: "北京市"}

调用:

$(function(){  aotuLocation();});<br><br>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表