基于ArcGIS 10.1的区图层批处理合并

2015-02-07 07:44吴战克
地理空间信息 2015年4期
关键词:批处理文件夹插件

吴战克

(1.新疆地矿局 测绘大队,新疆 乌鲁木齐 830017)

基于ArcGIS 10.1的区图层批处理合并

吴战克1

(1.新疆地矿局 测绘大队,新疆 乌鲁木齐 830017)

基于ArcGIS 10.1下AO开发接口,实现了存储在MDB数据格式中同坐标信息、同属性结构区图层的批处理合并,将批处理结果与ArcMap手动合并的精度进行了对比检验,结果证明该方法切实可行,能降低作业人员的劳动强度,提高工作效率。

ArcGIS 10.1;AO开发;合并图层;批处理

在地理数据信息化处理的数据收集和初步加工过程中,作业人员几乎都会遇到重复操作同样的工作步骤这一问题,这主要是因为项目初期的数据收集工作越来越机械化、智能化,收集的数据也是以大批量同结构的数据居多。而在具体的项目中,更加需要处理大批量同结构的数据,重复性的工作不可避免,这就催生了新的开发需求与方法[1-8]。本文根据地理国情项目的需求,利用ArcGIS 10.1平台下的AO接口,针对MDB数据库中同坐标信息、同属性结构的区图层进行合并开发实现。

1 作业环境部署

1)开发环境设置。开发的架构是C/S;开发的IDE平台是Microsoft Visual Studio 2010;开发的地图平台是ArcGIS 10.1;开发的语言和组件分别是C#和AO SDK组件。

2)批处理文件集目录设置。文件结构设置分两种情况:①三层目录结构。总体目录,即一个大的文件夹包括一切预处理数据;二级目录,即不同地区或者不同位置的文件目录,它包含对应的MDB数据库;MDB数据库,二级目录中包含对应的MDB数据。二级目录可以有自己特定的文件夹名称,但MDB数据和其中的区图层必须有严格的名称,如**地区乡镇界.mdb,MDB中区图层对应统一命名,如**地区乡镇界。②二层目录结构。一个文件夹内包含需要批处理的MDB数据库,MDB数据库名称和其中图层名称同样需要对应设定。

2 开发实现

软件的开发主要分为3个步骤,其开发技术路线如图1所示。

图1 开发技术路线

2.1 读取批处理文件集

用户首先需要在界面点击设置批处理文件集的位置,即选定目标文件夹,开发的接口主要利用了System.IO命名空间下的Folder Browser Dialog和DirectoryInfo类,Folder Browser Dialog设置对应的目标文件夹名称,DirectoryInfo类根据文件层级分别将多个特定MDB数据库文件信息存储到FileInfo数组中。

2.2 筛选MDB

系统在用户点击出合并窗口时,初始化默认显示了MDB中筛选的需合并区图层类型名称,这里设置为乡镇界。用户也可以自行更改要筛选区图层的名称,开发使用了字符串Indexof的方法判断MDB中图层名称是否包含输入的短字符串,实现了模糊查询。在用户设定好目标文件夹后,Checklistbox列表自动列出了文件夹内所有包含相应区图层的MDB数据库,用户可以全选、多选、反选需要合并的MDB数据库,系统同时统计显示合并的个数。

2.3 合并、调用显示生成图层

获取到需要合并的MDB数据库集合后,分别调用AE的工作空间工厂,打开MDB数据库,获取筛选出的特定区文件图层,集合到IArray数组中,设定定义输出图层的Fields表、文件名称、类型。最后调用Basic Geoprocessor Class类对象的Merge方法接口,生成的要素类对象转换为要素图层,由AxMapcontrol地图控件窗口调用显示。输出的类型为Shapefile类型,图层名称以当前生成的年月日时分秒开头。系统效果如图2(因保密需要,只提供开发生成效果图)。

图2 图层合并批处理小插件实现

3 工具测试及数据验证

笔者使用了两组数据进行精度测试,一组为4个MDB数据库,另一组为8个MDB数据库。分别使用开发的小插件和ArcGIS 10.1本身自带的合并功能进行县界合并操作对比,结果证明两种方法生成的图层基本一致,达到了合并的基本要求。数据坐标信息、属性信息、接边信息、记录条数基本一致,也侧面证明了AO开发和桌面版同用了一个Merge方法,效果如图3、图4。

图4 第二组测试

4 特点分析

1)AO开发与AE开发的区别。本次开发是ArcGIS 10.1平台下AO的开发,AO开发和AE开发的主要接口、类、库基本一致,但也存在一些区别,如AO开发的范围更广、组件更全,但需要安装桌面版和AO组件,开发成本高。

2)用户操作的方便性。本次批处理小插件开发,涉及到列表和选择的问题,用户可以自由选择文件夹内需要合并的MDB数据,特别注意的是合并生成的图层和列表第一位置的MDB中图层属性结构对应一致。

3)关于点、线层的合并问题。同样的Merge接口,实现了区图层的合并,也证明可以实现点图层、线图层的合并。

5 结 语

本次开发主要使用了ArcGIS 10.1下的AO接口,实现了多个MDB数据库中特定区图层的合并,并验证了合并精度。同时研究了点、线层的合并问题,应用于实际生产,能有效提高作业人员的工作效率。

[1] 朱道强,关海涛. Python在ArcGIS中的应用[J].测绘与空间地理信息,2013,36(7): 152-154

[2] 邱中军,段建刚.基于ArcGIS工具箱构建点云数据批处理模型[J].吉林水利,2012 (8):7-9

[3] 张岳,陶校君.1∶5万DLG更新中的数据处理与检查[J].浙江测绘,2007(2):43-44

[4] 卓云,何政伟,赵银兵.基于COM-GIS的软件模版快速搭建及应用[J].地理空间信息,2012,10(4):105-106

[5] 陈红华,李满春,李飞雪.插件式GIS应用框架的设计与实现[J].地理空间信息,2011,9(2):26-28

[6] 吴建华.基于ArcGIS Engine的GIS软件开发方法[J].测绘通报,2010 (11):54-57

[7] 肖庆.组件GIS二次开发技术研究[J].软件导刊,2008 (11): 148-150

[8] 杨宏鹏,王阿川,王妍玮. GIS二次开发方法与实现[J].信息技术,2008 (8):65-67

P208

B

1672-4623(2015)04-0093-02

10.3969/j.issn.1672-4623.2015.04.033

吴战克,工程师,主要从事测绘项目生产、测绘技术与质量管理工作。

2014-07-10。

项目来源:新疆维吾尔自治区第一次全国地理国情普查资助项目。

猜你喜欢
批处理文件夹插件
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
自编插件完善App Inventor与乐高机器人通信
摸清超标源头 大文件夹这样处理
借助批处理 让Cortana变聪明
调动右键 解决文件夹管理三大难题
基于jQUerY的自定义插件开发
挂在墙上的文件夹
不容忽视的空文件夹
基于Revit MEP的插件制作探讨
基于PSD-BPA的暂态稳定控制批处理计算方法的实现