IFeatureCursor

来源:互联网 发布:农村淘宝面试技巧 编辑:程序博客网 时间:2024/05/18 12:43
IFeatureCursor接口可用来访问要素类的一系列要素。虽然它没有继承ICursor接口,但它的操作和ICursor一样。

Cursor:存储在内存中的来自于一个Table或者featureclass的记录集合。Cursor对象允许在一个单个对象中管理记录集,单个移动对象,不允许返回以前的位置。NextRow,NextFeature方法第一次调用时,实际指向第一条记录,之后每一次调用都是指向下一条记录。使用Newrow 或 NewFeature将返回nothing,指示目前已经在Cursor的末尾。

Cursor   VS   FeatureCursor

Cursor:

         用于操作Table(存储在传统数据库中的记录子集),Table对象用于产生一个Cursor类的实例;

FeatureCursor:

        用于操作FeatureClass(地理数据集:shapefile,personal geodatabase,enterprise  geodatabase)

FeatureClass对象用于产生一个FeatureCursor类的实例.

其它的区分:QueryFilter  VS  SpatialFilter

      QueryFilter 和 SpatialFilter都是组件类。QueryFilter  用于属性查询,可以在内存中产生用于限制记录子集的对象。SpatialFilter是空间查询。空间查询只能用于FeatureClass,它是一种QueryFilter  ,可以访问其所有的属性和方法,因而可以使用QueryFilter  的whereClass属性来绑定空间的属性限制。

1     ISpatialFilter pSpatialFilter = new SpatialFilterClass();
2     pSpatialFilter.Geometry = pFloodPolygon;
3     pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
4     pSpatialFilter.WhereClause = "Prop_val>1000000";
5     pFCursor = pFLayer.Search(pSpatialFilter, true);

0 0