zoukankan      html  css  js  c++  java
  • AE 创建shp图层

    C#+AE中创建点状Shp文件

    今天将点写入一个新的SHP文件中,自己先做了一个简单试验,一切正常。代码如下

    private void CreateShpFromPoint()
            {
                ISpatialReference pSpatialReference = this.axMapData.ActiveView.FocusMap.SpatialReference;

                string strShapeFolder="C:/";
                string strShapeFile = "test.shp";

                string shapeFileFullName = strShapeFolder + strShapeFile;
                IWorkspaceFactory pWorkspaceFactory= new ShapefileWorkspaceFactory();
                IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace) pWorkspaceFactory.OpenFromFile(strShapeFolder, 0);
                IFeatureClass pFeatureClass;
                if (File.Exists(shapeFileFullName))
                {
                    pFeatureClass = pFeatureWorkspace.OpenFeatureClass(strShapeFile);
                    IDataset pDataset = (IDataset)pFeatureClass;
                    pDataset.Delete();
                }

                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;

                IGeometryDefEdit pGeoDef = new GeometryDefClass();
                IGeometryDefEdit pGeoDefEdit = (IGeometryDefEdit)pGeoDef;
                pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;
                pGeoDefEdit.SpatialReference_2 = pSpatialReference; //new UnknownCoordinateSystemClass();
                pFieldEdit.GeometryDef_2 = pGeoDef;
                pFieldsEdit.AddField(pField);

                pField = new FieldClass();
                pFieldEdit = (IFieldEdit)pField;
                pFieldEdit.Name_2 = "ID";
                pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
                pFieldsEdit.AddField(pField);
                
                pField = new FieldClass();
                pFieldEdit = (IFieldEdit)pField;
                pFieldEdit.Name_2 = "Pixels";
                pFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger;
                pFieldsEdit.AddField(pField);

                pFeatureClass = pFeatureWorkspace.CreateFeatureClass(strShapeFile, pFields, null, null, esriFeatureType.esriFTSimple, "SHAPE", "");
                IPoint pPoint = new PointClass();
                pPoint.X = 113.0;
                pPoint.Y = 23.0;
                IFeature pFeature = pFeatureClass.CreateFeature();
                pFeature.Shape = pPoint;
                pFeature.set_Value(pFeature.Fields.FindField("ID"), "D-1");
                pFeature.set_Value(pFeature.Fields.FindField("Pixels"), 1);
                pFeature.Store();

                IFeatureLayer pFeaturelayer = new FeatureLayerClass();
                pFeaturelayer.FeatureClass = pFeatureClass;
                pFeaturelayer.Name = "layer";

                this.axMapData.AddLayer(pFeaturelayer);

            }


    作者:jinqier
    出处:http://www.cnblogs.com/jinqier/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    自定义滚动条样式
    git相关操作
    mac添加hosts记录的步骤
    vue 中input框的blur事件和enter事件同时使用时,触发enter事件时blur事件也会被触发的方法解决
    VUE 子窗口如何调用父窗口的方法-- PC端项目
    小程序自定义tabbar的tabbar切换之后图标会闪烁情况处理
    微信小程序自定义tabbar
    js 数组和类数组的区别
    vue中私有样式(scoped)中修改其他组件的样式
    放大镜特效
  • 原文地址:https://www.cnblogs.com/jinqier/p/3104245.html
Copyright © 2011-2022 走看看