GP工具调用
GP工具调用有两种方法,一种返回IGeoProcessorResult结果,一种不返回IGeoProcessorResult类型结果:
1、返回IGeoProcessorResult结果,通过IGeoProcessorResult的状态属性获取当前GP工具分析状态(成功||失败):
ESRI.ArcGIS.AnalysisTools.Buffer buffer = new ESRI.ArcGIS.AnalysisTools.Buffer(layer, txtOutputPath.Text, Convert.ToString(bufferDistance) + ” ” + (string)cboUnits.SelectedItem);
//execute the buffer tool (very easy :-))
IGeoProcessorResult results = (IGeoProcessorResult)gp.Execute(buffer, null);
if (results.Status != esriJobStatus.esriJobSucceeded)
{
txtMessages.Text += “Failed to buffer layer: ” + layer.Name + “\r\n”;
}
2、
private static void RunTool(Geoprocessor geoprocessor, IGPProcess process, ITrackCancel TC)//RunGPTool方法
{
// Set the overwrite output option to true
geoprocessor.OverwriteOutput = true;
// Execute the tool
try
{
geoprocessor.Execute(process, null);
ReturnMessages(geoprocessor);
}
catch (Exception err)
{
Console.WriteLine(err.Message);
ReturnMessages(geoprocessor);
}
}
Geoprocessor GP = new Geoprocessor();
// Initialize the MakeFeatureLayer tool
MakeFeatureLayer makefeaturelayer = new MakeFeatureLayer();
makefeaturelayer.in_features = @”C:\gp\nfld.gdb\wells”;
makefeaturelayer.out_layer = “Wells_Lyr”;
RunTool(GP, makefeaturelayer, null);
第一种有时会弹出错误,对COM对象调用错误等,相对来说第二种相对安全;
对GP工具的属性设置的时候,最好采用@”C:\gp\nfld.gdb\wells”路径样式。
转载自:https://blog.csdn.net/zhushuaibing/article/details/40191927