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,并注明来自博客园。
  • 相关阅读:
    Makefile学习(二)条件判断和内嵌函数
    Makefile学习(一)变量
    ZigBee心电传输(二)
    ZigBee心电传输(一)
    Zedboard甲诊opencv图像处理(四)
    Zedboard甲诊opencv图像处理(三)
    Zedboard甲诊opencv图像处理(二)
    linux的几个彩蛋
    Git
    lua
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/5578320.html
Copyright © 2011-2022 走看看