在ArcEngine中使用Geoprocessing工具-执行工具
来解析一下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工具-执行工具相关推荐
- 学习在 ArcEngine 中使用 Geoprocessing
作者:Flyingis Geoprocessing对于ArcGIS使用者来说,是一种非常方便实用的工具,它可以利用ArcToolbox中的各种工具为我们的地理空间工作流进行框架建模,自动执行空间分析与 ...
- arcgis里python窗口运行,在 Python 窗口中执行工具
当第一次打开 Python 窗口时,它会显示类似这样的界面: 左侧区域为 Python 的主提示窗口,在这里执行 Python 命令.右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息:输入代码 ...
- python的运行窗口-在 Python 窗口中执行工具
当第一次打开 Python 窗口时,它会显示类似这样的界面: 左侧区域为 Python 的主提示窗口,在这里执行 Python 命令.右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息:输入代码 ...
- 一个Java Web后台任务执行工具的设计与实现
一个Java Web后台任务执行工具的设计与实现 提到后台任务,最容易想到的恐怕就是Java 中的Timer或者大名鼎鼎的开源定时器Quartz,但是,从本质讲,他们都是定时器,以时间间隔严格的进行间 ...
- Windows命令远程执行工具Winexe
Windows命令远程执行工具Winexe 在对Windows系统执行渗透测试中,通过各种方式可以获取目标主机的用户名和密码.这时,只要对方主机开启文件共享服务,就可以借助Winexe工具远程执行Wi ...
- Spring Boot中自带的这些工具类,你用过几个?
最近发现同事写了不少重复的工具类,发现其中很多功能,Spring 自带的都有.于是整理了本文,希望能够帮助到大家! 断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1 ...
- python图片-Python中的十大图像处理工具
原标题:Python中的十大图像处理工具 导读:本文主要介绍了一些简单易懂最常用的Python图像处理库. 作者:Parul Pandey 来源:大数据文摘(ID:BigDataDigest) 当今世 ...
- Linux下几款C++程序中的内存泄露检查工具
Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++.最近用到STL中的List编程,为了检测写的代码是否会发现内存泄露,了解了一下相关的知识. 所有使用动态内存分配(dy ...
- axios源码中的10多个工具函数,值得一学~
大家好,我是若川.最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列> ...
最新文章
- 你玩的音游可能真是AI生成的,Love Live!工作室发了篇论文,用AI节省50%作谱时间...
- leetcode 482. 密钥格式化(Java版)
- 火狐浏览器插件HTTPFOX抓传输数据
- 训练集山准确率高测试集上准确率很低_推荐算法改版前的AB测试
- Android开发中依赖注入的应用
- android h5语音,html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia...
- UTF-16 -- 顶级程序员也会忽略的系统编码问题,JDK 错了十年!
- javascript判断日期奇偶_JavaScript_简介学习4
- github无法显示图片,其他一切正常的解决办法
- 从0-1背包问题到动态规划
- 你的不好意思,正在摧毁你
- 在iOS中获取UIView的所有层级结构 相关
- drawboard pdf拆分文件_Drawboard PDF 免费版
- 简约个性个人简历自我介绍PPT模板
- 虚拟机服务器系统蓝屏怎么办,虚拟机windows 2008 R2 系统蓝屏
- 博士申请 | 加拿大阿尔伯塔大学韩杰教授招收电子与计算机专业博士/博后
- 《DFC-Net:Deep Flow-Guided Video Inpainting》论文笔记
- 推荐10款一直在使用的Chrome提效插件
- 33岁,工作10年的老测试员被裁,所谓经验根本不值钱
- Redies未授权访问
热门文章
- 2017.3.17 激光炸弹 思考记录
- 【英语学习】【科学】【Glencoe Science】【C】Animal Diversity 目录及术语表
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- python最大公约数计算_使用Python求解最大公约数的实现方法
- Android:应用商城
- 写了8年的代码,做过的项目都下线了,程序员的意义在哪里!
- hbase_学习_01_HBase环境搭建(单机)
- Go搭建静态页面server笔记
- 心疼还在用Facebook的你一秒,Snapchat才是未来
- shell中判断远程主机的某个tcp端口是否存活