地图Map是承载图层的容器,主要用于呈现地图服务、影像服务,此外还可以展示WMS(WEB Map Service)服务等,一个图层只有被添加到Map中才能被显示出来。
图层图层是承载服务的载体(GraphicsLayer除外),ARCGIS for Server将GIS资源作为服务发布出来,要想在浏览器端看到这些服务,就必须将这些服务和图层的关联起来,不同的服务对应不同的图层类型,下表列出了这些服务和ARCGIS api for JavaScript中图层的对应关系:
图层在Map中有一定的顺序,当一个图层加入到map中,后加入的图层是在map的最上层,图层顺序可以看下图:Geometry:几何对象用于表示对象的显示形式,在ARCGIS for js 中geometry大体上可以分为下面几类:点、多点、线、矩形、多边和ScreenPoint。其中ScreenPoint对象是新版本增加的,是以像素的方式表示的点,而点、多点、线、矩形、多边形都是继承Geometry,其关系如下图:
Symbol:Symbol定义了如何在GraphicLayer上显示点、线、面和文本,符号定义了几何对象的所有非地理特征的方面的外观,包括图形的颜色,边框线宽度,透明度等。ARCGIS for js包含了很多符号类,每个类都允许你使用唯一方式制定一种符号,没一种符号都特定与一种类型(点、线、面和文本)
ARCGIS for js中符号是有一定的继承关系的,结构如下:GraphicGeometry定义了对象的形状,Symbol定义了图形是如何显示的,Graphic可以包含一些属性信息,并且在js中还可以使用infoTemplate(一个infoTemplate包含标题和内容模板字符串,该内容模板字符串用于将Graphic的属性转换成HTML的表达式)定义如何对属性信息进行显示,最终的Graphic则是被天机到GraphicLayer中,GraphicLayer允许对Graphics进行事件监听,对于Graphic的描述可以用一个数学表示来表示:Graphic = Geometry+Attribute+Symbol+infoTemplate
Render渲染器定义了一种或多种符号以应用于一个GraphicLayer。每个Graphic的符号所使用的的符号取决于该Graphic的属性值。渲染器指定了属性值与符号之间的对应关系。
FeatureSetFeatureSet是要素类的轻量级表示,相当于地理数据库中的一个要素类,是Feature(要素)的集合,FeatureSet中的每个Feature可能包含Geometry、属性、符号、和一个infoTemplate。如果FeatureSet不包含Geometry,只包含属性,那么FeatureSet可以看做一个表,其中每个Feature是一个行对象。FeatureSet是我们在利用ARCGIS for js和ARCGIS for Server进行数据通讯的一个非常重要的对象,当使用查询、地理处理和路径分析的时候,FeatureSet常常作为这些分析的功能的输入和输出参数(回调函数的返回值)。