IFeatureCursor

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);

猜你喜欢

转载自blog.csdn.net/guozhiqiang_1984/article/details/85046716