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);
    }

  • 相关阅读:
    SQL 增删字段
    html5.js 让所有IE支持HTML5
    Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
    Easyui 判断某个Div 里的表单项是否验证通过.
    基于restful注解(spring4.0.2整合flex+blazeds+spring-mvc)<一>
    swfupload js中 file 对象的属性
    JAVA , TOMCAT , AXIS2 环境变量配置
    Java synchronized详解
    Jackson 练习(一)
    【树莓派】树莓派网络配置:静态IP、无线网络、服务等
  • 原文地址:https://www.cnblogs.com/khfang/p/7685285.html
Copyright © 2011-2022 走看看