移动地图包是一个以“.mmpk”结尾的单独文件扩展,它可以将你的组织的maps、资源、道路网、或者坐标集成到一个文件。根据这些数据你的用户就可以清楚自己的方向,知道什么是他们所需要的,探索它们的附近的区域、有效的利用他们的资源去工作。地图数据包格式是面向当前手机设备的最佳格式,它小而快速,因为它是被压缩的且容易分享。相比于传统的地图包(tpk、vtpk等),它保存所有的feature要素。
mmpk可以将各种地图和数据资源打包,其中也包括矢量切片数据,同时这种格式地图包可轻松部署到终端使用,由于数据是存储于压缩的mobile GDB中,底图上展示的内容都是要素,可供查询和分析,同时支持路径规划、地址编码等高级分析应用。移动地图包支持离线应用。移动地图包既解决了移动端符号渲染问题,又结合矢量切片底图解决了地图包过大的问题,支持离线的查询、分析等各种应用场景。
也可以参考官网:
http://pro.arcgis.com/zh-cn/pro-app/tool-reference/data-management/create-mobile-map-package.htm
到此,mmpk文件就创建好了。
二、加载mmpk在Runtime 100里,对于移动地图包专门有个类MobileMapPackage进行管理,其官方解释为:
具体可见官网解释和用法:
https://developers.arcgis.com/android/api-reference/reference/com/esri/arcgisruntime/mapping/MobileMapPackage.html
详细代码为:
public void load(){
mMapView.setAttributionTextVisible(false);
final String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/data/cssj/ff.mmpk";
File file = new File(path);
if (!file.exists()) {
Toast.makeText(MainActivity.this, "文件不存在!", Toast.LENGTH_LONG).show();
}
final MobileMapPackage mainMobileMapPackage = new MobileMapPackage(path);
String v = mainMobileMapPackage.getVersion(); //获取mmpk的版本
mainMobileMapPackage.loadAsync();
mainMobileMapPackage.addDoneLoadingListener(new Runnable() {
@Override
public void run() {
LoadStatus mainLoadStatus = mainMobileMapPackage.getLoadStatus();
if (mainLoadStatus == LoadStatus.LOADED) {
List mainArcGISMapL = mainMobileMapPackage.getMaps();
ArcGISMap arcGISMap = mainArcGISMapL.get(0);
list = arcGISMap.getOperationalLayers(); // 可取出这里面的所有图层
mMapView.setMap(arcGISMap);
} else {
Exception e = mainMobileMapPackage.getLoadError();
e.printStackTrace();
Toast.makeText(MainActivity.this, "加载失败!", Toast.LENGTH_LONG).show();
}
}
});
}
效果图为:
如图所示,这个地图里包含了两个业务图层,通过我们的移动地图包数据,直接一步就加载好,因为移动数据包不仅包含地图展示所需的所有图层,也包含他们图层的顺序,因此使用起来非常方便。
这里也提供一个测试mmpk文件:
链接:百度网盘下载mmpk
提取码:apqi
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)