zoukankan      html  css  js  c++  java
  • AE实现不同图层的合并C#代码

    今天在单位做图层合并的工作,刚开始找不到相应的接口,现在解决了,放出来与大家共享
    本程序实现了对具有同类型数据结构的shapefile的图层合并,并在MapControl中显示.
                ILayer pLayer;
                IFeatureLayer pFeatureLayer;
                IFeatureClass pFeatureClass;
                IWorkspaceName pNewWSName;
                IBasicGeoprocessor pBasicGeop;
                IFeatureClassName pFeatureClassName;
                IDatasetName pDatasetName;
                IFeatureClass pOutputFeatClass;
                IFeatureLayer pOutputFeatLayer;
                IArray pArray;
                ITable pTable;
                //合并图层的集合
                pArray = new ArrayClass();
                for (int i = 0; i < this.axMapcontrol1.LayerCount;i++ )
                {
                    pLayer = this.MapC_main.get_Layer(i);
                    pArray.Add(pLayer);
                }
                //定义输出图层的fields表
                pLayer = this.MapC_main.get_Layer(0);
                pTable = (ITable)pLayer;
                pFeatureLayer=(IFeatureLayer)pLayer;
                pFeatureClass = pFeatureLayer.FeatureClass;
                //判断图层是否大于2个
                if(this..axMapcontrol1.LayerCount< 2){
                    MessageBox.Show("Table QI failed");
                    return;
                }
                //输出文件类型
                pFeatureClassName = new FeatureClassNameClass();
                pFeatureClassName.FeatureType = esriFeatureType.esriFTSimple;
                pFeatureClassName.ShapeFieldName = "Shape";
                pFeatureClassName.ShapeType = pFeatureClass.ShapeType;
                //输出shapefile的名称和位置
                pNewWSName = new WorkspaceNameClass();
                pNewWSName.WorkspaceFactoryProgID="esriDataSourcesFile.ShapefileWorkspaceFactory";
                pNewWSName.PathName = "E:\\Cshape";
                pDatasetName = (IDatasetName)pFeatureClassName;
                pDatasetName.Name = "Union_result_1";
                pDatasetName.WorkspaceName = pNewWSName;
               
                //合并图层
                pBasicGeop = new BasicGeoprocessorClass();
                pOutputFeatClass=pBasicGeop.Merge(pArray,pTable,pFeatureClassName);
                //Add the output layer to the map
                pOutputFeatLayer = new FeatureLayerClass();
                pOutputFeatLayer.FeatureClass = pOutputFeatClass;
                pOutputFeatLayer.Name = pOutputFeatClass.AliasName;
                this..axMapcontrol1.AddLayer(pOutputFeatLayer as ILayer, 0);

  • 相关阅读:
    js 中for forEach map some every的区别
    2019.3.27面试
    js中的继承
    关于iPhone手机上的浏览器、微信内置浏览器不识别yyyy-mm-dd格式的时间显示为NaN问题
    一个有关ajax去获取天气预报然后用echarts展现出来的小demo
    js中var和let的快速区别
    配置服务器-------------适合小白和从未接触过服务器的人阅读
    .net core 响应的json数据驼峰显示问题。
    asp .net core中swagger的简单使用
    关于修改.net core webapi中null默认返回的状态码。
  • 原文地址:https://www.cnblogs.com/cuiguanghe/p/2963654.html
Copyright © 2011-2022 走看看