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

  • 相关阅读:
    linux安装tmux分屏插件
    美化linux客户端zsh和oh-my-zsh
    使用Feign通过服务名调用服务,找不到服务
    Docker Compose 配置文件详解
    Dockerfile构建jar镜像
    Mysql数据库主从同步
    【Java】Java划水练习
    【2-SAT】Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) D. Innokenty and a Football League
    【贪心】【DFS】Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) C. Andryusha and Colored Balloons
    【三分】Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) B. The Meeting Place Cannot Be Changed
  • 原文地址:https://www.cnblogs.com/cuiguanghe/p/2963654.html
Copyright © 2011-2022 走看看