APP下载

插件式土地规划辅助设计框架研究

2016-12-28武红宇胡庆武

地理空间信息 2016年9期
关键词:辅助设计插件宿主

武红宇,王 玥,胡庆武

(1.武汉大学 遥感信息工程学院,湖北 武汉 430079)

插件式土地规划辅助设计框架研究

武红宇1,王 玥1,胡庆武1

(1.武汉大学 遥感信息工程学院,湖北 武汉 430079)

提出了一种插件式、开放的土地规划辅助设计系统框架;以ArcGIS Engine(AE)为开发平台,设计并实现了基于AE的插件机制及插件开发平台。在此基础上,提出面向土地规划辅助设计的插件式开放框架,设计开发了基于该插件框架的土地规划辅助设计系统。以地图分幅打印为例,在该插件式框架上扩展实现了土地规划辅助设计系统规划设计输出功能,证明了其有效性和适用性。

土地规划;辅助设计;插件;框架;分幅出图

土地是人类赖以生存的物质基础,土地面积的有限性和土地需求增长的不协调,使得对土地资源合理分配和利用非常必要,土地规划成为合理使用土地的有效途径[1-2]。传统土地规划设计由于待规划土地面积大、规划过程复杂、工作量大、时间跨度长且需要大量手工作业及多部门沟通合作,并不适应现阶段土地规划设计需要。当前,土地规划设计呈现出对土地资源动态规划需求,既需要全面、准确且现势性好的基础数据,也需要开放的土地规划方法和系统[1,3]。

GIS技术为改变土地规划中统计变更信息、追溯变更历史、查询规划成果信息费时费力的现状提供了可能。基于GIS的土地规划设计方法的关键是如何构建一个用于土地规划管理和决策的基础地理信息系统[4-7]。现有GIS平台软件功能完整,但价格昂贵且功能设计没有针对专业部门的特定需求,因此需要进行二次开发。基于GIS组件的二次开发逐渐成为专业GIS应用系统开发的主流,其优点也已为业界普遍认可。然而,每一个行业应用都要经历一 次完整的二次开发过程,设计开发者大部分时间都浪费在菜单建立、工具栏按钮设计、停靠窗体设计、增加映射代码等基础功能上;并且在系统完成后的维护中,每升级一个功能,都需经过打开复制、粘贴、编辑、再编译、再测试等工作十分繁杂[4]。这种方式开发出的土地规划相关系统一般是针对特定应用或仅涉及某一方面规划和管理工作,缺乏统一和协调的土地利用规划信息管理和规划业务的调控[8]。插件是很多通用或专用程序提供给应用层用户进行二次开发的一种程序接口方式,其主要目的是为了提高软件的重用性和可扩展性,以延长软件的生命周期[9]。因此插件式GIS应用框架能提供一个具有良好复用性、灵活的可扩展性平台,为项目实施所面对的特定知识应用领域提供一种新途径[10]。

1 基于AE的插件开发平台

基于AE的二次开发通常采取组建式开发。组件技术是一种软件复用技术,而插件技术是软件架构技术[11]。以典型的GIS应用系统软件开发为例,组件式开发技术和插件式开发在面对应用系统的需求、功能和模块变更时的开发流程如图1。

图1 组件式系统与插件式系统对比

组件式开发将全部功能集中在主程序中,整个系统只包含一个主程序。插件式系统由宿主程序和插件对象两部分组成,宿主程序是一个通用的插件框架,只负责数据显示、用户交互以及提供通信契约接口,既是整个插件平台的入口,也是插件对象的管理者和依附对象;负责解析插件对象,并将插件对象事件进行委托关联以生成各种按钮工具、工具条和菜单等用户界面形式的对象[12]。数据处理、查询分析等功能则由实现了相关通信契约接口的插件对象来实现,用于动态扩充插件平台功能。插件对象通过公共契约与宿主程序进行交互来实现自身的逻辑以完成相应功能。

当需要增加或删除某些功能时,组件式系统均需对主程序进行修改,测试后重新打包、发布程序,增加了开发和维护难度。插件式平台增加功能只需根据需求及相关通信契约接口来实现插件对象,并通过宿主程序加载插件对象,删除功能只需卸载相关插件对象,可以快速扩展和修改功能,真正实现针对各部门功能需求的快速扩展。因此,基于插件式的开发框架和平台是满足土地规划设计工作中多个部门不同功能需求的绝佳方案。

在利用AE进行插件式平台开发时,应将平台所需要的功能分散到各个插件对象中完成,插件对象作为可独立开发的程序模块,根据用户需求动态添加和删除。本文以AE为基础平台,设计了基于AE的插件开发平台,其体系结构如图2。

基于AE的插件框架的宿主程序是整个插件平台的基础,包括主界面程序、插件引擎和通信契约接口。主界面程序负责解析插件对象,并将插件对象事件进行委托关联以生成各种用户界面形式的对象[12];同时利用AE的MapControl控件负责地图显示,PagelayoutControl控件负责地图制图显示,TOCControl控件负责数据图层结构显示,并根据实际需求选用ToolbarControl作为工具栏。插件引擎用于解析程序集,提取其中包含的插件类型信息,在设计过程中可参照AE中的IApplication接口。通信契约接口是宿主程序和插件交互的基础,在设计不同类型的通信契约接口时可参考ArcGIS Engine中SystemUI库的相关接口。

图2 基于AE的插件开发平台

2 开放式土地规划辅助设计框架

土地规划辅助设计系统通常包括数据可视化、文件管理、数据编辑、数据处理、查询与统计、专题图制图和管理工具。土地规划辅助编制软件中数据可视化功能由宿主程序实现,数据处理等功能则全部由插件对象实现。数据处理涉及的功能通常可分为通用基础功能和部门专业功能及工作流程;通用基础功能为数据管理、浏览、编辑、查询和专题图制作等,部门专业功能为碎斑合并、属性融合、图形转换和连续分幅出图等。综合实际需求,开放式土地规划辅助系统功能模块设计如图3所示,图中所列功能全部由插件对象实现。

尽管土地规划辅助设计系统功能较为明确,但土地规划过程复杂,往往需要多个部门共同协作,因此设计开发该系统时应利用插件开发模式,在系统提供通用功能的基础上支持各部门根据自身需求扩展软件功能,从而以低成本、低开发代价的方式扩展软件功能。本文利用基于AE的插件开发平台,设计实现了开放式土地规划辅助设计系统,其技术框架如图4。

土地规划辅助设计系统的技术框架中,主程序界面设计主要涉及工具栏设计和可视化功能设计,其中可视化功能中所要用到的AE控件为程序必不可少的组成部分。在通信契约接口设计中为了宿主程序能高效地识别插件对象类型,应为所有类型的通信契约接口设计一个共同的父接口IPlugin,IPlugin接口中并不定义任何属性和方法,仅作为通信契约接口中统一的标识,再根据插件对象实际功能的用户界面(UI)交互形式设计6 个类别的通信契约接口。插件引擎的设计包括用于存储插件对象的插件容器的设计,插件对象的动态加载技术的设计以及针对插件容器中对象的分类方法的设计。在完成了宿主程序设计后,需要根据功能模块中具体功能的实际操作方式,为功能选择和实现相应的通信契约接口,在功能的具体实现过程中应充分调用AE中的内置类库和Geoprocessing工具来快速、高效地实现相应功能。当系统需要添加新功能时,只需利用宿主程序添加相应的插件对象即可实现系统的动态扩展。

图3 开放式土地规划辅助系统功能模块设计图

图4 技术框架图

3 插件式土地规划辅助设计系统及扩展实例

3.1 开发环境和工具

在系统设计实现方面,依据插件平台设计方法,以ArcGIS Engine10.1作为GIS引擎、DevExpress 12.2为系统控件,运用C#开发语言在.NET Framework 3.5平台上设计开发了插件式土地规划辅助设计系统。主界面及功能模块划分如图5。

3.2 地图分幅打印功能插件扩展实例

当用某一部门需要一个新功能时,如制图部门需要将地图数据按1∶10 000的比例尺连续分幅出图,根据分幅出图的工作流程以及土地规划辅助设计系统的功能扩展要求,设计相应的分幅出图插件,实现流程如图6。

图5 土地规划辅助设计系统主界面图

依据插件实现流程图,将插件从功能角度划分,并实现对应的Ribbon界面的参数设计。从插件实现角度,将插件根据操作及交互类型分类,然后确定继承并实现ITool类型通信契约接口,再根据功能流程设计功能及交互界面,并实现分幅出图功能,最终利用宿主程序添加分幅出图插件对象,完成土地规划辅助设计系统的动态扩展。交互界面如图7所示,出图成功示例如图8所示。

图6 分幅打印功能插件实现流程图

图7 分幅出图交互界面

图8 分幅出图结果

4 结 语

本文针对土地规划过程中纷繁复杂的功能需求,提出了基于AE和.NET FrameWork平台的开放式插件平台的技术路线和系统设计;给出了插件平台必要的宿主程序、插件引擎、通信契约接口的相关设计;并针对制图部门所需的连续分幅出图功能给出了通过插件方式扩充平台系统的技术流程。实验结果表明本文所提出的方法切实可行,可以有效地根据用户需求扩展现有插件平台的功能。

[1] 徐世武,刘秀珍.基于GIS的土地利用规划辅助编制系统[J].地球科学,2006,31(5)∶719-724

[2] 戴建旺,张定祥,左玉强,等.土地利用规划实施监管研究进展与体系框架建设构想[J].中国土地科学,2012,26(7)∶91-96

[3] 陈涛,郭明武.城市区域土地规划信息系统设计与实现[J].测绘与空间地理信息,2011,34(4)∶107-109

[4] 孙丽,高飞,胡小华,等. ArcEngine插件式GIS二次开发框架的设计与实现[J].测绘科学,2011,36(5)∶214-216

[5] 李满春,陈刚,姚志军,等.县级土地利用规划管理信息系统的分析与设计[J].国土资源遥感,2003(1)∶65-69

[6] 李长辉,张鹏程,王红新.基于ArcEngine的土地利用总体规划辅助编制系统[J].测绘信息与工程,2008,33(6)∶32-34

[7] 张艳.基于.NET平台和ArcGIS Engine的土地利用规划信息系统的研究与开发[D].合肥∶合肥工业大学,2007

[8] 胡晓曦.基于空间OLAP技术的土地利用规划辅助决策支持系统研究与应用[D].成都∶西南交通大学,2012

[9] 陈方明,陈奇.基于插件思想的可重用软件设计与实现[J].计算机工程与设计,2005,26(1)∶172-176

[10] 吴亮,杨凌云,尹艳斌.基于插件技术的GIS应用框架的研究与实现[J].地球科学,2006,31(5)∶609-614

[11] 郭娜,黄永平,吴学义,等.基于插件的动态模块框架研究[J].吉林大学学报(信息科学版),2008,26(1)∶69-75

[12] 佃袁勇,程维金,滕明君,等.基于插件式的林带信息管理系统的设计与实现[J].华中农业大学学报,2014,33(4)∶45-49

P208

B

1672-4623(2016)09-0094-04

10.3969/j.issn.1672-4623.2016.09.031

武红宇,硕士研究生,研究方向为3S技术集成与应用。

2015-07-14。

项目来源:国家自然科学基金资助项目(41271452)。

猜你喜欢

辅助设计插件宿主
病原体与自然宿主和人的生态关系
龟鳖类不可能是新冠病毒的中间宿主
基于图形特征识别技术的电码化辅助设计软件开发与应用
自编插件完善App Inventor与乐高机器人通信
基于数据库模型的信号一体化辅助设计平台研究
基于三维GIS的燃气管道线路辅助设计系统研究与实现
基于jQUerY的自定义插件开发
抓住自然宿主
人乳头瘤病毒感染与宿主免疫机制
基于Revit MEP的插件制作探讨