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);
  • 相关阅读:
    亚马逊的客户服务和承诺
    亚马逊云主管:我们有可能成为全世界最大的企业公司
    阿里市值超越亚马逊 马云开启下半场技术理想
    股价飙升500倍,市值超过4700亿美元,从网络书店起家的亚马逊凭什么一飞冲天?
    美国女子不断收到中国神秘快递,背后原因竟是刷单
    亚马逊称网络星期一成公司史上“最大的购物日
    万众创业葬送了多少人的前程
    日本企业遭遇严重用工短缺
    培生同意以3亿美元出售华尔街英语
    亚马逊500多名欧洲员工宣布在“黑色星期五”罢工
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1406265.html
Copyright © 2011-2022 走看看