阅读背景:

arcengine 使用gp 实现union功能

来源:互联网 
 Geoprocessor geoprocessor = new Geoprocessor();
            geoprocessor.OverwriteOutput = true;
            ESRI.ArcGIS.AnalysisTools.Union union = new ESRI.ArcGIS.AnalysisTools.Union();

            IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();//对两个要素类进行相交运算
            gpValueTableObject.SetColumns(2);
            IFeatureClass pFeatureClass1 = ((FeatureLayer)GetLayerByName(ComboBoxLayer1.SelectedItem.ToString())).FeatureClass;
            IFeatureClass pFeatureClass2 = ((FeatureLayer)GetLayerByName(ComboBoxLayer2.SelectedItem.ToString())).FeatureClass;
            object o1 = pFeatureClass1;//输入IFeatureClass 1 
            object o2 = pFeatureClass2;//输入IFeatureClass 2 
            gpValueTableObject.AddRow(ref o1);
            gpValueTableObject.AddRow(ref o2);
            union.in_features = gpValueTableObject;
            union.out_feature_class = textBox3.Text;
            geoprocessor.Execute(union, null);

            IWorkspaceFactory pWorkspaceFactory;
            IFeatureWorkspace pFeatureWorkspace;
            IFeatureLayer pFeatureLayer;

            string pFullPath = textBox3.Text;
            if (pFullPath == "") return;

            int pIndex = pFullPath.LastIndexOf("\");
            string pFilePath = pFullPath.Substring(0, pIndex); //文件路径
            string pFileName = pFullPath.Substring(pIndex + 1); //文件名

            //实例化ShapefileWorkspaceFactory工作空间,打开Shape文件
            pWorkspaceFactory = new ShapefileWorkspaceFactory();
            pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath, 0);
            //创建并实例化要素集
            IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pFileName);
            pFeatureLayer = new FeatureLayer();
            pFeatureLayer.FeatureClass = pFeatureClass;
            pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
            map.AddLayer(pFeatureLayer); Geoprocessor geoprocessor = new Geoprocessor()



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: