AE+C# 实现MERGE, AE实现相同结构图层的合并C#代码(转载)

it2024-12-07  18

AE+C# 实现MERGE

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

转自:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=27749&extra=page%3D3

        

The WorkspaceFactoryProgID identifies the ProgID of the WorkspaceFactory object that is used to open that particular workspace.

Here is a list of some of the possible WorkspaceFactoryProgIDs:

esriDataSourcesGDB.AccessWorkspaceFactoryesriDataSourcesFile.ArcInfoWorkspaceFactoryesriDataSourcesFile.CadWorkspaceFactoryesriDataSourcesGDB.FileGDBWorkspaceFactoryesriDataSourcesOleDB.OLEDBWorkspaceFactoryesriDataSourcesFile.PCCoverageWorkspaceFactoryesriDataSourcesRaster.RasterWorkspaceFactoryesriDataSourcesGDB.SdeWorkspaceFactoryesriDataSourcesFile.ShapefileWorkspaceFactoryesriDataSourcesOleDB.TextFileWorkspaceFactoryesriDataSourcesFile.TinWorkspaceFactoryesriDataSourcesFile.VpfWorkspaceFactory

 

转载于:https://www.cnblogs.com/wuhenke/archive/2010/01/25/1656276.html

相关资源:数据结构—成绩单生成器
最新回复(0)