Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 如何調用百度地圖API實現手機自動定位

如何調用百度地圖API實現手機自動定位

編輯:關於Android編程

最近由於項目需要,研究了下百度地圖定位,他們提供的實例基本都是用監聽器實現自動定位的。我想實現一種效果:當用戶進入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>

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved