什么是图层
图层是用来在 ArcGIS 产品套件中显示地理数据集的机制。每个图层代表一种数据集(可以是地图服务、图形或是矢量数据),并指定该数据集是如何描绘使用一组属性的。
包含一个地图控件的每个应用程序是通过添加一系列图层组装的。图层以特定的顺序显示在地图上,列在最底部的图层在地图的最上面显示,也就是先添加的图层在下面显示(原理类似于“栈”)。比如,在XAML代码中,最靠上的图层在显示时会出现在Map控件的最底端,如图:
图层介绍
第一个图层的空间坐标系SpatialReference决定了地图的空间坐标系,图层只能在UI线程上进行实例化。以下是所有的图层类:
所有的图层都是从Layer类型继承而来的,可以参考下载的API中的对象模型图。
Layer
|–TiledMapServiceLayer
| |–ArcGISTiledMapServiceLayer
|–DynamicLayer
| |–DynamicMapServiceLayer
| |–ArcGISDynamicMapServiceLayer
| |–ArcGISImageServiceLayer
| |–GPResultImageLayer
|–GraphicsLayer
| |–FeatureLayer
|–ElementLayer
Layer是最基本的基类,常用的几种图层类型已经用红色标记出来了。
(1)Layer:继承自DependencyObject,并实现了INotifyPropertyChanged接口,是其他图层的基类。
(2)TiledMapServiceLayer:继承自Layer,是所有使用了缓存的地图服务的基类。通过它可以在程序中加入经过缓存的,来自不同数据源的地图服务。比如ArcGIS Server的地图服务,Google Map的地图,Virtual Earth的地图等。
(3)ArcGISTiledMapServiceLayer:继承自TiledMapServiceLayer。这个图层扩展了TiledMapServiceLayer,支持由ArcGIS Server发布的经过缓存的地图服务。
(4)DynamicLayer:继承自Layer,是动态地图服务的基类。
(5)DynamicMapServiceLayer:继承自DynamicLayer,对应于TiledMapServiceLayer,要使用未经过缓存的动态地图服务,就得通过扩展这个图层来实现。
(6)ArcGISDynamicMapServiceLayer:继承自DynamicMapServiceLayer,针对ArcGIS Server 9.3版本发布的动态地图服务。同理,如果要在客户端API中使用其他动态地图服务,比如OGC的WMS服务,则也需要像这个图层一样,扩展上面的DynamicMapServiceLayer来实现。
(7)ArcGISImageServiceLayer:继承自DynamicMapServiceLayer,针对ArcGIS Server 9.3版本发布的Image Service,因为影像服务也属于动态的地图服务。在客户端API中,可以通过ArcGISImageServiceLayer的一些属性,方便通过浏览器来展示服务器端的影像数据,比如通过BandIds属性,可以快速调整影像数据显示波段的组合(RGB通道),提供不同结果供用户查看。点击这里,查看一个实例。
(8)GPResultImageLayer:继承自DynamicMapServiceLayer,针对Geoprocessing服务所产生的结果。可以请求服务器端的GP服务将结果动态生成一张图片,将此图片作为GPResultImageLayer图层直接添加到Map控件中。