组件技术与GIS的发展——MapX核心技术剖析(三)

来源:互联网 发布:尼康镜头调焦软件 编辑:程序博客网 时间:2024/05/01 20:30
二、 组件技术与GIS的发展
  引言
  组件式软件技术已经成为当今软件技术的潮流之一,为了适应这种技术潮流,GIS软件象其他软件一样,已经或正在发生着革命性的变化,即由过去厂家提供了全部系统或者具有二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来。无疑,组件式GIS技术将给整个GIS技术体系和应用模式带来巨大影响。
  GIS技术的发展,在软件模式上经历了功能模块、包式软件、核心式软件,从而发展到组件式GISWebGIS的过程。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式GIS的出现为传统GIS面临的多种问题提供了全新的解决思路。
  组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的积木搭建起来,就构成应用系统。
  组件式GIS系统的特点
  把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点。
  (1)、 小巧灵活、价格便宜
  由于传统GIS结构的封闭性,往往使得软件本身变得越来越庞大,不同系统的交互性差,系统的开发难度大。在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能,用户可以根据实际需要选择所需控件,最大限度地降低了用户的经济负担。。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。
  (2)、 无须专门GIS开发语言,直接嵌入MIS开发工具
  传统GIS往往具有独立的二次开发语言,对用户和应用开发者而言存在学习上的负担。而且使用系统所提供的二次开发语言,开发往往受到限制,难以处理复杂问题。而组件式GIS建立在严格的标准之上,不需要额外的GIS二次开发语言,只需实现GIS的基本功能函数,按照MicrosoftActiveX控件标准开发接口。这有利于减轻GIS软件开发者的负担,而且增强了GIS软件的可扩展性。GIS应用开发者,不必掌握额外的GIS开发语言,只需熟悉基于Windows平台的通用集成开发环境,以及GIS各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。目前,可供选择的开发环境很多,如Visual C++Visual BasicVisual FoxProBorland C++DelphiC++ Builder以及Power Builder等都可直接成为GISGMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS专门性开发环境相比,是一种质的飞跃。
  (3)、 强大的GIS功能
  新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。
  (4)、 开发简捷
  由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,GIS组件提供的API形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在GISGMIS的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的MIS开发人员能够较快地过渡到GISGMIS的开发工作中,从而大大加速GIS的发展。
  (5)、 更加大众化
  组件式技术已经成为业界标准,用户可以象使用其他ActiveX控件一样使用GIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。组件式GIS 的出现使GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具。
  组件式GIS开发平台的结构
  组件式GIS开发平台通常可设计为三级结构:
  Ø 基础组件
  面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接;
  Ø 高级通用组件
  由基础组件构造而成,面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。面向通用功能;
  Ø 行业性组件
  抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。
  GIS组件的构成
  GIS软件的模型包含若干功能单元,诸如空间数据获取、坐标转换、图形编辑、数据存储、数据查询、数据分析、制图表示等。可以想象要把这些所有的功能放在一个控件中几乎是不可能的,即使实现也会带来系统效率上的低下。一般可以认为GIS构件的设计主要遵循应用领域地需求。例如ESRIMapObjects就是以空间数据访问、查询、制图为主要目标的GIS构件。
  GIS组件产品
  GIS组件的代表作应首推MapObjects以及MapX等。其中MapObjects由全球最大的GIS厂商ESRI(美国环境研究所)推出;MapX由著名的桌面GIS厂商美国MapInfo公司推出。另外还有加拿大阿波罗科技集团的TITAN等。下表是MapObjectsMapX的主要功能对比。

功能 

MapObjects 

MapX

显示的地图数据格式  

ArcviewSHPARC/INFOcoverageSDE图层

MapInfo的数据格式

叠加栅格图像 

 

对地图的常用操作 

放大、缩小、漫游等 

放大、缩小、漫游等

图层控制 

增加、移走、设置当前层 

增加、移走、设置当前层

属性数据绑定 

 

地图信息查询方式 

1. 通过鼠标选取特征
2.
通过SQL查找特征
3.
通过空间操作选取特征 

1. 通过鼠标选取特征
2.
通过SQL查找特征
3.
通过空间操作选取特征

专题地图 

较弱 

GPS集成 

 

用户绘图图层 

 

生成/编辑地图对象 

较弱 

较弱

地图标注 

 

地图符号化 

较弱 

较强

分析功能 

 

地理编码 

 

可使用的开发语言 

VCVBPowerBuilderDelphiAccess 

VCVBPowerBuilderDelphiLotus Notes


                      表4.1 MapObjectsMapX的主要功能对比
  应用及评价
  软件的构件化已成为软件技术发展的潮流。基于DCOMActiveX构件实现,已成为软件工业的一种标准。伴随着未来其它非Windows平台对ActiveX的支持,ActiveX构件化的GIS软件系统将对GIS的体系结构和GIS将来的应用前景产生深远影响。
  虽然采用GIS构件在开发上有许多优势,但是不可避免的也存在一些功能上的欠缺和技术上的不成熟,主要包括以下几个方面:
  Ø  与专业的GIS客户端软件相比,采用构件技术不可避免的带来效率上的相对低下,这在访问超大空间数据(如大数据量的遥感图象)的时候表现得尤为明显;
  Ø  支持的空间数据量有限;
  Ø  支持的功能有限,由于是构件,只覆盖了GIS系统的部分功能,于是对于特殊领域,它就显得无能为力;
  Ø  系统的可靠性、容错性有待提高。DCOM的一大特点是:开发及使用过程中必须时刻注意Windows系统OLE系统注册表的正确。
 
原创粉丝点击