来解析一下Geoprocessor类的Execute方法,他有两种重载,Execute(IGPProcess, ITrackCancel)和Execute(string, IVariantArray, ITrackCancel)。

Execute(IGPProcess, ITrackCancel) IGProcess是所有Geoprocessor工具类都实现了的接口,通过ITrackCancel接口能够处理用户发出的取消指令并进一步处理,暂时用不上,一般都用null直接代替了。 因此这种方式的执行流程如下: ESRI.ArcGIS.AnalysisTools.Buffer bufferTool = new ESRI.ArcGIS.AnalysisTools.Buffer(); GP.Execute(bufferTool, null);

Execute(string, IVariantArray, ITrackCancel) string即是这个GP工具的名字了,IVariantArray是esriSystem命名空间下的一个接口,提供对esriSystem数组类VarArrayClass的访问功能,该类提供执行GP所需的参数,通过上文,大概也应该猜到了,这个参数数组类的成员应该也是字符串,方法如下: GP.AddToolbox(@”C:\SanDiego\BestPath.tbx”); IVariantArray parameters = new VarArrayClass(); parameters.Add(@”C:\SanDiego\source.shp”); parameters.Add(@”C:\SanDiego\destination.shp”); parameters.Add(@”C:\SanDiego\bestpath.shp”); GP.Execute(“CalculateBestPath”, parameters, null);

好的,这两种方法该用在哪里这下都明白了,对于既有的Geopressing工具是第一种方法,对于自己制作的ArcToolBox则可以使用第二种方法来执行。(窃以为第二种方法的形式更为优雅一点。)

我们还有一种方法可以把自制的ArcToolBox在系统中声明为引用,从而以第一种方式执行。这种方法我目前想到的好处有一是保护了tbx文件(在发布的系统里面tbx文件会被编译成dll,从而保护了自定义模型的内部实现细节不被泄露),二是在不打开ArcGIS Desktop产品甚至不安装的情况就能了解该工具箱中包含哪些工具和模型,以及入参出参的情况。 添加的方法很简单,在Visual Studio集成开发环境菜单中,项目->Add ArcGIS ToolBox Reference,选中你需要的tbx文件,执行加载即可,然后的用法跟添加了既有的Geoprocessing Tools引用是一样的了。不过目前我遇到的问题是经常会出现加载不成功,提示有些工具不能加载,甚至是ArcGIS自带的那些tbx文件,但是还能用,这就比较诡异了,似乎是版本的问题,关于这个问题会继续追踪报道。

在ArcEngine中使用Geoprocessing工具-执行工具相关推荐

  1. 学习在 ArcEngine 中使用 Geoprocessing

    作者:Flyingis Geoprocessing对于ArcGIS使用者来说,是一种非常方便实用的工具,它可以利用ArcToolbox中的各种工具为我们的地理空间工作流进行框架建模,自动执行空间分析与 ...

  2. arcgis里python窗口运行,在 Python 窗口中执行工具

    当第一次打开 Python 窗口时,它会显示类似这样的界面: 左侧区域为 Python 的主提示窗口,在这里执行 Python 命令.右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息:输入代码 ...

  3. python的运行窗口-在 Python 窗口中执行工具

    当第一次打开 Python 窗口时,它会显示类似这样的界面: 左侧区域为 Python 的主提示窗口,在这里执行 Python 命令.右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息:输入代码 ...

  4. 一个Java Web后台任务执行工具的设计与实现

    一个Java Web后台任务执行工具的设计与实现 提到后台任务,最容易想到的恐怕就是Java 中的Timer或者大名鼎鼎的开源定时器Quartz,但是,从本质讲,他们都是定时器,以时间间隔严格的进行间 ...

  5. Windows命令远程执行工具Winexe

    Windows命令远程执行工具Winexe 在对Windows系统执行渗透测试中,通过各种方式可以获取目标主机的用户名和密码.这时,只要对方主机开启文件共享服务,就可以借助Winexe工具远程执行Wi ...

  6. Spring Boot中自带的这些工具类,你用过几个?

    最近发现同事写了不少重复的工具类,发现其中很多功能,Spring 自带的都有.于是整理了本文,希望能够帮助到大家! 断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1 ...

  7. python图片-Python中的十大图像处理工具

    原标题:Python中的十大图像处理工具 导读:本文主要介绍了一些简单易懂最常用的Python图像处理库. 作者:Parul Pandey 来源:大数据文摘(ID:BigDataDigest) 当今世 ...

  8. Linux下几款C++程序中的内存泄露检查工具

    Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++.最近用到STL中的List编程,为了检测写的代码是否会发现内存泄露,了解了一下相关的知识. 所有使用动态内存分配(dy ...

  9. axios源码中的10多个工具函数,值得一学~

    大家好,我是若川.最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列> ...

最新文章

  1. 你玩的音游可能真是AI生成的,Love Live!工作室发了篇论文,用AI节省50%作谱时间...
  2. leetcode 482. 密钥格式化(Java版)
  3. 火狐浏览器插件HTTPFOX抓传输数据
  4. 训练集山准确率高测试集上准确率很低_推荐算法改版前的AB测试
  5. Android开发中依赖注入的应用
  6. android h5语音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
  7. UTF-16 -- 顶级程序员也会忽略的系统编码问题,JDK 错了十年!
  8. javascript判断日期奇偶_JavaScript_简介学习4
  9. github无法显示图片,其他一切正常的解决办法
  10. 从0-1背包问题到动态规划
  11. 你的不好意思,正在摧毁你
  12. 在iOS中获取UIView的所有层级结构 相关
  13. drawboard pdf拆分文件_Drawboard PDF 免费版
  14. 简约个性个人简历自我介绍PPT模板
  15. 虚拟机服务器系统蓝屏怎么办,虚拟机windows 2008 R2 系统蓝屏
  16. 博士申请 | 加拿大阿尔伯塔大学韩杰教授招收电子与计算机专业博士/博后
  17. 《DFC-Net:Deep Flow-Guided Video Inpainting》论文笔记
  18. 推荐10款一直在使用的Chrome提效插件
  19. 33岁,工作10年的老测试员被裁,所谓经验根本不值钱
  20. Redies未授权访问

热门文章

  1. 2017.3.17 激光炸弹 思考记录
  2. 【英语学习】【科学】【Glencoe Science】【C】Animal Diversity 目录及术语表
  3. 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
  4. python最大公约数计算_使用Python求解最大公约数的实现方法
  5. Android:应用商城
  6. 写了8年的代码,做过的项目都下线了,程序员的意义在哪里!
  7. hbase_学习_01_HBase环境搭建(单机)
  8. Go搭建静态页面server笔记
  9. 心疼还在用Facebook的你一秒,Snapchat才是未来
  10. shell中判断远程主机的某个tcp端口是否存活