ARCEngine创建要素类(以点为例)

本文档详细介绍了如何使用C#编程在ARCEngine中创建要素类,特别是点要素类。通过获取空间参考,开启几何编辑,设置要素类类型,设置字段集合等一系列步骤,最终在工作空间中成功创建要素类。
摘要由CSDN通过智能技术生成

思路:获取空间参考——>打开几何编辑——>设置要素类类型(点、线、面)——>设置空间参考——>设置字段集合——>定义单个集合,并添加到字段集合中——>打开工作空间创建要素类

一. 创建点要素类
在工作空间中建立:

        /// <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 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不秃头的LT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值