ArcGIS Runtime不能直接加载shp数据,或者mxd地图文档。ArcGIS Runtime所能支持的数据格式,我们可以称之为Package,目前包括MPK,TPK,GPK以及APK四种格式。
- Map package(MPK) :包含地图文档(mxd)以及图层引用的数据,这样便于用户或组织在ArcGIS Online上进行分享。
- Tile package(TPK):包含地图文档的缓存数据,也就是切片后的数据,TPK一方面便于用户或组织在ArcGIS Online上分享数据,另一方面也为离线条件下访问数据提 供一种方案。
- Geoprocessing package(GPK):是将一个能够成功运行的地理处理模型创建成一个压缩文件,方便分享分析和地理处理的工作流程。
- Locator package(APK):是将包含一个定位器或复合定位器的工具打包成一个方便、便携的文件,便于用户或组织在ArcGIS Online上分享。
熟悉ArcGIS 10的朋友也许会说:“木有问题呀,ArcGIS 10可以制作mpk!”是的,ArcGIS 10为了便于大家更好地分享数据,增加了mpk这种格式。但是使用ArcGIS 10制作的mpk是不被ArcGISRuntime支持的,如果您尝试加载会毫不意外的收到错误提示。
那么怎样才能制作出ArcGIS Runtime能支持的Package呢? ArcGIS 10.1可以帮助您完成!下面就给大家介绍这几种格式数据的制作过程。
1、数据准备
俗话说的好,巧妇难为无米之炊。我们在数据制作之前也要备好素材—数据。数据格式为gdb(能够支持的其他数据格式待补充)。
下图是我准备的地图数据:
2、启用ArcGIS Runtime工具
首先,打开ArcMap10.1,要启用ArcGIS Runtime 工具,需要在菜单栏—>自定义—>ArcGIS 选项中,勾选 ArcGIS Runtime Tool前面的复选框,如下图:
3、创建MPK
在菜单栏File—>Share As菜单下选择Map Package,如下图:
在弹出的窗口中填写相关信息,其中ItemDescription中的summary和tag等都为必填信息,如下图:
另外创建MPK还需要填写地图文档属性信息,如果这些信息没有填写,那么这个Package是不能创建成功的,而ArcMap会体贴的给出提示信息,如下图:
按照这个错误信息,我们对相关内容进行完善或修改,我这里是为了测试,所以填写Test,你可以根据自己的需要填写,如下图:
修正完这些错误后,点share命令,成功的话,将看到下面的界面:
成功生成MPK后,我们来对它进行测试。
在MainWindow函数中填写相关代码,如下所示:
public MainWindow()
{
InitializeComponent();
//授权
LocalServer.SetLicense("序列号");
LocalServer.InitializeAsync(() =>
{
if(LocalServer.LicenseStatus!=LicenseStatus.Valid)
{
MessageBox.Show("The ArcGISRuntime license is invalid, please contact your administrator.");
}
});
//加载本地数据MPK
ArcGISLocalDynamicMapServiceLayerpLocal =newArcGISLocalDynamicMapServiceLayer();
pLocal.Path =@"C:UsersAdministratorDocumentsArcGISUntitled.mpk";
pLocal.ID ="MPK";
_mapControl.Layers.Add(pLocal);
}
2、创建TPK
创建TPK和MPK步骤类似,只是在File-Share As的时候选择Tile Package,然后填写相关信息,如下图:
创建TPK的时候需在Tile Format栏根据需要选择切片方案和图片的格式,如下图:
切片格式有5中,PNG8、PNG24、PNG32、JPEG以及MIXED.
切图方案分为三种: ArcGIS Online/google/bing切图方案、选择已有的切图方案文件、选择一个已有切片地图服务。
同样的,TPK创建完成后我们对它进行测试。
访问TPK的代码比较简单,因为该服务不需要启动ArcGIS Runtime的服务,如下:
ArcGISLocalDynamicMapServiceLayerpLocal =new ArcGISLocalDynamicMapServiceLayer();
pLocal.Path =@"C:UsersAdministratorDocumentsArcGISUntitled.tpk";
pLocal.ID="TPK";
_mapControl.Layers.Add(pLocal);
3、创建APK
创建一个地址定位器,如下图:
在地址定位器上右键,Share As,然后选择Locator Package,如下图:
然后弹出一个界面跟MPK,TPK类似,填写相关信息即可。
4、创建TPK
注意:在ArcGIS 10.1中地理处理服务的发布方式发生了变化,地理处理服务的发布将由能够运行成功的地理处理工具产生。
创建一个地理处理的模型(计算缓冲区分析),模型如下图:
在ArcMap中测试我们的模型,如下图:
执行测试,结果如下图:
从图上可以看到,执行成功,因此在执行结果中选择我们刚才执行的模型,右键,ShareAs,出现下图:
这个界面和创建MPK和APK类似,如下图:
注意,在创建GPK的时候,需要对模型中的参数进行描述,否则创建不成功,做法如下:
在模型上点击右键,找到Item Description,右键,如下图:
在出现的界面上点击Edit,然后填写相关信息,如下图:
5、使用地理处理工具制作
在ArcGIS 10.1中除了第二章的方法之外,ArcGIS 还为我们提供了一套地理处理工具,使用这套工具我们也可创建在ArcGISRuntime中可以使用数据。
ArcGIS 10.1 提供的地理处理工具如下图:
操作过程如下图(注意看红框内的信息):