在MapEngine初始化中,我想安装所有的软件包,但是我被困在这里,installMapPackages(列表packageIdList)从哪里可以找到List packageIdList。
发布于 2016-02-11 07:58:18
您应该使用MapLoader#getMapPackages() API检索根MapPackage对象。然后,您可以使用MapPackage#getId()方法查找要安装的国家/地区的Id。注意,MapPackage对象不是直接从MapLoader#getMapPackages()调用返回的,而是通过侦听器对象返回的。您必须提供自己的MapLoader.Listener实现,并在调用getMapPackages()之前通过MapLoader#addListener(MapLoader.Listener listener)方法对其进行设置。
例如:
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
plus/com-here-android-mpa-odml-maploader.html
发布于 2016-06-13 10:12:20
惟一的方法(我认为)是在MapPackage上递归调用MapPackage(),然后检查每个子包的getTitle(),以找到您需要的区域。
例如,要获得法国“布雷塔涅”地区的id,您需要通过rootMapPackage.getChildren().get(2/Europe/).getChildren().get(1/France/).getChildren().get(3/Bretagne/).getId()
不太方便。根包上的“搜索(字符串标题)”方法将非常方便。
https://stackoverflow.com/questions/35271228
复制相似问题