Android版百度地圖SDK離線包導入相關

 

 

1.離線地圖簡介

百度地圖SDK自2.0.0版本起,采用的是矢量版離線地圖,請開發者在下載時註意選擇。 使用離線地圖,請下載。

2.初始化

 

在使用offline map之前需先創建MapView。MapView的創建詳見Hello World部分的相關介紹。

初始化離線地圖的核心代碼如下:

源碼復制打印關於

  1. MKOfflineMap mOffline = null; //申明變量
  2. MapController mMapController = mMapView.getController();
  3.  
  4.  
  5. //寫在onCreate函數裡
  6. mOffline = new MKOfflineMap();
  7. //offline 實始化方法用更改。
  8. mOffline.init(mMapController, new MKOfflineMapListener() {
  9. @Override
  10. public void onGetOfflineMapState(int type, int state) {
  11. switch (type) {
  12. case MKOfflineMap.TYPE_DOWNLOAD_UPDATE:
  13. {
  14. MKOLUpdateElement update = mOffline.getUpdateInfo(state);
  15. //mText.setText(String.format(%s : %d%%, update.cityName, update.ratio));
  16. }
  17. break;
  18. case MKOfflineMap.TYPE_NEW_OFFLINE:
  19. Log.d(OfflineDemo, String.format(add offlinemap num:%d, state));
  20. break;
  21. case MKOfflineMap.TYPE_VER_UPDATE:
  22. Log.d(OfflineDemo, String.format(new offlinemap ver));
  23. break;
  24. }
  25. }
  26. }
  27. );

    3.導入離線包

    SDK支持導入離線包,將從官方渠道下載的離線包解壓後,把其中的vmp文件夾拷入SD卡根目錄下的BaiduMapSdk文件夾內。 使用離線地圖,請下載。

     

    源碼復制打印關於

    1. int num = mOffline.scan();
    2. //if (num != 0)
    3. //mText.setText(String.format(已安裝%d個離線包, num));

      如果你按照上述方法導入成功瞭,那麼恭喜你,你不用再往下看瞭。否則請繼續往下看,

      如果你的Android手機有內置存儲又有掛載的SD卡,那麼很可能你遇到瞭和我一樣的問題。之前我把下載下來的離線地圖包放置在手機的SD卡上,目錄結構為:/mnt/sdcard/BaiduMapSdk/vmp/,此時根本無法導入,因為百度地圖SDK根本無法查找到。後來我把BaiduMapSdk這個文件夾復制到手機的內置存儲的根目錄下,再重新執行立馬成功瞭。

       

      後來我又下載瞭百度地圖Android版手機應用(apk版),發現該應用的離線地圖包目錄是BaiduMap(不知道為什麼在使用SDK時離線地圖的緩存目錄是BaiduMapSdk而此處是BaiduMap,如果搞統一是不是會更方便呢?),而且在導入離線地圖包時可以選擇存儲位置(是手機內置存儲還是SD卡),而在使用百度地圖sdk時並沒有指定離線地圖包位置的相應接口,所以就導致瞭使用離線地圖包時的上述問題。

發佈留言