该命名空间包含很多类,这些类都对应我们本地的服务和服务图层等信息,红框部分是我着重介绍的,如下:
要使用本地数据,首先要启动本地服务器,在启动本地服务器之前首先要授权,授权使用的是ArcGISRuntime这个类,该类主要完成设置或者获取ArcGISRuntime的授权,ArcGISRuntime的初始化,以及设置或者获取ArcGISRuntime的安装路径,的内容如下:
LocalServer是一个静态类,该类用来初始化本地服务器,关闭服务器,获取该服务器上的所有服务以及服务器的状态信息等,该类在初始化和关闭服务器的方法上同时提供了同步和异步的调用方法,如下红框所示:
ArcGIS Runtime 在使用MPK,GPK的时候会通过内部的服务器将这些作为服务发布出去,因此我们要清楚在使用这些数据的时候,首先要启动本地服务器(已经授权成功),代码如下:
当服务器启动后,我们就可以使用本地服务了,这些本地服务对应的类如下:
本地服务器启动成功之后,我们就可以使用MPK,APK,GPK(TPK不需要启动本地服务器),在Local命名空间中可以看到LocalFeatureService,LocalMapService等类,这些类是和本地服务相关的,LocalMapService对应本地动态地图服务。而这些本地地图服务都继承LocalService,如下图:
//获取本地GP服务
LocalGeoprocessingService.GetServiceAsync(@"SimpleBuffer.gpk",GPServiceType.Execute, (gpService) =>
{
if (gpService.Error !=null)
{
MessageBox.Show(gpService.Error.Message);
}
//创建Geoprocessor
pGPTask = new Geoprocessor(gpService.UrlGeoprocessingService +"/" +
"SimpleBuffer");
MyMap.MouseClick +=MyMap_MouseClick;
});
}
我们要将我们创建成功的动态地图服务显示出来,那么就需要借助跟这个服务相关一个图层,ArcGISLocalDynamicMapServiceLayer 类就对应了我们动态地图服务LocalMapService,我们将上面创建的服务跟这个服务跟这个图层关联,然后将图层添加到Map中,如下:
注意:通过这个我们已经看到了ArcGIS Runtime使用服务的整个流程:授权服务器-启动服务器-创建服务-使用服务,其实后面两个步骤可以合并为一个步骤,ArcGISLocalDynamicMapServiceLayer有一个Path的属性,只要将MPK的路径付给该属性,那么ArcGIS Runtime会在背后自动完成服务创建然后将服务赋给该图层,代码如下:
在这里我将添加了Local等的都成为本地**,如ArcGISLocalDynamicMapServiceLayer,那么我将它称为本地动态地图服务图层以区别ArcGISDynamicMapServiceLayer(动态服务图层),我们知道动态地图服务图层是用来访问ArcGIS Server或者ArcGIS Online上的动态地图服务的,而本地地图服务图层是用来访问本地地图服务的,那么其本质是什么,我们从下面的图中可得到相关启示:
从这幅图可以看出我们的本地地图服务图层其实是继承了我们熟知的动态地图服务图层。