zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    字符,字符串,字节
    111
    串口通信
    字符编码
    枚举和结构体
    参数数组
    .Net垃圾回收机制
    try{ } catch{ } finally{ }
    LVS 工作原理图文讲解
    自动化运维工具—Ansible常用模块二
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1406265.html
Copyright © 2011-2022 走看看