FeatureLayer,FeatureDataset,FeatureClass,Feature,IFeatureCursor几个概念总结
FeatureLayer,FeatureDataset,FeatureClass,Feature,IFeatureCursor几个概念总结
FeatureLayer: 要素图层,承载要素数据。几个重要的接口如下:
IFeatureLayer接口,用于管理要素图层的数据源,即要素类(FeatureClass)。具体察看IFeatureLayer.DataSourceType条目。
IFeatureLayer::FeatureClass属性可以返回要素图层使用的要素类。
IFeatureLayer::search方法,返回一个ICursor对象,仅仅指向一个要素指针。
IFeatureSelection接口负责管理一个图层中的要素的选择集的方法和属性。
IFeatureSelection:SelectFeatures使用一个过滤器把符合要求的要素放入图层的选择中(IEnumFeature)。
ILayerFields接口,可以直接获得一个要素图层的要素类字段结构。
FeatureDataset: 先看官方解释:A FeatureDataset is a container for feature classes that share the same spatial refrence.
要素数据集对象在GeoDatabase是一个简单的要素类的容器,在这个容器内放置着相同空间参考的要素类
FeatureClass:(要素类)是用来存储空间数据的对象类,是ObjectClass的扩展。在一个要素类中的所有的要素都使用同样的字段结构,要素类与表,对象类最大的区别是它有一个几何字段,即Shape字段,用于存储要素的几何信息,这样使得用户可以在地图上看到一个要素的形状和位置。在地图上,要素类是离散对象,”小”对象(small objects)表示为点要素,”长”对象表示为线要素,”大”对象表示为多边形要素.(不要老往Shapefile上面想),不包含Raster。
IFields接口,字段集可以通过ITable::Fields获取(IFeatureClass.Fields)IFields有2个属性,其中一个是Field(index),通过传入不同的字段索引值可以返回某个字段。两个方法,一个是FindField,用字段名作为字段的索引。IField接口是字段对象的主要接口,可以个从这个接口中得到字段的主要属性,如名称、别名,字段的值域,字段的类型等。
Feature:是要素类中一条记录,主要接口是IFeature,定义了要素对象特有的属性。IFeature ::get_Value(i)可以获得索引值为i的要素的属性值。通过循环就可以获得所有属性值。
IFeatureCursor:接口可用来访问要素类的一系列要素。虽然它没有继承ICursor接口,但它的操作和ICursor一样。
Cursor:存储在内存中的来自于一个Table或者featureclass的记录集合。Cursor对象允许在一个单个对象中管理记录集,单个移动对象,不允许返回以前的位置。NextRow,NextFeature方法第一次调用时,实际指向第一条记录,之后每一次调用都是指向下一条记录。使用Newrow 或 NewFeature将返回nothing,指示目前已经在Cursor的末尾。
Cursor 与 FeatureCursor
(1)Cursor:用于操作Table(存储在传统数据库中的记录子集),Table对象用于产生一个Cursor类的实例;
(2)FeatureCursor: 用于操作FeatureClass(地理数据集:shapefile,personal geodatabase,enterprise geodatabase)。FeatureClass对象用于产生一个FeatureCursor类的实例。
QueryFilter 与 SpatialFilter
QueryFilter 和 SpatialFilter都是组件类。QueryFilter 用于属性查询,可以在内存中产生用于限制记录子集的对象。SpatialFilter是空间查询。空间查询只能用于FeatureClass,它是一种QueryFilter ,可以访问其所有的属性和方法,因而可以使用QueryFilter 的whereClass属性来绑定空间的属性限制。
转载自:https://blog.csdn.net/guozhiqiang_1984/article/details/82499306