zoukankan      html  css  js  c++  java
  • ArcEngine创建要素类01

    单独生成要素类:

            public IFeatureClass CreateStandaloneFeatureClass(IWorkspace workspace, String
        featureClassName, IFields fieldsCollection, String shapeFieldName)
            {
                IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
                IFeatureClassDescription fcDesc = new FeatureClassDescriptionClass();
                IObjectClassDescription ocDesc = (IObjectClassDescription)fcDesc;
                // Use IFieldChecker to create a validated fields collection.
                IFieldChecker fieldChecker = new FieldCheckerClass();
                IEnumFieldError enumFieldError = null; IFields validatedFields = null;
                fieldChecker.ValidateWorkspace = workspace;
                fieldChecker.Validate(fieldsCollection, out enumFieldError, out validatedFields);
                // The enumFieldError enumerator can be inspected at this point to determine 
                // which fields were modified during validation.
                IFeatureClass featureClass = featureWorkspace.CreateFeatureClass
                    (featureClassName, validatedFields, ocDesc.InstanceCLSID,
                    ocDesc.ClassExtensionCLSID, esriFeatureType.esriFTSimple, shapeFieldName, ""); 
                return featureClass;
            }

    在要素集中添加要素类:

            public IFeatureClass CreateFeatureDatasetFeatureClass(IFeatureDataset featureDataset,
                String featureClassName, IFields fieldsCollection, String shapeFieldName)
            {
                IFeatureClassDescription fcDesc = new FeatureClassDescriptionClass();
                IObjectClassDescription ocDesc = (IObjectClassDescription)fcDesc;
    
                // Use IFieldChecker to create a validated fields collection.
                IFieldChecker fieldChecker = new FieldCheckerClass();
                IEnumFieldError enumFieldError = null;
                IFields validatedFields = null;
                fieldChecker.ValidateWorkspace = featureDataset.Workspace;
                fieldChecker.Validate(fieldsCollection, out enumFieldError, out validatedFields);
    
                // The enumFieldError enumerator can be inspected at this point to determine 
                // which fields were modified during validation.
                IFeatureClass featureClass = featureDataset.CreateFeatureClass(featureClassName,
                    validatedFields, ocDesc.InstanceCLSID, ocDesc.ClassExtensionCLSID,
                    esriFeatureType.esriFTSimple, fcDesc.ShapeFieldName, "");
                return featureClass;
            }

     创建不同类型的要素类:

    可以修改,主要是修改validatedFields,IFields字段有一个是关于要素类几何类型的,比如:
    IGeometryDef pGeoDef = new GeometryDefClass();
                IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
                pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;  //指定创建的要素类的要素类型
                pGeoDefEdit.SpatialReference_2 = spatialReference;  //设置要素类的空间参考
               // pSpatialReference.SetDomain(0, 99999999, 0, 9999999);
                //定义一个字段集合对象
                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;          
                pFieldEdit.GeometryDef_2 = pGeoDef;
      pFieldsEdit.AddField(pField);
    本博客有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
  • 相关阅读:
    frame框架 超链接
    SQL与ASP日期时间
    J2EE开发环境搭建(3)——保存你搭建好的J2EE开发环境
    td.moveRow方法
    SQL Management Studio Express 安装缺少MSXML6解决
    js tr onmouseover时改变该行背景色
    doc 解决windows系统中名字为eula的文件无法被删除
    js select 隐藏option
    LLBLGen的数据库相对应SQL语句实现方法收藏
    使用 DataAdapter 更新数据源
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/5578320.html
Copyright © 2011-2022 走看看