天天看點

Android 輕松實作百度地圖定位

版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/lyhhj/article/details/49129865

最近在做一地圖定位軟體,下面分享一下自己在做的過程中遇到的問題,希望對大家有幫助:

首先就是要用百度地圖的API需要申請一個Key值,要到百度地圖API中申請:

http://developer.baidu.com/map/index.php?title=android-locsdk

然後需要下載下傳百度地圖的SDK:

好多步驟在百度地圖API中都有,具體就不給大家說了:

要注意的問題是:

1.

  1. SDK4.2及之後版本需要在Mainfest.xml設定Accesskey,設定有誤會引起定位和地理圍欄服務不能正常使用,必須進行Accesskey的正确設定。 
  2. 設定AccessKey,在application标簽中加入 
  3. <meta-data
  4.             android:name="com.baidu.lbsapi.API_KEY"
  5.             android:value="key" />       //key:開發者申請的key

複制代碼

2.

  1. 定位SDK必須注冊GPS和網絡的使用權限。 
  2. 使用定位SDK請盡量保證網絡連接配接通暢(GPS定位方式不需要連網,但如果需要位址資訊、位置語義化、POI等資訊都需要聯網的)。目前離線功能已經支援擷取上述資訊,但離線定位不是百分百都能定位成功的,增加我們如何保證線上定位成功的措施,以打消使用者對于離線定位的顧慮。 
  3. 我們強烈建議您設定自己的prodName,并保管好,這樣友善我們為您提供更好的定位服務。 
  4. 若需要傳回的定位結果裡包含位址資訊,請保證網絡連接配接。因為GPS是本地擷取的定位位置,在某些情況下有可能不帶位址資訊。 
  5. 定位SDK可以傳回bd09、bd09ll、gcj02三種類型坐标,若需要将定位點的位置通過百度Android地圖 SDK進行地圖展示,請傳回bd09ll,将無偏差的疊加在百度地圖上。 
  6. 有的移動裝置鎖屏後為了省電會自動關閉網絡連接配接,此時網絡定位模式的定位失效。此外,鎖屏後移動裝置若進入cpu休眠,定時定位功能也失效。若您需要實作在cpu休眠狀态仍需定時定位,可以用alarmManager 實作1個cpu可叫醒的timer,定時請求定位。

3.這樣運作的地圖是預設精确度比較大的,我想定位的比較細緻,看了半天的文檔終于被我找到了:

  1. mBaiduMap = mMapView.getMap();
  2.         MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(14.0f);//zoom越大越精确,一般14、16就可以了
  3.         mBaiduMap.setMapStatus(msu);

好了這樣就完美實作了,接下來的開發過程中會繼續給大家分享的.........

繼續閱讀