作者:Flyingis
ArcGIS使用者经常要面对大量的数据处理工作,如果要在自己的程序中使用Geoprocessing,更多的时候我们是要进行对数据进行批处理分析,Geoprocessing为我们提供了丰富的支持批处理的功能。
1.工作空间中查询所需数据
2.模型处理过程中各种输入、环境参数、字段映射的处理
3.枚举、循环执行
--------------------
1.工作空间中查询所需数据
要对数据进行批处理操作,首先需要知道工作空间中有哪些数据,怎么从工作空间大量数据中提取出我们所需要的数据。GeoProcessor类为我们提供了一些提取数据的方法。
listDatasets (string wildCard, string datasetType)
listFeatureClasses (string wildCard, string featureType, string dataset)
listRasters (string wildCard, string rasterType)
listTables (string wildCard, string tableType)
listToolboxes(string wildCard)
listWorkspaces (string wildCard, string workspaceType)
看看代码段怎么写:









通过指定wildCard字符串,搜索所有"c"开头的feature class,将结果存放在com.esri.arcgis.geoprocessing.IGpEnumList枚举List中。看到IGpEnumList千万不要将它和Java数据结构中各种List相提并论,它仅仅具有顺序枚举next和重置查询指针reset的功能,可以被序列化。
再参考另外两个例子,相信对在工作空间中查询数据会有更多的认识。
返回所有面状要素








返回所有TIF格式的Raster数据











关于各种list方法TYPE类型,可以参考下表
Method | Type Keywords |
ListDatasets | All, Feature, Coverage, RasterCatalog, CAD, VPF, TIN, Topology |
ListFeatureClasses | All, Point, Label, Node, Line, Arc, Route, Polygon, Region |
ListFields | All, SmallInteger, Integer, Single, Double, String, Date, OID, Geometry, Blob |
ListWorkspaces | All, Coverage, Access, SDE, Folder |
ListTables | All, dBASE, INFO |
ListRasters | All, ADRG, BIL, BIP, BSQ, BMP, CADRG, CIB, ERS, GIF, GIS, GRID, STACK, IMG, JPEG, LAN, SID, SDE, TIF, RAW, PNG, NITF |
2.模型处理过程中各种输入、环境参数的处理
Geoprocessing计算过程中会要求多个输入,通常可以用IGpEnumList来捕获。














另外,可以使用表结构来保存每个输入的参数值,避免全部feature保存在一个字符串中。





















3.枚举、循环执行
前面两点都是针对一个Geoprocessing操作而言,如果需要多个操作,可以用基本程序语言来描述,这分为两种情况,一是多种Geoprocessing的数据处理,一种是同一Geoprocessing循环执行,相比ArcToolbox而言,这里体现的是程序代码带给我们的方便。
Flyingis @ China
ArcToolbox每个工具执行之后,都会向Geoprocessor返回消息,包括操作何时开始,使用哪些参数,操作的进度,以及可能出现的问题和错误。消息的种类包括常规消息、警告、错误,GPMessage类可以包含消息的文本及严重等级。
首先,Geoprocessor.getMessage()方法可以捕获最后一个工具执行后返回的错误消息


如何使用GPMessage






可以看出,上面都是通过GeoProcessor的方法来获取消息,除此之外还可以使用IGeoProcessorResult接口,从功能上来说它们没有多少区别。







另外我们还可以自定义输出的方法,根据程序执行的过程,可以添加的方法有AddMessage、AddWarning、AddError。下面的示例将feature class从一个工作区复制到另外一个工作区,并跟踪显示每个文件复制的情况。







Flyingis @ China
HttpGet
MySQL重复数据
JS获取地址栏参数的方法
Java解析采集模块
按键精灵多机型定时秒杀综合版提交脚本
按键精灵手机版监控像素变换点击脚本
按键精灵手机版定时点击脚本
按键精灵获取系统时间定时点击
window时间服务器 国内可用
- 最新文章
-
0604-Zuul构建API Gateway-Zuul的回退
0603-Zuul构建API Gateway-通过Zuul上传文件,禁用Zuul的Filter
001-ant design pro 页面加载原理及过程,@connect 装饰器
005-mac下Java开发工具安装,idea,maven,git,node
004-mac下Java6与Java8 安装、mvn多环境
003-触摸手势
002-自定义打开terminal,以及快捷键,其他程序类似,ssh管理-sshpass, Shuttle
001-mac使用桌面、Dock、键盘、程序安装
0602-Zuul构建API Gateway-Zuul Http Client、cookie、header
014-组合与继承