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


 

转载于:https://www.cnblogs.com/secenes/archive/2008/07/13/1242051.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值