ArcGIS Engine 10 开发手册(4-8)创建一个要素数据类

本文目录
  • 正文

创建要素类用到了 IFeatureWorkspace.CreateFeatureClass 方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口。

IField,IFieldEdit,IFields,IFieldsEdit,IGeometryDef, IGeometryDefEdit接口

字段对应表中的一列,一个要素类必须有至少 2 个字段,而多个字段的集合就构成了字段集,在要素类中,有一个特殊的字段,描述了空间对象,我们称之为几何字段,其中 GeometryDef 是用来设计几何字段的。这个几何字段定义了要素类的类型, 比如说我们要在 Catalog 创建一个点要素类,那么我们必须指定
他的类型为 Point,如下图:

而上面这 6 个接口,其实是三类,以 Edit 结尾的接口是可写的,也就是说对字段,字段集合,以及几何字段的编辑都是通过后者完成的。空间数据的一个重要属性就是参考系,参考系也是在 GeometryDef 中定义的。

**注意 在 .NET 中,会遇到以“_2”结尾的属性,这些属性是可写的。**

//定义一个几何字段,类型为点类型

ISpatialReference pSpatialReference = axMapControl1.ActiveView.FocusMap.SpatialReference;

IGeometryDefEdit pGeoDef = new GeometryDefClass ();
IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;
pGeoDefEdit.SpatialReference_2 = pSpatialReference;

//定义一个字段集合对象

IFields pFields = new FieldsClass ();
IFieldsEdit pFieldsEdit = (IFieldsEdit) pFields;

//定义单个的字段

IField pField = new FieldClass ();
IFieldEdit pFieldEdit = (IFieldEdit) pField;
pFieldEdit.Name_2 = "SHAPE";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;
pFieldsEdit.AddField (pField);

pFieldEdit.GeometryDef_2 = pGeoDef;

//定义单个的字段,并添加到字段集合中 
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "STCD";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);

//定义单个的字段,并添加到字段集合中 
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField; 
pFieldEdit.Name_2 = "SLM10";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);

//定义单个的字段,并添加到字段集合中 
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField; 
pFieldEdit.Name_2 = "SLM20";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);

//定义单个的字段,并添加到字段集合中 
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField; 
pFieldEdit.Name_2 = "SLM40";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);

IWorkspaceFactory pFtWsFct = new AccessWorkspaceFactory ();
IFeatureWorkspace pWs = pFtWsFct.OpenFromFile (@"E:\arcgis\Engine\s.mdb", 0) as IFeatureWorkspace;

IFeatureClass pFtClass = pWs.CreateFeatureClass ("Test",pFields, null, null, esriFeatureType.esriFTSimple, "SHAPE",null)

运行结果

结果如下:

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论