ArcGIS中对Feature的操作

1、Feature的概念  

   Feature是二次开发中最常用的对象,feature是featureclass中一个记录,从object中派生出来的,因此也具有属性和方法,object又是从row中派生的,所以featureclass其实一张表,featured就是表中的一条记录,feature可以保存空间数据对象,要素中的几何型体对象定义了要素的类型,它可以保存的几何型体对象有点、点集、多边形、多义线。这些都是些简单的要素对象,在有些情况下要素还可以参与拓扑、网络运算。

2、Feature相关接口

   Feature有派生出很多类,如:networkfeature、rastercatalogfeature、coverageannotationfeature、annotationfeature imensionfeature。feature的主要接口是Ifeature,其中的Extent用来返回要素对象的包络线,显示要素的空间范围;Featuretype返回要素的类型;Shape返回要素的几何型体对象;ShapeCopy得到几何型体对象的一个拷贝。

    IfeatureBuffer中的Shape得到缓冲要素的几何型体对象。

    IfeatureEdit中MoveSet、RotateSet、DeleteSet分别是移动、旋转、删除一个或者是多个要素组成的要素集上。Split主要是用来分割几何型体的,通过点分割线,通过多义线分割多边形,分割后旧的被删除,新的要素自动产生。因为每个要素都有对应的属性,要素改变了,其对应的属性也相应的要改变。
    Splitattributes就是用来分割要素属性字段中的值。该方法可以在Split方法执行后自动执行。

    IfeatureDraw中的InvalidArea属性得到一个绘画的区域。Draw在显示设备上绘制要素。

    IfeatureChanges中OriginalShape得到要素的最初几何类型,ShapeChanged指示要素的几何类型是否改变。

    IfeatureSimplify中的SimplifyGeometry按照该要素的拓扑规则进行拓扑一致。

3、Feature的编辑操作

     对Feature的编辑分为以下几个部分:

    1.新建,

    2.修改,

    3.删除。

    涉及到的接口有以下几个:IWorkspaceEdit、IFeatureClass、IFeatureCursor、IFeature。其中IWorkspaceEdit用于启动编辑以开始编辑操作,结束编辑操作以结束编辑。IFeatureClass 是数据的所在地,IFeatureCursor 是一个游标提供访问数据的接口和修改数据的接口,IFeature 是对象的代表我们要编辑的目标。 编辑的过程如下:
1.添加一个Feature
   //假设space是一个IWorkspaceEdit
   //参数表示是否需要使用Undo/Redo功能,该功能的粒度是EditOperator.
   spaceEdit.StartEditing(false);
   spaceEdit.StartEditOperator();
   //添加一个Feature
   IFeature newFea=feaClass.createFeature();
   //为Feature 添加属性设置图形
   newFea.Store();//保存属性和图形
   spaceEdit.StopEditOperator();//结束编辑操作
   //结束编辑过程
   //参数表示是否保存编辑
   spaceEdit.StopEditing(true);
2.添加多个Feature
  添加多个Feature也可以向上面一样使用多次就可以了, 当然也可以使用IFeatureCursor来添加数据。
 3.修改Feature
   添加Feature中的修改属性和图形部分,每次修改后一定要调用Store方法这样变化才可以保存下来。
 4.删除 
   IFeatureCuror的DeleteFeature方法可以用来删除当前的Feature 。  
  注意事项
  1.不能设置Feature的OID
  2.不能设置Feature的Area
  3.不能设置Feature的Lenght 

猜你喜欢

转载自blog.csdn.net/Prince999999/article/details/80760876