浅谈组件式GIS技术及其开发

(整期优先)网络出版时间:2018-12-22
/ 2

浅谈组件式GIS技术及其开发

杨德伦

(国网福建检修公司福建福州350011)

摘要:传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式软件是新一代GIS的重要基础,组件式GIS的出现为传统GIS面临的多种问题提供了全新的解决思路。

关键词:组件技术;GIS技术;电力系统

1.组件技术简介

组件是模块化程序设计方法发展到一定阶段的产物,在软件工程的角度来考虑,一个庞大的应用程序通常被划分成多个模块。每个模块都保持一定的功能独立性,这些组件可以单独开发、编译,甚至单独调试和测试。当所有的组件开发完成后,把他们组合在一起就得到了完整的应用系统。我们把每一个这样的模块称之为组件。基于组件开发不只是一种分布计算新技术,而是一种广泛的体系结构,支持包括设计、开发和部署在内的整个软件生命周期计算的理念。基于组件开发具有高度的重用性和互用性,其两个重要规范分别是Microsoft的COM和OMG的COBRA,目前Microsoft的COM占市场领导地位,已经得到广泛应用,并逐渐成为业界事实标准。基于COM,Microsoft推出ActiveX技术,ActiveX组件是当今可视化程序设计中应用最为广泛的标准组件。

组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调用。组件间的接口通过一种与平台无关的语言IDL(InterfaceDefineLanguage接口定义语言)来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更加彻底,更易于使用,可以在各种开发语言和开发环境中使用。

2.组件式GIS

所谓组件式GIS,是指基于组件对象平台,以一组具有标准通信接口的、允许跨语言应用的组件提供的GIS。GIS组件之间以及GIS组件与其他组件之间可以通过标准的通信接口实现交互。通过目前流行的可视化软件开发工具,可对组件进行积木式的组合及重组。由于组件式的GIS不依赖于某一种具体的开发语言,可以嵌入到通用的开发环境中实现GIS的功能,配合其他专业模式的组件,可实现GIS与其他应用系统的无缝(Seamless)集成。把GIS的功能适当抽象,以组件形式使用将会带来许多传统GIS工具无法比拟的优点。

首先,精简灵活。在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样用户能以较好的性能价格比获得或开发GIS应用系统。

其次,可直接嵌入开发工具。组件的生产建立在严格的标准之上,因此,凡符合标准的组件都可在目前流行的各种开发工具上使用。这样常用的可视化开发平台等都可直接成为GIS的开发工具,它们各自的优点都能够得到充分发挥。与传统GIS专门开发环境相比是质的飞跃。

第三,强大的GIS功能。新的GIS组件无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力,同时可根据实际应用系统的需要进行补充。

第四,开发简捷。由于GIS组件可以直接嵌入开发工具中,对于开发人员就可以自由选用熟悉的开发工具。而且,GIS组件提供的API(ApplicationProgrammingInterface,应用程序编程接口)形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训,这将使大量的MIS开发人员能够较快地过渡到GIS或GMIS的开发工作中,从而大大加速GIS的发展。

3.基于ArcObjects的GIS开发

AO是ESRI公司ArcGIS家族中应用程序ArcMap,ArcCatalog和ArcScene的开发平台,它是基于MicrosoftCOM技术所构建的一系列COM组件集。AO依附在ArcGISDeskTop产品中的软件开发包,ArcGISDesktop的任何一个产品具备AO组件集,即可实现利用AO提供的组件对象来进行应用开发,它具有功能全面、可伸缩强、部署范围广等特点。ESRI的ArcGIS软件本身就是利用ArcObjects开发实现的,ArcObjects组件库包括了ArcGIS的全部功能。

通过AO可完成以下GIS功能:空间数据的显示、查询检索、编辑和分析;创建各种专题图和统计报表;高级的制图和输出功能;空间数据管理和维护。

ESRI提供的ArcMap、ArcCatalog和ArcScene这三个应用程序都是由AO搭建起来的,因此从理论上讲这些应用程序能完成的任务,通过AO同样可以完成,但重新搭建一个ArcMap式的应用程序先不考虑其代价,就可靠性和稳定性而言就值得怀疑。目前绝大部分任务是要利用ESRI提供的AO组件来进行积木式的组装任务。AO已经提供了许多底层的基本功能,而现有的任务是按照应用需求将这些底层功能组装集合成一个更强大的COM对象。AO是基于微软的COM技术来构建的,因此它的开放性和扩展性很强大。此处的开放性是指在开发环境的选择上可以有VBA、VB、VC++、DEPHI等多种支持COM标准的开发工具,而扩展性是指AO组件没有提供的功能,如需要定义一种新的数据格式,可以利用COM技术来写自己的COM组件,对AO组件库进行扩展补充。通过采用COM技术,不但可以在AO的基础上构造自己的COM组件,而且可以自己来完成一个COM组件来对AO进行补充。

3.1AO库中组件的层次关系

ArcObjects库提供了1100个以上独立的COM组件,其组件间的层次关系如下。Application位于框架的最顶层,Application对象可以访问以下三个对象:Display对象:GIS的数据表现部分,可完成诸如地图符号显示、图形编辑、坐标转换和屏幕控制等功能;Document对象:代表整个地图文档,可包括一个或几个Map对象,每个Map对象又可包括多个Layer对象;FeatctreLayer(特征层)是最普通的Layer,用来显示数据的数据图层;Extention对象:提供ArcGIS应用程序的扩展功能。

3.2AO对象的使用

AO的使用跟其他组件式的开放没有区别,COM的一些底层的细节在开发中也不需要过多的关注,选用的开发工具中已经会自动处理。AO的使用最主要的关键在于OMD的理解及使用。在电力管理系统的GIS应用中,由于ArcGIS平台本身提供的组件功能有限,无法满足应用的所有要求,在系统构建中,可根据专业需要自定制组件,扩展AO组件功能。在基于AO组件开发的管理系统的应用程序中,只要注册以上测量工具的动态链接库文件就可以将其作为控件来使用,避免了代码的重复编写,提高了应用程序开发的效率。类似的,在需要实现其他管理系统所需的功能时,可定制不同的专业组件供系统开发使用。

4.小结

基于组件式GIS现有管理系统的应用,在数据管理方面,通过GIS平台的建立,解决因部门、人员职能不同而造成的数据分散、数据源不唯一、数据不真实等问题,加强基础数据的管理,有效实现数据向信息的提炼,为企业的经营管理活动提供良好的基础。在生产效率上,通过充分利用自动化的优势,降低一线生产人员的劳动强度及工作的危险性,减轻生产人员的工作量,提高工作效率;同时,利用管理系统,使电网由被动式管理变为主动式管理,促使生产人员提高综合素质,逐步向管理人员转变。

参考文献:

[1]唐超,冯珊,周凯波.基于组件的开放式地理信息系统结构.系统工程与电子技术,2000,22(8):22~24