创建、添加字段IFields

转载自:http://blog.sina.com.cn/s/blog_84f7fbbb010199gx.html

从ACCESS读取数据到ArcGIS个人数据库并创建Feature Class(point)

转载:http://www.cnblogs.com/qiushuixizhao/p/3242685.html

如何创建一个要素数据类 IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口

如何创建一个要素数据类 
创建要素类用到了IFeatureWorkspace.CreateFeatureClass方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口. 
IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口 
字段对应表中的一列,一个要素类必须有至少2个字段,而多个字段的集合就构成了字段集,在要素类中,有一个特殊的字段,描述了空间对象,我们称之为几何字段,其中GeometryDef是用来设计几何字段的。这个几何字段定义了要素类的类型,比如说我们要在Catalog创建一个点要素类,那么我们必须指定他的类型为Point。

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

IGeometryDefEdit Interface接口

Members

 Description
  AvgNumPoints The estimated average number of points per feature.
  AvgNumPoints The estimated average number of points per feature.
  GeometryType The enumerated geometry type.
  GeometryType The geometry type.
  GridCount The number of spatial index grids.
  GridCount The number of spatial index grids.
  GridSize The size of a spatial index grid.
  GridSize The size of a spatial index grid.
  HasM Indicates if the feature class has measure (M) values.
  HasM Indicates if the feature class will support M values.
  HasZ Indicates if the feature class will support Z values.
  HasZ Indicates if the featureClass has Z values.
  SpatialReference The spatial reference for the dataset.
  SpatialReference The spatial reference of the dataset.

 

//定义一个几何字段,类型为点类型 
 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:arcgisEngines.mdb", 0) as 
IFeatureWorkspace; 


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

 创建字段

方法一:IQueryFilter接口

Description
IQueryFilterfilters data based on an attribute query. A string defining a where clause is required. An optional list of columns may be included to specify the column values to be retrieved. If no columns are specified, all values will be returned.

When To Use
When you need to filter data based on attribute values or the relationships between attributes.

Members

Method         AddField          Appends a single field name to the list of sub-fields.
Read/write property   OutputSpatialReference     The spatial reference in which to output geometry for a given field.
Read/write property   SubFields          The comma delimited list of field names for the filter.
Read/write property   WhereClause        The where clause for the filter.


 


原文地址:https://www.cnblogs.com/marvelousone/p/7457436.html