思路:获取空间参考——>打开几何编辑——>设置要素类类型(点、线、面)——>设置空间参考——>设置字段集合——>定义单个集合,并添加到字段集合中——>打开工作空间创建要素类
一. 创建点要素类
在工作空间中建立:
/// <summary>
/// 创建独立要素类
/// </summary>
/// <param name="workspace">目标工作空间</param>
/// <param name="featureClassName">目标数据集名称</param>
/// <param name="fieldsCollection">字段集合</param>
/// <param name="shapeFieldName">几何字段名</param>
/// <returns></returns>
public IFeatureClass CreateStandaloneFeatureClass(IWorkspace workspace, string featureClassName, IFields pFields, string shapeFieldName)
{
if (pFields == null)
{
ISpatialReference pSpatialReference = axMapControl1.ActiveView.FocusMap.SpatialReference;
IGeometryDefEdit pGeoDef = new GeometryDefClass();
IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;//esriGeometryPolyline,esriGeometryPolygon
pGeoDefEdit.SpatialReference_2 = pSpatialReference;
//定义一个字段集合对象
pFields = new FieldsClass();
IFieldsEdit pFieldsEdit = (IFieldsEdit)pFields;
//定义单个的字段
IField pField = new FieldClass();
IFieldEdit pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "SHAPE";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;
pFieldEdit.GeometryDef_2 = pGeoDef;
pFieldsEdit.AddField(pField);
//定义单个的字段,并添加到字段集合中
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);
}
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
IFeatureClassDescription fcDesc =