版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/lyhhj/article/details/49129865
最近在做一地圖定位軟體,下面分享一下自己在做的過程中遇到的問題,希望對大家有幫助:
首先就是要用百度地圖的API需要申請一個Key值,要到百度地圖API中申請:
http://developer.baidu.com/map/index.php?title=android-locsdk然後需要下載下傳百度地圖的SDK:
好多步驟在百度地圖API中都有,具體就不給大家說了:
要注意的問題是:
1.
- SDK4.2及之後版本需要在Mainfest.xml設定Accesskey,設定有誤會引起定位和地理圍欄服務不能正常使用,必須進行Accesskey的正确設定。
- 設定AccessKey,在application标簽中加入
- <meta-data
- android:name="com.baidu.lbsapi.API_KEY"
- android:value="key" /> //key:開發者申請的key
複制代碼
2.
- 定位SDK必須注冊GPS和網絡的使用權限。
- 使用定位SDK請盡量保證網絡連接配接通暢(GPS定位方式不需要連網,但如果需要位址資訊、位置語義化、POI等資訊都需要聯網的)。目前離線功能已經支援擷取上述資訊,但離線定位不是百分百都能定位成功的,增加我們如何保證線上定位成功的措施,以打消使用者對于離線定位的顧慮。
- 我們強烈建議您設定自己的prodName,并保管好,這樣友善我們為您提供更好的定位服務。
- 若需要傳回的定位結果裡包含位址資訊,請保證網絡連接配接。因為GPS是本地擷取的定位位置,在某些情況下有可能不帶位址資訊。
- 定位SDK可以傳回bd09、bd09ll、gcj02三種類型坐标,若需要将定位點的位置通過百度Android地圖 SDK進行地圖展示,請傳回bd09ll,将無偏差的疊加在百度地圖上。
- 有的移動裝置鎖屏後為了省電會自動關閉網絡連接配接,此時網絡定位模式的定位失效。此外,鎖屏後移動裝置若進入cpu休眠,定時定位功能也失效。若您需要實作在cpu休眠狀态仍需定時定位,可以用alarmManager 實作1個cpu可叫醒的timer,定時請求定位。
3.這樣運作的地圖是預設精确度比較大的,我想定位的比較細緻,看了半天的文檔終于被我找到了:
- mBaiduMap = mMapView.getMap();
- MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(14.0f);//zoom越大越精确,一般14、16就可以了
- mBaiduMap.setMapStatus(msu);
好了這樣就完美實作了,接下來的開發過程中會繼續給大家分享的.........