• 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);
    版权说明

      如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
      作      者:温景良
      文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

  • 相关阅读:
    mysql-community-server-5.7.24 & 5.7.31 (5.6.35 升级到 5.7.24)
    企业 数据 能力 中台 大数据平台 CRM
    Tomcat日志切割配置
    你不知道的 Blob
    细说websocket快速重连机制
    DNS反向查询
    从安全的角度看待DNS
    LVS 负载均衡集群
    Linux服务器配置DNS解析
    react修改state的值
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1351973.html
Copyright © 2020-2023  润新知