首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这里-api离线地图安装

这里-api离线地图安装
EN

Stack Overflow用户
提问于 2016-02-08 13:48:16
回答 2查看 1.3K关注 0票数 2

在MapEngine初始化中,我想安装所有的软件包,但是我被困在这里,installMapPackages(列表packageIdList)从哪里可以找到List packageIdList。

EN

回答 2

Stack Overflow用户

发布于 2016-02-11 07:58:18

您应该使用MapLoader#getMapPackages() API检索根MapPackage对象。然后,您可以使用MapPackage#getId()方法查找要安装的国家/地区的Id。注意,MapPackage对象不是直接从MapLoader#getMapPackages()调用返回的,而是通过侦听器对象返回的。您必须提供自己的MapLoader.Listener实现,并在调用getMapPackages()之前通过MapLoader#addListener(MapLoader.Listener listener)方法对其进行设置。

例如:

代码语言:javascript
复制
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参考

plus/com-here-android-mpa-odml-maploader.html

plus/com-here-android-mpa-odml-maploader-listener.html

plus/com-here-android-mpa-odml-mappackage.html

票数 2
EN

Stack Overflow用户

发布于 2016-06-13 10:12:20

惟一的方法(我认为)是在MapPackage上递归调用MapPackage(),然后检查每个子包的getTitle(),以找到您需要的区域。

例如,要获得法国“布雷塔涅”地区的id,您需要通过rootMapPackage.getChildren().get(2/Europe/).getChildren().get(1/France/).getChildren().get(3/Bretagne/).getId()

不太方便。根包上的“搜索(字符串标题)”方法将非常方便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35271228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档