ArcGIS中对Feature的操作
时间:2010-09-29 来源:hl3292
http://www.51csharp.net/a/GIS/2009/1104/143.html
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主要是用来分割几何型体的,通过点分割线,通过多义线分割多边形,分割后旧的被删除,新的要素自动产生。因为每个要素都有对应的属性,要素改变了,其对应的属性也相应的要改变。 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 (责任编辑:51CSharp.net)
|