如何调用百度地图API实现手机自动定位
最近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的。我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置。经过2天研究和咨询,找到了解决方案,在此备忘一下。
//声明地址解析器 vargeoc=newBMap.Geocoder(); //自动定位 varautoLocation=function(){ if(navigator.geolocation){//判断浏览器是否能获取当前位置 navigator.geolocation.getCurrentPosition(AddrSuc,AddrFail); } else{ simpleNoty("无法自动定位,请输入您的用餐地址"); } } //获取当前坐标成功 functionAddrSuc(param){ varlng=param.coords.longitude; varlat=param.coords.latitude; varpoint=newBMap.Point(lng,lat); //将gps坐标转换为百度地址坐标 BMap.Convertor.translate(point,0,translateCallback); } //获取坐标失败 functionAddrFail(err){ showNotify("自动定位失败"); } //坐标转换 functiontranslateCallback(point){ geoc.getLocation(point,function(rs){ varaddComp=rs.addressComponents;//查询得到的地址对象组件 //addComp.streetNumber:街道门牌号 //addComp.city:城市 //addComp.district:区 //addComp.street:街道 //addComp.province:省 varaddress=addComp.city+addComp.district+addComp.street; varlng_t=point.lng;//经度 varlat_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>