Men的博客

欢迎光临!

0%

地图项目中对象设计

Feature、FeatureClass、FeatureLayer,这三者熟悉AO和AE的同仁,应该很清楚,这是三个必知必会的概念。Feature:单个地理要素,含有空间信息与属性信息:Feature=Geometry+Properties;FeatureClass:要素类或要素集合,同一类的要素集合,具有相同地理概化特征(空间图形类型相同),又具有相同的属性特征;FeatureLayer:FeatureClass的一个视图,就ArcGIS概念来类比,FeatureLayer ≈ FeatureClass + Zoom Level + Filter + Renderer(Symbology)+ Label + …
注意:本文的Graphic更接近ArcGIS Engine的Graphic而非ArcGIS JS API的Graphic,以后会建立Feature类,Feature = Geometry + Properties (即空间+属性)。而目前的Graphic用以描述图形,一个Graphic对应一个Symbol(当然具体应用时可复用);Feature则常用于,同一类要素组成FeatureClass,并通过设置Renderer来呈现为Feature-Layer

Symbol的理解

/**

  • 符号基类
  • @remarks
  • 如按现实世界来抽取对象基类,下述属性不应放在基类
  • 但考虑到Canvas的上下文设定,才决定抽取到基类
  • /

Feature的理解

/**

  • 矢量要素
  • Graphic vs Feature:Graphic作为图形,可以一图形对应一渲染符号;而Feature作为矢量要素,常规应该根据图层设定的渲染方式Renderer来得到各个Feature的渲染符号,而非单一设置。
  • Graphic = Geometry + Symbol
  • Feature = Geometry + Properties
  • ArcGIS AO/AE: Feature = Geometry + Properties
  • ArcGIS JS API: Feature = Graphic = Geometry + Properties + Symbol
  • /

    Layer的理解

    /**
  • 图层基类
  • /

    Graphic的理解

    /**
  • 图形要素
  • 区别与Feature,单纯的图形
  • /