要素、要素类
要素(feature):就是能代表物理实体的,具有几何形状的地图元素。地图中主要包括点,线,面三要素。是空间数据中最基本,不可分割的单位。每个要素和属性表中记录(行)存在一一对应关系。主要用来查询,分析。
要素类(feature class):具有相同几何特征(形状)的同类要素的集合(即点图层中的点,线图层中的线,面图层中的面)。一个要素类一般和一个属性表相对应。事实上,某一要素或者是某类要素是通过TOC中的图层来表现的。
1、使用AE创建要素过程
打开编辑空间(IWorkspaceEdit)
创建Feature(FeatureClass.CreateFeature())
设置Feature的属性
保存Feature(Feature.Store())
关闭编辑空间
2、对要素(Feature)的任何编辑操作都必须在“编辑空间打开的阶段”完成
3、如果打开了编辑状态,就一定要调用feature.store,或则调用discard。不然会有时抛出异常。
3、FeatureClass实际上都相当于一个容器,真正的实体分别是Feature(一些形状,比如点,线或者面等),它就是这个容器中的一个记录,就如同二维表中的某一行一样,代表了具体的实体;使用IFeatureClass的CreateFeature方法和ITable的CreateRow方法效果一样,只不过CreateFeature方法返回的是CreateRow方法创建的Feature的引用。
4、Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式。一个Shapefile文件包括一个主文件(.shp),一个索引文件(.shx)和一个dBASE表文件(*.dbf),要注意的是Shapefile只能存储一种要素(点状或线状或面状)。而gdb里边可以存放很多要素集(feature dataset),每个要素集里边又能存放很多要素类。
5、Featureclass是个模型上的称呼,而shapefile做为一种文件格式,是Featureclass这种模型的表现形式。
6、图层(layer) 是依附于地图(Map)而存在的一个概念,FeatureClass是一系列Feature(形状)的集合,是一个存储数据的容器,当我们将FeatureClass放到Map中就成图层了,但如果要将数据存储到硬盘上怎么办呢??不能存储为Layer吧??这时我们是将它存在Shapefile文件中,像上面说的Shapefile是外在表现形式,是具体的,而像Featureclass、Layer之类的是抽象的概念。