• Merage


    AE+C# 实现MERGE,

    代码参考ESRI中国社区,忘了哪个帖子了。。。
    代码中路径等直接写上去了

                //合并图层的集合
                ILayer pLayer;
                IArray pArray;
                pArray 
    = new ArrayClass();
                
    for (int i = 0; i < this.axMapControl1.LayerCount; i++)
                 
    {
                    pLayer 
    = this.axMapControl1.get_Layer(i);
                    pArray.Add(pLayer);
                   }

                
    //定义输出图层的fields表

                ITable pTable;
                IFeatureLayer pFeatureLayer;
                IFeatureClass pFeatureClass;
                pLayer 
    = this.axMapControl1.get_Layer(0);
                pTable 
    = (ITable)pLayer;
                pFeatureLayer
    =(IFeatureLayer)pLayer;
                pFeatureClass 
    = pFeatureLayer.FeatureClass;

                
    //判断图层是否大于2个
                if(this.axMapControl1.LayerCount< 2)
                
    {
                    MessageBox.Show(
    "Table QI failed");
                    
    return;
                  }


                
    //输出文件类型
                IFeatureClassName pFeatureClassName;
                IDatasetName pDatasetName;
                IWorkspaceName pNewWSName;
                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:\\data";
                pDatasetName = (IDatasetName)pFeatureClassName;
                pDatasetName.Name 
    = "Merge_result";
                pDatasetName.WorkspaceName 
    = pNewWSName;
                
                
    //合并图层
                IFeatureClass pOutputFeatClass;
                IBasicGeoprocessor pBasicGeop;
                pBasicGeop 
    = new BasicGeoprocessorClass();
                pOutputFeatClass
    =pBasicGeop.Merge(pArray,pTable,pFeatureClassName);

                
    //将合并后的图层加载到Map中
                IFeatureLayer pOutputFeatLayer;
                pOutputFeatLayer 
    = new FeatureLayerClass();
               pOutputFeatLayer.FeatureClass 
    = pOutputFeatClass;
                pOutputFeatLayer.Name 
    = pOutputFeatClass.AliasName;
                
    this.axMapControl1.AddLayer(pOutputFeatLayer as ILayer, 0);
  • 相关阅读:
    Go 指针
    Go 字符串
    Go Maps
    Go 可变参数函数
    Go 数组和切片
    pyqt5实现窗口跳转并关闭上一个窗口
    spy++查找窗口句柄
    Python中Tk模块简单窗口设计
    pyqt5无边框拖动
    pyqt5 GUI教程
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1406265.html
Copyright © 2020-2023  润新知