麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

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 开发手册

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)