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开发中自定义工具箱的调用

复制代码
       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以及自己开发的程序中),移植到另外的机子上时,可能以及肯定会出现问题,一般为文件路径不正确、找不到文件。所以需要注意把模型的过程文件的存储地址进行设置,默认是在 C盘 ArcGIs的default.gdb下,移植时需要重新定义已存在的路径。目前程序开发中暂未找到设置模型操作环境的处理…………






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值