zoukankan      html  css  js  c++  java
  • ArcEngine在个人地理数据库下创建要素类

    //例如,personalDBPath=@"E: empTestDB.mdb", featureClassName="newF"
    public void CreateFeatureClass(string personalDBPath, string featureClassName)
    {

    //创建地理坐标系对象
    ISpatialReferenceFactory spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
    ISpatialReference spatialReference = spatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(@"E: empSuzhou_1954_3_Degree_GK_CM_120E.prj");//.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);

    ESRI.ArcGIS.Geodatabase.IGeometryDef geoDef = new ESRI.ArcGIS.Geodatabase.GeometryDefClass();
    ESRI.ArcGIS.Geodatabase.IGeometryDefEdit geoEdit = (ESRI.ArcGIS.Geodatabase.IGeometryDefEdit)geoDef;
    geoEdit.GeometryType_2 = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon;
    geoEdit.SpatialReference_2 = spatialReference;

    //字段集.
    ESRI.ArcGIS.Geodatabase.IFields fields = new ESRI.ArcGIS.Geodatabase.FieldsClass();
    ESRI.ArcGIS.Geodatabase.IFieldsEdit fieldsEdit = (ESRI.ArcGIS.Geodatabase.IFieldsEdit)fields;

    //逐一添加字段.

    ESRI.ArcGIS.Geodatabase.IField field = new ESRI.ArcGIS.Geodatabase.FieldClass();
    ESRI.ArcGIS.Geodatabase.IFieldEdit fieldEdit = (ESRI.ArcGIS.Geodatabase.IFieldEdit)field;
    fieldEdit.Name_2 = "SHAPE";
    fieldEdit.Type_2 = ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeGeometry;
    fieldEdit.GeometryDef_2 = geoDef;
    fieldsEdit.AddField(field);

    field = new ESRI.ArcGIS.Geodatabase.FieldClass();
    fieldEdit = (ESRI.ArcGIS.Geodatabase.IFieldEdit)field;
    fieldEdit.Name_2 = "WKT";
    fieldEdit.Type_2 = ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeString;
    fieldsEdit.AddField(field);

    field = new ESRI.ArcGIS.Geodatabase.FieldClass();
    fieldEdit = (ESRI.ArcGIS.Geodatabase.IFieldEdit)field;
    fieldEdit.Name_2 = "SLM10";
    fieldEdit.Type_2 = ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeString;
    fieldsEdit.AddField(field);

    field = new ESRI.ArcGIS.Geodatabase.FieldClass();
    fieldEdit = (ESRI.ArcGIS.Geodatabase.IFieldEdit)field;
    fieldEdit.Name_2 = "SLM20";
    fieldEdit.Type_2 = ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeString;
    fieldsEdit.AddField(field);

    field = new ESRI.ArcGIS.Geodatabase.FieldClass();
    fieldEdit = (ESRI.ArcGIS.Geodatabase.IFieldEdit)field;
    fieldEdit.Name_2 = "SLM40";
    fieldEdit.Type_2 = ESRI.ArcGIS.Geodatabase.esriFieldType.esriFieldTypeString;
    fieldsEdit.AddField(field);

    //通过已有工作空间创建.
    ESRI.ArcGIS.Geodatabase.IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactory();
    ESRI.ArcGIS.Geodatabase.IFeatureWorkspace fws = (ESRI.ArcGIS.Geodatabase.IFeatureWorkspace)wsf.OpenFromFile(personalDBPath, 0);
    ESRI.ArcGIS.Geodatabase.IFeatureClass fc = fws.CreateFeatureClass(featureClassName, fields, null, null, ESRI.ArcGIS.Geodatabase.esriFeatureType.esriFTSimple, "SHAPE", null);
    }

  • 相关阅读:
    python调用函数实现数据的增删改查(1)
    VA Code编写html(1)
    python 跑服务器,访问自己制作的简单页面
    python调用函数实现数据的增删改查(2)
    VS Code编写html(2)
    python编写简单的html登陆页面(4)
    python编写简单的html登陆页面(1)
    虚拟机端口映射!
    VIM 主题管理
    Vim 窗口管理插件
  • 原文地址:https://www.cnblogs.com/khfang/p/7685285.html
Copyright © 2011-2022 走看看