当前位置:文档之家› 面向空间数据库建设的插件式开发与应用_宋碧波

面向空间数据库建设的插件式开发与应用_宋碧波

收稿日期:2014-09-19。

项目来源:矿山空间信息技术国家测绘地理信息局重点实验室开放基金资助项目(KLM201411)。

面向空间数据库建设的插件式开发与应用宋碧波1,张立朝1,石 晶1,郭秀丽1(1.河南省基础地理信息中心,河南 郑州 450000)摘 要:针对传统基础地理信息数据库建设过程中工作效率低下、数据质量不易控制等问题,提出数据库建设的插件式开发方式。

通过采用ArcGIS Add-In 桌面定制开发技术,实现了数据格式批量转换、智能编辑和专项质检等功能,利用已有成熟商业软件的功能接口,有效避免功能的重复开发。

研究成果对实际生产过程中的批量入库和质量控制起到重要的作用。

关键词:ArcGIS Add-In ;数据库建设;插件式开发中图分类号:P208 文献标志码:B文章编号:1672-4623(2015)05-0086-03国家测绘地理信息局于2013年在全国范围内实施1∶10 000数据库整合升级项目[1],在对DLG 数据建库的过程中,主要涉及坐标转换、格式转换、分类代码转换、要素编辑、属性项编辑、数据结构重组等一系列数据编辑、转换与质检工作。

常规作业方式主要采用手工处理,从而导致数据量大、效率低、数据结构不统一、数据质量难以控制等问题[2]。

采用程序建库的方式能够有效解决上述问题。

借助程序读入数据可有效避免手工入库效率低下的问题。

然而,目前采用程序入库方式主要基于组件式开发,不仅开发周期长,并且不能有效利用已有程序的接口,从而造成已有程序功能的浪费,重复开发的现象普遍存在[3]。

鉴于上述情况,本文提出一种地理信息数据库建设的插件式开发方式。

采用ArcGIS Add-In 桌面扩展功能开发,实现数据格式转换、编辑、质量检查等功能,解决数据库建设中效率低下、结构不统一、质量难以控制等问题。

1 ArcGIS DeskTop Add-In早期ArcGIS(8.0之前版本)通过使用ArcInfo Workstation 提供的宏语言AML 来进行单纯的二次开发,ArcGIS10.1及以后版本中不再支持Workstation 环境。

基于ArcObject 组件进行C/S 开发主要分为基于ArcGIS Desktop 进行自定义应用扩展和利用ArcGIS Engine 建立自己的应用等。

ArcGIS Desktop 桌面应用扩展开发分为客户定制开发、VBA 开发和使用编程语言进行嵌入式开发。

客户定制开发只需对已有工具进行重新组合即可;基于VBA 开发可以实现大部分功能的定制,ArcGIS10.0以后版本中将不再包含该模块;基于ArcObject 的开发方式,利用支持COM 的编程语言进行系统功能开发,通过对编译后的DLL 进行注册,从而将该功能添加到系统中。

另外,为了满足用户在数据批处理及功能定制方面的需求,ArcGIS ToolBox 提供了模型制作、编写脚本工具等方式,通过对已有工具进行重组合实现数据的流程化处理,或利用Python 语言编写脚本工具实现数据的批处理,这从一定程度上减少了用户处理数据的负担。

ArcGIS Add-In 是ArcGIS 10.0以后提供的一种全新的桌面定制开发方式,它能够根据用户需求快速扩展桌面功能,与VBA、Engine 等开发方式相比具有易创建、易共享、更安全、易安装管理等突出特点[4]。

在ArcGIS Desktop 原有功能基础上根据实际需求进行特殊功能的定制开发,扩展桌面上现有功能,最大程度满足用户的操作需求。

基于Add-In 的开发模式使程序开发周期大大缩短,能够直接享用已有功能,并且使界面交互功能的开发更加简单,开发过程、呈现形式更加灵活。

考虑到Add-In 的以上优势及实际生产任务在时间上的紧迫性,最终采用该方法对ArcMap 桌面功能进行扩展以解决实际生产问题。

2 总体设计与功能实现1∶10 000基础地理信息数据库建库项目中存在大量数据的格式转换、坐标转换、投影信息编辑、要素几何及属性信息编辑、几何及属性精度控制、图层结构与拓扑关系检查等工作,是项目实施过程中的主要工作内容,占用时间较多。

以上归纳起来可以分为数据转换、数据编辑、质量检查3类。

2.1 数据转换数据转换主要包括常用数据格式间的转换和同一椭球基准下坐标系统间的转换。

不同数据采集系统间或同一软件系统中都涉及到数据存储格式转换的问转换,如图1所示。

在实际生产中数据多以图幅的形式进行组织,因而应考虑数据源格式。

*.mdb *.gdb 格式数据图1 常用数据格式间的批量转换坐标系转换前,原始图幅数据本身应被赋予正确的空间参考信息,ArcToolBox 中提供了定义坐标系的工具,但在实际应用时不仅要满足空间参考信息的批量添加,还应注意图幅跨带等问题,根据图幅号实现空间参考信息的自适应添加,如图2所示。

批量定义空间参考按图幅号自适应添加投影信息…图2 坐标系批量转换2.2 数据编辑在数据编辑过程中,需借助编辑工具采集要素、按照任务范围裁切图层、拼接图层、图幅接边、从参考资料中提取数据、不同标准间数据结构的转换、重组等,编辑方法的不同将对实际工作效率带来直接影响。

若无法提高自动化、智能化水平,将造成大量重复性工作,不仅无法充分利用已有数据,还会影响数据质量。

因此,在现有编辑功能的基础上开发针对1∶10 000数据的专用编辑工具十分必要,这将直接提高数据生产效率。

通过对数据进行分析,主要实现的编辑功能如图3。

《1∶10 000(1∶5 000)地形要素数据规范》[5]行划分,在编辑时直接使用相应工具采集要素,一方面避免了GB 属性值的重复录入;另一方面也规范了图层格式,减少了图层中分类代码错乱等问题。

但在实际应用中以上方法更改了数据结构,会造成后期工作量的增加。

利用Add-In 方式对ArcMap 中的编辑功能进行扩展开发,可以有效解决该问题。

ArcGIS 能对不同格式的图层进行拼接或裁剪,但面对每个图幅39个图层的数据量,逐层拼接、裁剪数据将会大大降低数据处理效率。

不同时期的数据在数据分类代码、数据结构等方面都存在差异,为充分利用已有数据,需参照相关规范对新旧分类代码进行快速对照,实现数据结构的批量重组。

为了减少人工编辑量,图层快速接边、属性刷等交互编辑工具和其他常用工具的开发也十分必要。

2.3 质量检查在数据生产的过程中,如果能够将数据质量问题控制在编辑过程中,这将大大缩减数据检查、再修改这一反复过程。

目前Geoway、ArcGIS 等软件都提供了数据检查工具,这些功能并非针对1∶10 000数据建库项目专门开发,检查项不全面,大量工作仍需人工完成。

在ArcGIS 已有检查功能的基础上,对数据精度、属性精度、接边检查、要素分类码、要素归层合理性、要素表达方式一致性与规范性等1∶ 10 000数据检查项开发专用的功能,使质检工作更加方便、快捷,数据问题得以及时发现并修改。

针对1∶10 000数据库建库项目开发的检查功能如图4所示。

1∶10 000 数据质量检查项数据检查图形检查拓扑检查数据完整性图层结构要素分类、归层要素属性值极短线、极小面要素图形重叠线自相交、悬挂、伪节点图廓接边境界线与面边界重合水系要素与其他要素间拓扑关系道路要素与其他要素间拓扑关系居民地要素与其他要素间拓扑关系植被要素与其他要素间拓扑关系地形要素与其他要素间拓扑关系………………图4 1∶10 000数据检查项地理空间信息·88·第13卷第5期依据文献[5]~[7]对数据的规定与要求,对图幅中图层是否完整、图层名称及图层中字段名称、类型、长度等结构是否标准、空间参考是否正确、要素归层及属性是否规范进行检查,检查结果以文档或点图层形式输出,便于后期修改。

图形检查是对各图层中要素的几何特征进行快速检查,如超短线、极小面、要素重叠、线自相交、线悬挂点、伪节点、内图幅接边等问题,检查结果以点图层或拓扑图层的形式输出。

拓扑检查通过对图幅中不同图层间或同一图层中不同地物类间的空间关系进行剖析,能够批量、直观地对图幅中境界、水系、道路、居民地、植被、等高线、高层点等要素间的拓扑关系进行检查。

3 成果与应用本文利用ArcGIS DeskTop Add-In 桌面拓展开发方式在Visual Studio2008平台中对以上功能进行开发。

通过安装编译生成的*.esriAddIn 文件,将新增功能集成到ArcMap 中,图5为功能集成后的ArcMap 主界面,其中增加了数据批量处理、编辑、检查等菜单项、工具栏及浮动面板。

图6为按图幅号自动添加投影信息对话框窗口。

图7展示了面图层接边的过程,对待编辑节点和目标点进行快速计算并标记。

图5 功能集成后的ArcMap主界面图6 按图幅号自动添加投影信息对话框a 面图层接边计算结果b 节点移动示意图图7 面层接边作业过程4 结 语通过采用ArcGIS Add-In 的桌面拓展方式实现了1∶10 000基础地理信息数据库建设的插件式开发,实现数据格式转换、智能编辑、质量控制的自动化,有效提高生产效率、控制数据质量标准。

基于插件式开发的方式周期短、充分利用已有成熟功能开发接口,能够有效提高生产项目的工作效率,减少重复开发的工作量。

后续工作将在数据的语义约束等方面开展相关的研究。

参考文献[1] 王东华,刘建军,赵仁亮,等.全国1∶10 000基础地理信息数据库整合升级总体设计[J].地理信息世界,2014(2):1-5[2] 商瑶玲,王东华,刘建军,等.国家基础地理信息数据库质量控制技术体系建立与应用[J].地理信息世界,2012(1):13-17[3] 闻平,王冲,杨林波,等.基于插件技术的GIS 应用框架关键技术研究[J].测绘通报,2012(增刊):608-609[4] 李论,张志鹏,陈慎.基于ArcGIS Add-In 的不等分纬线多圆锥投影变换[J].测绘,2013(5):222-224[5] 国家测绘地理信息局.1∶10 000(1∶5 000)基础地理信息地形要素数据规范[Z].北京:国家测绘地理信息局,2012[6] GB/T20257.2-2006.国家基本比例尺地图图式第2部分:1∶5 000 1∶10 000地形图图式[S].[7] GB/T20258.2-2006.基础地理信息要素数据字典第2部分:1∶5 000 1∶10 000基础地理信息要素数据字典[S].[8] 徐忠国.基于ArcObjects 和COM-Add-Ins 乡级土地利用总体规划辅助编制系统设计与实现[J].中国土地科学,2014(1):46-51[9] 乔俊军,房雪玲,姜战底.ArcMap 在地图总体设计中的应用研究[J].测绘通报,2013(12):101-104[10] 石晶.数字城市地形要素缩编的设计与实现[J].测绘与空间地理信息,2013(6):115-118[11] 申胜利,李华.基于ArcEngine 的ArcGIS 与AutoCAD 数据转换研究[J].测绘通报,2007(2):146-149[12] 赵万锋,刘南,刘仁义,等.基于ArcObjects 的系统开发技术剖析[J].计算机应用研究,2004(3):130-132[13] 赵永兰,何耀帮,耿丽艳.基于CAD 平台开发的悬挂点检查与自动处理[J].测绘与空间地理信息,2013(6):211-214第一作者简介: 宋碧波,硕士,主要研究方向为地理信息系统开发与应用。

相关主题