簡體   English   中英

Here-api離線地圖安裝

[英]Here-api offline maps installation

在MapEngine初始化中,我想安裝所有軟件包,但我被困在這里installMapPackages(List packageIdList),從哪里可以找到List packageIdList。

您應該使用MapLoader#getMapPackages() API檢索根MapPackage對象。 然后,您可以使用MapPackage#getId()方法來查找要安裝的國家/地區的ID。 請注意,不是直接從MapLoader#getMapPackages()調用返回MapPackage對象,而是通過偵聽器對象返回。 您必須提供自己的MapLoader.Listener實現,並在調用getMapPackages()之前通過MapLoader#addListener(MapLoader.Listener listener)方法進行getMapPackages()

例如:

MapLoader.Listener mapLoaderListener = new MapLoader.Listener() {
  public void onUninstallMapPackagesComplete(MapPackage rootMapPackage,
     MapLoader.ResultCode mapLoaderResultCode) {
  }
  public void onProgress(int progressPercentage) {
  }
  public void onPerformMapDataUpdateComplete(MapPackage rootMapPackage,
     MapLoader.ResultCode mapLoaderResultCode) {
  }
  public void onInstallationSize(long diskSize, long networkSize) {
  }
  public void onInstallMapPackagesComplete(MapPackage rootMapPackage,
      MapLoader.ResultCode mapLoaderResultCode) {
  }
  public void onGetMapPackagesComplete(MapPackage rootMapPackage,
      MapLoader.ResultCode mapLoaderResultCode) {

      // This method will be called after MapLoader#getMapPackages()
      // is called
      // You can use the rootMapPackage object to find the Id's to
      // pass to installMapPackages()

  }
  public void onCheckForUpdateComplete(boolean updateAvailable,
    String currentMapVersion,String newestMapVersion,
          MapLoader.ResultCode mapLoaderResultCode) {
  }
};

MapLoader mapLoader = MapLoader.getInstance();

mapLoader.addListener(mapLoaderListener);
mapLoader.getMapPackages();

此處有更多詳細信息:

  • 開發人員指南

https://developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics/maps-offline.html

  • API參考

https://developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics_api_nlp_hybrid_plus/com-here-android-mpa-odml-maploader.html

https://developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics_api_nlp_hybrid_plus/com-here-android-mpa-odml-maploader-listener.html

https://developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics_api_nlp_hybrid_plus/com-here-android-mpa-odml-mappackage.html

您應該能夠使用getMapPackages()方法獲取列表。 文檔鏈接: https : //developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics/maps-offline.html

我認為,唯一的方法是在MapPackage上遞歸調用getChildren(),然后檢查每個子程序包的getTitle()以找到所需的區域。

例如,要獲取法國“不列塔尼”地區的ID,您需要通過rootMapPackage.getChildren()。get(2 / 歐洲 /).getChildren().get(1/ 法國 /)。getChildren() .get(3 /不列塔尼 /)。getId()

不太方便。 根包上的方法“ search(String title)”將很方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM