可访问的服务地图服务
ArcGIS Runtime不仅能够加载本地的数据资源,还可以访问ArcGISServer发布的服务,如ArcGIS Online上的。
ArcGIS Runtime可以访问ArcGISServer动态服务、切片服务、影像服务。
n ArcGISImageServiceLayer
n ArcGISTiledMapServiceLayer
n ArcGISDynamicMapServiceLayer
ArcGIS Runtime 可以访问本地动态服务、切片服务、服务中的某个图层
n LocalArcGISDynamicMapServiceLaye
n LocalTileCacheLayer
n LocalFeatureLayer
可以看出ArcGIS Runtime访问的本地服务都是以Local开头的
ArcGIS Runtime WPF 开发模板
安装完ArcGIS Runtime WPF SDK后,在VS.NET开发环境中嵌入了WPF开发模板,如下图所示
从上图的地图服务加载代码来看与ArcGIS Silverlight API开发非常相似,熟悉ArcGIS APIfor Silverlight的用户进行ArcGIS Runtime WPF开发能够很快的上手。
License许可
当访问本地的数据资源时,如果没有license授权在运行界面背景会出现大量的ESRI水印。
程序中进行许可授权:打开MainWindow的代码页,解除把下图所示的代码的屏蔽,利用LocalServer.SetLicense(“***”)方法进行授权.
ArcGIS Runtime 访问本地动态图层
利用ArcGIS Runtime 访问本地动态图层只需添加下面的一句
<esri:LocalArcGISDynamicMapServiceLayerID=”Lyr1″ Path=”C:ProgramFilesUSHighwaysCounties.mpk”/>
其中, Path是本地资源的路径,此路径可以是绝对路径也可以是相对路径;相对路径是以项目编译输出目录(binDebug、binRelease)为基准的.
n Path = “USHighwaysCounties.mpk” ——输出目录下
n Path = “Data/USHighwaysCounties.mpk” ——输出目录/Data
对于地图服务的添加,也可以在程序运行中完成。代码添加服务如下图所示
LocalArcGISDynamicMapServiceLayerpLyr =
newLocalArcGISDynamicMapServiceLayer(“C:\ USCitiesStates.mpk”);
pLyr.ID = “LayerLocal”;
MyMap.Layers.Add(pLyr);
ArcGIS Runtime 访问服务中的单一图层
ArcGIS Runtime可以访问本地地图服务中的某个图层,如下所示
<esri:LocalFeatureLayerLayerId=”2″ Path=”C:ProgramFilesArcGIS SDKsWPFSamplesDataMPKsUSCitiesStates.mpk”/>
对于加载图层的指定可以通过图层ID LayerId或图层名称 LayerName属性来指定,如:上面图层的加载是通过LayerId来指定,访问USCitiesStates.mpk地图包中图层ID等于2的图层。
与在ArcGISServer API下访问图层比较相似:
http://127.0.0.1/arcgis/rest/services/AMap/Mapserver/2
ArcGIS Runtime 访问本地切片服务
ArcGIS Runtime对本地切片服务访问可以通过访问缓存目录、tpk包(TilePackage)两种方式来进行。
通过tpk包访问的方式可以参考前面对mpk包的访问方法,下面介绍下如何访问本地缓存目录。
通过下面的代码便可以访问本地缓存服务
<esri:LocalTileCacheLayerID=”dss” Path=”C:arcgisserverarcgiscachedxmapMap”/>
Path指定的服务缓存路径,指定到Map文件夹即可。
访问本地MPK地图包报错
在访问本地mpk地图包时有时候会出现下面的错误,提示没有可用的msd文档。
原因:ArcGIS Runtime访问的mpk地图包是以msd文档来打包生成。在ArcGIS10下打包生成的mpk地图包只包含mxd文档,所以不能在ArcGISRuntime下访问。
用ArcGIS10.1创建地图包。