基于ActiveX的地理信息系统开发谢文辉第1页共6页基于MapX的东海电缆管线地理信息系统开发谢文辉(上海东海海洋工程勘察设计研究院,200090)摘要从ActiveX技术出发,说明了组件式GIS开发技术的源起,通用GIS的开发框架;以东海电缆管线地理信息系统为例,介绍了利用MapX控件进行GIS应用软件的组织与开发过程,实现了对空间数据与属性数据的可视化、信息化,实现了对地理信息的查询、编辑、分析、管理等基本功能。关键词:ActiveX/MapX控件;地理信息系统(GIS);VB中图分类号:TP311;TP391.41作者简介:谢文辉,男,1974年生,硕士,主要研究方向:GIS开发与集成应用.1.ActiveX技术与系统开发1.1组件技术的兴起ActiveX技术是Microsoft公司于1996年推出来的,ActiveX技术已得到了许多软件公司的支持和响应,并纷纷在其产品中融入ActiveX技术。ActiveX是一种技术集,它的基础是OLE(对象链接与嵌入)技术,直接使用对象是COM(ComponentObjectModel)。而COM的核心是IDL(InterfaceDefineLanguage)语言,是一种与平台无关的语言,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务,它们间的关系如图1所示。ActiveX技术具有如下特点:(1)与具体的编程语言无关,被广泛应用于WEB服务器以及客户端的各个方面。同时,也被用于方便地创建普通的桌面应用程序。(2)是一段可重复使用的编程代码和数据,它是由用ActiveX技术创建的一个或多个对象所组成,通过使用ActiveX部件技术,可以实现将现已存在的、完善的应用程序片断连在一起,组装到自己的应用程序中去。1.2ActiveX控件与组件技术ActiveX控件是充分利用OLE和ActiveX技术的自定义控件,运行于32位的环境,是基于与应用程序无关的思想而设计的,其目标是提供一种面向对象、与操作系统无关、与机器平台无关、可以在应用程序之间互相访问对象地机制。其效果如同使用Windows通用控件一样。如:在VC++中开发的ActiveX控件,不作任何修改即可应用于VB中。由此可见,通过使用ActiveX控件即可实现快速小型的组件重用、实现代码共享,从而提高编程效率。ActiveX控件因而广泛地受到开发者的欢迎。组件技术实际上是一种开发理念。它把整个软件系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调用。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式。基于ActiveX的地理信息系统开发谢文辉第2页共6页组件技术以前所未有的方式提高了软件产业的生产效率,这一点已逐步成为软件开发人员的共识。传统的C/S结构、群件、中间件等大型软件系统的构成形式,都将在组件的基础上重新构造。由于组件技术的出现,软件产业的形式也随之发生了很大的变化。大量组件生产商涌现出来,并推出各具特色的组件产品;软件集成商则利用适当的组件快速生产出用户需要的某些应用系统;大而全的通用产品逐步减少;很多相对较为专业,但用途广泛的软件,如GIS、语音识别系统等,都以组件的形式组装和扩散到一般的软件产品中。图1ActiveX技术发展过程组件技术ActiveX/ActivexXOcxOLE/OLEOcxCom/Dcom是一种基于部件/控件群的系统开发理念与模式。不同的部件完成不同的功能,不同的部件/控件可以自由组合。封装得更加彻底,更易于使用,可以在各种开发语言、环境中使用。组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。ActiveX是Microsoft在OLE)技术的基础上提出的一组使用COM,使得软件部件可以交互的技术集。ActiveX控件是充分利用OLE和ActiveX技术的自定义控件,是众多ActiveX技术中的一种,基础是OLE控件。OLE的目的在于增强软件间的互操作。OLE控件(OCX)是OLE自动化的扩展,是众多OLE中的一种,有事件驱动、有宿主可视化、有自已的属性页,可编程控制.它的核心是IDL语言。与机器无关、与语言平台无关。基于ActiveX的地理信息系统开发谢文辉第3页共6页2.GIS开发与ActiveX控件2.1GIS常用开发方式从系统开发的组成结构来讲,GIS的开发可分为三种情况:(1)集成式GIS,指集合各种功能的大型GIS软件包。ESRI公司的Arc/Info,Genasys公司的GenaMap等都是集成式的GIS开发工具。集成式GIS优点是各项功能已形成独立完整系统,缺点是系统复杂、庞大、成本较高,难于与其他应用系统集成。(2)模块化GIS,按功能划分成一系统模块,运行于统一的平台上。Intergraph公司的MGE就是一个有代表性的模块化GIS系统。模块化GIS具有较强的工程针对性,便于开发和应用。(3)组件式GIS,是近年来发展起来的,代表GIS系统的发展潮流。最主要的组件GIS大多采用Microsoft的COM。基于COM,Microsoft推出了ActiveX控件技术。新一代的组件式GIS大多采用ActiveX控件来实现的。如,InterGraph的GeoMedia,ESRI的MapObject,MapInfo的MapX,ArcGIS的ArcObject等,还有一些国产的GIS软件,也大多采用这种形式,这是目前应用型GIS的主要开发方式。2.2组件式GIS系统组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统,GIS控件是组件式GIS开发中最基础的控件。利用组件进行GIS开发肯有以下优点:(1)功能全、性价比高:各板块功能紧密集中,新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。可以选取/开发各种控件。组件化GIS平台具备空间数据管理能力,可与众多数据库系统连接。在保证功能的前提下,系统小巧灵活。性价比高,最大限度地降低了用户的经济负担。(2)兼容性好、易于开发GIS控件具有很强的空间分析与处理功能,可与MIS系统充分结合,既实现了GIS的功能扩展、市场的开拓,也可以使MIS系统更加完善。别外它可以使用通用的可视化语言开发,不必掌握额外的GIS开发语言,开发者只需熟悉基于Windows平台的通用集成开发环境,以及GIS各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。目前,可供选择的开发环境很多,如VisualC++、VisualBasic、VisualFoxPro、BorlandC++、Delphi、C++Builder以及PowerBuilder等都可直接成为GIS或GMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS专门性开发环境相比,是一种质的飞跃。(3)更加大众化组件式技术已经成为业界标准,用户可以象使用其他ActiveX控件一样使用GIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。组件式GIS的出现使GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具。基于ActiveX的地理信息系统开发谢文辉第4页共6页2.3Mapx介绍MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。空间数据结构是GIS的基石,GIS就是通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从而实现地理图形和数据库的结合。从横向分析,MapX采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。空间实体是地理图形的抽象模型,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、y来表示。点可以表示成一组坐标(x,y),对于线和面,则均被表示成多组坐标(x1,y1;x2,y2;xn,yn)。空间索引是查询空间实体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐标范围内的空间实体及其所对应的数据。从纵向分析,MapX的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间实体进行分层组合,将一张地图分成不同图层。采用这种分层存放的结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更新和管理。3东海管线地理信息系统构建3.1软件体系结构为更好查阅与管理东海区管线资料,建成一个适用、先进、高效、可靠的东海管线资源信息化、现代化的平台,系统开发遵循以下原则:1.适用性与先进性并重原则系统的运行要求稳定与通用、同时考虑技术的先近性、控件功能的完备性。2.开放性原则信息系统建设是分阶段逐步实施的,很多功能待完善与优化,本系统采用开放式结构,在软硬件方面,保证具有良好的扩展性,以便今后系统不断地升级完善。3.经济性原则系统的硬件建设、系统开发与集成等均将采通用方法。有国家、行业标准或规范的,都将严格执行,没有标准或规范的,采用通用做法。4.易学易用易维护原则系统最终是为用户服务的。设计友好的系统界面,使其操作直观、简便,易维护。3.2系统功能功能结构:本系统功能主要考虑管理的需要,设置了五项基本功能,即数据输入、图形数据编辑、数据存贮与管理、空间查询与空间分析、可视化表达与输出,功能结构如图2所示。基于ActiveX的地理信息系统开发谢文辉第5页共6页图2东海电缆管线地理信息系统的基本功能桔构图系统的编写采用VB平台,系统的模块既相对独立又相互补充,构成完整的系统,实现对东海区管线的全面管理。运行基本界面如图3所示,基本上实现了分层管理、属性查询与更改、对象的编辑、节点吸附、漫游与缩放、自定义标注、自动标注、多边形选择、距离与面积的量算、打印输出、栅格输出、文件输出、缓冲区分析还有鹰眼图、所选对象坐标的查询与提取、所选对象的存贮与输出、投影变换、视图比例查询与更改、专题图制作等特色功能。空间数据键盘输入扫描数字化手扶数字化格式转化属性数据编号/注册号所有人管线长度用途辅设方式。。。。。。。。。基础数据:点、线、面、文本结构功能设计开发方案比选查询请求输出形式显示器打印机栅格矢量图像文件输出查询存贮功能分析编辑功能输出功能其它基本功能索引引编辑请求分析请求基于ActiveX的地理信息系统开发谢文辉第6页共6页图3系统运行的主界面图4结束语该信息系统针对东海管道电缆资源的各个层面,实现资源的统一平台管理。结合地理信息系统技术,为管理部门提供决策的便利。本地理系统的开发和应用,为海洋资源管理提供了一种全新思路和优质高效的管理手段。在横向上,可以类似的开发出海域使用GIS、海洋灾害GIS、海洋工程GIS等,在纵向上,在此基础上可以集成与扩展各种功能,使它变为地理信息管理信息系统和DSS系统。软件的组件化已成为软件技术发展的潮流。基于COM/DCOM的ActiveX构件实现,已成为软件工业的一种标准。伴随着未来其它非Windows平台对ActiveX的支持,基于ActiveX构件化的GIS软件系统将对GIS的体系结构和GIS将来的应用前景产生深远影响。当前位置显示栏查询距离显示栏当前所选图层显示栏所选取物属性查询视图比例图层控制工具栏菜单与工具栏等属