Layers overview (层的概述)
当使用开发Flex的 ArcGIS API进行开发时这有各种类型的层使用。层API参考使用的一个术语,可以看到类似于服务。你选择哪种类型的层(服务)取决于类型的功能需要。所有的图层来源于Layer的基类(base class)
Layer |–TiledMapServiceLayer | |–ArcGISTiledMapServiceLayer |–DynamicLayer | |–DynamicMapServiceLayer | |–ArcGISDynamicMapServiceLayer | |–ArcGISImageServiceLayer | |–GPResultImageLayer |–GraphicsLayer | |–FeatureLayer |–ElementLayer
下面就按顺序认识一下这些图层吧,也包括Silverlight API中独有的FeatureLayer。
Layer:
继承自DependencyObject,并实现了INotifyPropertyChanged接口,是其他图层的基类。
TiledMapServiceLayer:
继承自Layer,是所有使用了缓存的地图服务的基类。通过它可以在程序中加入经过缓存的,来自不同数据源的地图服务。
比如ArcGIS Server的地图服务,Google Map的地图,Virtual Earth的地图等。
DynamicLayer:
继承自Layer,是动态地图服务的基类。
DynamicMapServiceLayer:
继承自DynamicLayer,对应于TiledMapServiceLayer,要使用未经过缓存的动态地图服务,就得通过扩展这个图层来实现。
(1)ArcGISTiledMapServiceLayer:
继承自TiledMapServiceLayer。这个图层扩展了TiledMapServiceLayer,支持由ArcGIS Server发布的经过缓存的地图服务。
(2)ArcGISDynamicMapServiceLayer:
继承自DynamicMapServiceLayer,针对ArcGIS Server 9.3版本发布的动态地图服务。
同理,如果要在客户端API中使用其他动态地图服务,比如OGC的WMS服务,则也需要像这个图层一样,
扩展上面的DynamicMapServiceLayer来实现。
(3)ArcGISImageServiceLayer:
继承自DynamicMapServiceLayer,针对ArcGIS Server 9.3版本发布的Image Service,因为影像服务也属于动态的地图服务。
在客户端API中,可以通过ArcGISImageServiceLayer的一些属性,方便通过浏览器来展示服务器端的影像数据,
比如通过BandIds属性,
可以快速调整影像数据显示波段的组合(RGB通道),提供不同结果供用户查看。点击这里,查看一个实例。
(4)ArcIMSMapServiceLayer:
ArcIMS发布的地图服务
(5)ArcGISLocalTiledLayer:
貌似是Android设备上开发实用的地图类
(6)CSVLayer:
支持.CSV文件,一个csv文件包含的文本用定界符来分隔作为数据,一般使用逗号,数据可以包括位置信息,
比如x,y 坐标值,CsvLayer 类让添加包括地理信息的文本文件到地图上作为要素图层变的容易,一组属性可以被定义为表示数据如何存储
(7)ElementLayer:
继承自Layer,它可以用来专门呈现Silverlight/WPF中原生的FrameworkElement,比如视频,音频等。
虽然在FillSymbol的Fill属性中也能利用Brush类来展现一段视频,但毕竟有些“小气”,在ElementLayer中可以大大方方的放置
Silverlight/WPF元素。虽然在Map控件之外,Grid等布局元素中也能放置Silverlight的东西,但是ElementLayer的优势在于:
当一些非地理数据元素随着地图范围的变化(放大,缩小,平移)的时候,无须在地图Extent变化后重新计算客户端坐标,
再改变这些元素的位置。
(8)GPResultImageLayer:
继承自DynamicMapServiceLayer,针对Geoprocessing服务所产生的结果。可以请求服务器端的GP服务将结果动态生成一张图片,
将此图片作为GPResultImageLayer图层直接添加到Map控件中。
(9)GraphicsLayer:
继承自Layer,是图形数据集中展现的地方。
GraphicsLayer是保留在内存中的一种图层(与ArcMap、ArcGIS Engine、ArcGIS Server ADF程序中的相应概念类似),
顾名思义是很多Graphic的集合,而所有与用户交互的内容通常都用Graphic来显示。比如多边形查询中用户画出的多边形,
属性/空间查询结果中的所有要素(Feature)等内容,都是Graphic。可以说,除了地图本身,基本上看到的所有与地理位置有关的东西都可
以用Graphic来表示。Graphic对象有3个重要的属性:Geometry,Symbol和Attributes。Geometry代表了一个Graphic的几何形状
(可疑是点、线、面任意一种)或地理位置,而Symbol则表示Graphic的呈现样子,比如颜色、效果,同时有了这两个属性(缺一不可)
,Graphic就可以显示到地图上了。而Attributes是键值对集合,可在里面存储任意类型的对象,比如一个要素的属性信息。
(7)FeatureLayer:
继承自GraphicsLayer,这也是ArcGIS API for Silverlight/WPF 中的亮点之一,通过它可以完成一些比较炫的功能。
FeatureLayer继承自GraphicsLayer,它与后者的区别是,GraphicsLayer中的Graphic都是人为创建出来的,
而FeatureLayer中的Graphic都是从ArcGIS Server发布的服务中读取出来的,因此FeatureLayer比GraphicsLayer多了一个URL属性。
这个URL通常指向一个ArcGIS Server发布的MapService或FeatureService的子图层(对应一个FeatureClass)。
FeatureLayer有了这个URL后,就可以读取出该服务对应子图层里的所有要素内容,因此FeatureLayer里Graphic的Geometry属性会自动
被FeatureClass的Shape字段填充,而Graphic的Attributes字段则会根据要求,被FeatureClass中的属性信息所填充。如果发布服务的
服务器是ArcGIS Server 10版本,则Graphic的Symbol属性会自动被服务的DrawingInfo信息填充。另外,FeatureLayer是客户端API中
对FeatureService的唯一载体,这是它另一个非常重要的作用(也是主要作用)。
http://www.newnaw.com/pub/sl/featurelayer.gif
(10)GeoRSSLayer:
GeoRSS是一种描述和查明互联网内容所在物理位置的方法。通过使用GeoRSS,搜索Web站点或者与地理位置有关的项目就成为可能。
此外,GeoRSS有助于将RSS feed立即分发到基于事件类型和位置的特定用户。
GeoRSS利用地理标识语言(GML),即利用可扩展标记语言 (Extensible Markup Language, XML)存储和传输地理数据的方法。
GML保持着RDF的许多特性,包括智能代理和一个用于描述和查询数据的标准语法。
在GML中,地理对象的特点被编码为文档内的元素。这些元素可以描述复杂的地理特性,如峡谷、湖泊和河流。人工制造的创造物,
如建筑物、公园和城市也可以被描述。在GML中,位置是根据几何中点、线(也称为线串或线段)或者界面(也称为多边形)来从算术上设定的。
这个过程称为地理标记(Geotagging)
(11)KMLLayer:
当你想要添加 kml/kmz 文件作为你的应用程序中一个层时,使用这种图层类型
(12)MapImageLayer:
虚拟影像地图,该MapImageLayer类用于地理参考图像添加到地图中。地图会放置地理参考图像在指定的地理范围。图像的程度应该是地图的
范围内。该图像也应该是相同的坐标系的图中。
(13)OpenStreetMapLayer:
OpenStreetMap提供了一个使用许多数据提供商主机映射数据作为缓存的瓦片的标准。OpenStreetMapLayer接受用来检索瓷砖地图瓦片服务
器的列表, 您可以包含一个以上瓦片服务器跨越多个站点请求传播切片请求。
(14)VETiledLayer:
继承TiledMapServiceLayer类。该类中一个重要的方法getTileUrl (level, row, col),是获取某级某行某列的那张切片图片的url地址并返回。
通过继承这个类我们可以实现自己的切片地图图层,只需把getTileUrl方法重写即可。
(15)WMTSLayer:
WMTS (Web Map Tile Service) 是OGC 提出的缓存技术标准,即在服务器端缓存被切割成一定大小瓦片的地图,对客户端只提供这些预先定义好的单个瓦片的
服务,将更多的数据处理操作如图层叠加等放在客户端,从而缓解 GIS 服务器端数据处理的压力,改善用户体验。
WMTS 使用瓦片矩阵集(Tile matrix set)来表示切割后的地图,如图1所示。瓦片就是包含地理数据的矩形影像,一幅地图按一定的瓦片大小被切割成多个瓦片,
形成瓦片矩阵,一个或多个瓦片矩阵即组成瓦片矩阵集。不同的瓦片矩阵具有不同的分辨率,每个瓦片矩阵由瓦片矩阵标识符(一般为瓦片矩阵的序号,分辨率最
低的一层为第0层,依次向上排)进行标识
(16)WebTiledLayer:
该WebTiledLayer类提供了一个简单的方法来添加非ArcGIS Server地图瓦片的图层的地图
(17)WMSLayer:
WMSLayer实例被用来显示网络映射的数据。这种图层对应符合OGC标准的WMS或者WMTS图层,可以编辑删除修改,也可以属性查询以及空间查询,
这都需要借助支持WMS,WMTS,WFS,WFS-T标准的服务器端软件支持,比如geoserver。
ArcGISTiledMapServiceLayer和ArcGISDynamicMapServiceLayer分别用于加载ArcGIS Server发布的缓存地图服务和动态地图服务。GraphicsLayer和FeatureLayer,可以说这是API中最常用的两种图层,大部分的程序功能都要基于它们来完成。
Basemap layers (基础图层)
底图(basemao)通常是预定义的,通常称为缓存或瓦片层(cached or tiled layers)
在Arcgis api for flex中,下面的图层直接从TileMapServiceLayer进而延伸层类继承有各种类型的底图的如下
注意:该ArcGISLocalTiledLayer为移动应用而设计的,并且只支持Adobe AIR应用程序。
WebTiledLayer,它提供了一种机制来添加非ArcGIS地图瓦片地图层,自定义层扩展TiledMapServiceLayer类
Operational layers(操作层/操作层)
业务层主要侧重于动态数据。换句话说,相对于basemap,它的数据可以更频繁地改变,很多时候这些层封装相关的内容,比如地震,天气和交通数据。
业务层可以区分两种不同的方式,要么是服务器端图像结果或客户端图形
服务器端图像结果
ArcGIS的服务器主机缓存和动态数据,操作层或动态层,直接从DynamicMapServiceLayer类继承,反过来,扩展了层类。这些类型是:
ArcGISImageServiceLayer, for more information, see Key concepts for Image Services
WMSLayer, for more information, see WMS Services
客户端图形
客户端图形允许更有效地信息显示在客户端机器上。这通常是在用例涉及图形作为标记或用户输入一个任务,或者图形可以作为输出响应的任务。
客户端图形层类型包括:
GraphicsLayer, for more information regarding working with graphics and the
GraphicsLayer, see Using GraphicsFeatureLayer, this layer extends
GraphicsLayer. For more information regarding working with feature layers, see Feature LayerCSVLayer, this layer extends FeatureLayer. For more information regarding working with the
CSVLayer, see CSVLayerGeoRSSLayer, this layer extends directly from the Layer class and is used to create a layer based on GeoRSS. GeoRSS is a way to add geographic information to an RSS feed
KMLLayer, this layer extends directly from the Layer class and is used to create a layer based on publicly accessible KML or KMZ files. For more information regarding working with KML data, please see KML support in ArcGIS Server.
除了上面列出的层类型,有一个额外的MapImageLayer类型。这个直接继承的层和用于地理图像添加到地图。它用于处理动态生成的地图图像对象。MapImage访问是两种不同的方式:
GroundOverlays - come back as part of KML. Every ground overlay is treated as a map image where
MapImage.sourceis the URL to the image.Geoprocessing operations - The export operation on
ArcGISDynamicMapServiceLayerreturns aMapImagein addition toGeoProcessor.getResultImage.
原文摘录:https://developers.arcgis.com/flex/guide/layers-overview.htm
未经允许请勿转载:程序喵 » 【ArcGIS】Types of Layers —— 层的类型
程序喵