关于调用ArcGIS中GP工具.Erase、SymDiff C#开发
时间: 2024-01-28 13:05:46 浏览: 161
ShapeHelper.zip_ArcGIS二次开发_arcengine C#
好的,关于在C#开发中调用ArcGIS中GP工具Erase、SymDiff,您可以使用ArcObjects中的Geoprocessor对象来调用这些工具。以下是示例代码:
```csharp
using ESRI.ArcGIS.Geoprocessor;
using ESRI.ArcGIS.AnalysisTools;
using ESRI.ArcGIS.Carto;
// 获取当前地图文档
IMapDocument mapDocument = new MapDocumentClass();
mapDocument.Open(@"C:\data\map.mxd");
IMap map = mapDocument.ActiveView.FocusMap;
// 创建Geoprocessor对象
Geoprocessor gp = new Geoprocessor();
// 设置工作空间
gp.SetEnvironmentValue("workspace", @"C:\data");
// 定义输入要素和擦除要素
string in_features = @"C:\data\input.shp";
string erase_features = @"C:\data\erase.shp";
// 定义输出要素
string out_features = @"C:\data\output.shp";
// 创建Erase工具对象
Erase erase = new Erase();
erase.in_features = in_features;
erase.erase_features = erase_features;
erase.out_feature_class = out_features;
// 执行Erase工具
gp.Execute(erase, null);
// 定义输入要素
string in_features1 = @"C:\data\input1.shp";
string in_features2 = @"C:\data\input2.shp";
// 定义输出要素
string out_features2 = @"C:\data\output2.shp";
// 创建SymDiff工具对象
SymDiff symDiff = new SymDiff();
symDiff.in_features = in_features1 + ";" + in_features2;
symDiff.out_feature_class = out_features2;
// 执行SymDiff工具
gp.Execute(symDiff, null);
```
以上代码中,我们首先获取当前地图文档,然后创建Geoprocessor对象并设置工作空间。接着,我们分别定义输入要素和擦除要素,以及输出要素,并创建Erase工具对象和SymDiff工具对象。最后,我们通过执行Geoprocessor对象的Execute方法来执行这些工具。
希望这个示例代码可以帮助您完成在C#开发中调用ArcGIS中GP工具Erase、SymDiff的任务。
阅读全文