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

You may also like...