ArcGIS Engine调用自定义GP服务(二)

首先将GP服务的工具箱放到程序中


1.在程序工程中添加GP工具箱

     //定义GeoProcessor对象
            Geoprocessor gp = new Geoprocessor();
            //IGeoProcessor2 gp = new GeoProcessorClass();
            //设置参数
            gp.OverwriteOutput = true;
            //设置工具箱所在的路径()
            string strPath = System.Windows.Forms.Application.StartupPath;
            gp.AddToolbox(strPath + "\\JGTool.tbx");

2.设置参数

 IVariantArray parameters = new VarArrayClass();
         
parameters.Add(Sdem.Text.ToString().Trim());
         parameters.Add(SDshp.Text.ToString().Trim());
         parameters.Add(DDfield.Text.ToString().Trim());
         parameters.Add(weight1.Text.ToString().Trim());
         parameters.Add(weight2.Text.ToString().Trim());
         parameters.Add("");
         parameters.Add("");
         parameters.Add("");
          //执行工具
         gp.Execute("Model3", parameters, null);

3.程序就可以顺利使用GP服务了。

解释一下,这里主要用了string strPath = System.Windows.Forms.Application.StartupPath;获取了程序启动时的路径,然后解决了绝对路径的问题,这样的程序可以顺利打包运行。

===================================================================================================================

ArcEngine开发中自定义工具箱的调用

ArcGIS Engine调用自定义GP服务(二)
       object sev = null;//用来标记处理信息
            //1-定义GeoProcessor对象
           // Geoprocessor gp = new Geoprocessor();
             IGeoProcessor2 gp = new GeoProcessorClass();
            //2-设置参数
            gp.OverwriteOutput = true;
            //3-设置工具箱所在的路径
            gp.AddToolbox(@"E:\Users\zheng\Desktop\tbx测试\mymodel.tbx");
            //4-设置输入参数
            IVariantArray parameters = new VarArrayClass();
            parameters.Add(@"E:\Users\zheng\Desktop\新建文件夹\Chp12\Ex1\DEM\aaaaaaaaaaaa\mmmmmm.shp");
          //  parameters.Add("45");
          //  parameters.Add("225");
            parameters.Add(@"E:\Users\zheng\Desktop\新建文件夹\Chp12\Ex1\DEM\dem50");

            //5-执行工具
            try
            {
            gp.Execute("Model", parameters, null);
             }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                MessageBox.Show(gp.GetMessages(ref sev).ToString());
            }
ArcGIS Engine调用自定义GP服务(二)

 注意:在使用的过程中必须确保输入参数和输出参数的正确,参数的顺序也必须与模型运行时显示的对话框的顺序相同。一般情况下参数都为字符串。特别注意的一点,在一台机子上运行没问题的模型(在ArcGIS以及自己开发的程序中),移植到另外的机子上时,可能以及肯定会出现问题,一般为文件路径不正确、找不到文件。所以需要注意把模型的过程文件的存储地址进行设置,默认是在 C盘 ArcGIs的default.gdb下,移植时需要重新定义已存在的路径。目前程序开发中暂未找到设置模型操作环境的处理…………






相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
  • 2021-09-21
猜你喜欢
  • 2021-09-06
  • 2022-12-23
  • 2021-09-04
  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
  • 2021-07-22
相关资源
相似解决方案