发表用户:James.Liu
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=16&ID=984
信息原始来源:不祥

文章标题: 基于组件对象模型的GIS-校园地理信息系统

 

  摘 要 将地理信息系统采用的核心技术归纳为地图分层、矢量抽象、空间数据与属性数据的划分三个方面,以此为基础,探讨了基于ActiveX技术的GIS平台。利用此类GIS平台,结合校园信息的特点,使用面向对象的方法,抽象出校园图、楼、楼层、房间等通用概念,基于视图与视图配置的模型,开发出校园地理信息系统软件。实践证明,采用这种技术能缩短地理信息系统软件的开发周期,提高软件的可扩展性。

  关键词 ActiveX 地理信息系统 校园信息系统

  分类号 TP 319: P9

GIS BASED ON COMPONENT OBJECT MODEL

--SCHOOL GIS

AbstractThis paper describes Geographical Information System's core technology as map layers, vector maps, and spatial-attribute data recognizing, and gives a further comment on GIS which bases on ActiveX technology. Using object oriented method, a model consist of school map, buildings, floors and rooms is built for school GIS. Based on view and view configuration model, using such GIS platform, a school GIS software is developed. This application shows that using such GIS platform can shorten GIS software developing cycle and improve software extendibility notably.

Key wordsActiveX GISSchool Information System

0 引言

  地理信息系统是由计算机硬件、软件、地理空间数据和管理人员共同组成的集合,以有效地获取、存储、更新、管理、分析和显示各种形式的与空间有关的信息。地理信息系统采用的基本技术可归纳为地图分层、矢量抽象、空间数据与属性数据的划分三个方面。

  地图分层技术一方面可以将复杂的地图简单化,从而大大简化了系统模型和处理过程;另一方面,以单一的图层作为处理单位,使系统具有很大的灵活性。例如,系统可以将不同图层组合,以产生满足不同需要的地图。矢量抽象技术是传统地图学处理方法的延伸,符合人们的思维习惯,有利于地理信息系统的传播和接受; 同时,一些简单的、规范化的几何要素,不仅使系统的处理变得简单,而且也有成熟的几何理论和变换方法作为数学基础,就像关系数据库理论建立在关系代数的基础上一样,地理信息系统这种划分也使它具有基本的数学变换基础。建立在这样一种基础上,使地理信息系统有可能具有各种复杂的功能。例如,投影变换,邻域关系,包含关系,相交关系,最短路径,叠合分析,缓冲区分析等等。空间数据与属性数据划分技术可使地理信息系统软件重点放在对空间信息的管理上,借用已有的数据库技术来管理用户的属性数据,实现多种信息的综合。这种简化处理,使属性数据得到了高效、强大的数据库技术的管理,大大加快了地理信息系统的发展。

  地理信息系统技术的上述划分,简单、清晰,为地理信息系统的发展和今后按照市场和用户的需要,开发出相应的技术奠定了基础,这也是校园地理信息系统技术的基础。

1 基于ActiveX的地理信息系统平台

  地理信息系统软件出现之初,是以单独应用程序的方式运行的。它的功能强大而完善,但软件庞大且昂贵。近年来,随着PC机和Internet的普及和发展,地理信息系统能够运行在每台机器的"桌面"上显得日益重要。这样,每个用户都能够访问地理信息,而不用购买一套庞大而昂贵的地理信息系统软件。满足这种小型化、桌面化要求的,就是基于组件对象模型的地理信息系统平台。

1.1 面向对象技术和ActiveX

  面向对象技术(Object-Oriented Technology)的思想萌芽于60年代,到80年代初,以SmallTalk-80语言为代表逐渐发展成熟,并在90年代大范围流行开来,在计算机用户界面、人工智能、软件工程等很多领域取得了极大的成功。面向对象理论强调软件的可维护性和可重用性,其关键思想主要有以下几个方面:

(1)类(Class)和对象(Object) 现实世界中的很多物体都是当作整体来看的,在软件中也应该采用这种思想。在软件建模和其他类似的领域中,也应当将对应于现实世界的各种实体抽象成对象,当作整体来处理;对象与对象之间可以交互;具有共同属性的多个对象抽象为类。对象可以保存自己的状态(属性)。由于对象与现实世界的实体对应,从而加强了软件模型的易理解性、可读性和可维护性。

(2)封装(Encapsulation) 对象的所有信息由对象自己维护,封装起来,对外不可见;对象提供一些服务,外界通过向它发送消息,来访问这些服务,从而访问对象。通过对对象状态的隐藏,增强了软件的稳固性和可维护性。

(3)继承(Inheritance)与多态(Polymorphism) 类可以继承,这样,子类可以继承父类的大部分特性,而修改自己的专有特性。对象可以继承父类的方法,亦即服务,也可以在相同的接口下提供不同的实现,从而实现对相同接口的不同反应。通过继承和多态性,大大增强了软件的可重用性。

  微软(Microsoft)在它的Windows操作系统中应用了面向对象的思想,它的组件对象模型(Component Object Model,简称COM)就是用来提供应用程序之间的对象互访。ActiveX技术建立在COM的基础上,由原来的OLE技术发展而来,其目标是提供一种与操作系统平台无关、与机器平台无关的,可以在应用程序之间互相访问对象的机制,它是操作系统平台级上对面向对象方法的支持。接口是该技术的基础,它是应用程序之间对象互相访问的唯一途径。对应于面向对象方法中对象提供的服务(或对象的方法),COM对象将它所能提供的服务以接口的形式公开,并且通过接口访问其他应用程序提供的COM对象。建立在接口的基础上,ActiveX技术还提供很多优异特性支持,例如,支持复合文档,各个ActiveX服务器的文档可以一起存储;支持分布式的应用,通过分布式组件对象模型,用户的程序可以分布运行在网络(例如Internet)上;通过ActiveX组件和支持ActiveX的浏览器,用户可以在Internet/Intranet上使用分发的软件;任何支持ActiveX的开发环境都可以使用分发的ActiveX控件,应用这种技术可以大大扩展软件的应用范围,等等。ActiveX技术将面向对象的方法提升到了系统平台级,从而在应用程序之间实现软件的重用。

1.2 采用ActiveX的地理信息系统平台

  鉴于ActiveX技术的上述优点,地理信息系统采用先进的ActiveX技术,提供基于ActiveX的控件,其好处是显然的,它满足了PC机市场、桌面系统对地理信息系统小巧、廉价的要求,并且由于ActiveX技术对Internet的支持,使得在世界任何地方通过Internet浏览地图、访问地理信息成为可能。

  如图1所示,一个典型的基于ActiveX技术的地理信息系统平台,在用户桌面计算机系统上,它的角色就相当于一个"地图引擎"(Map Engine)。用户的GIS应用程序通过地图引擎和数据库驱动来访问数据库(空间数据和属性数据)。在这种模式下,地理信息系统工具比大型的基于应用程序的地理信息系统平台具有如下优势:

 

图1 地图引擎

  ①小巧。平台去除了应用程序界面的设计,提供最少的属性数据管理,使平台的规模大大减小,真正可以高效运行在用户的微机上。

  ②灵活。由于界面、数据库都由应用程序开发者管理,因此,地理信息系统应用软件开发人员能尽可能地开发出符合用户要求的、界面友好、功能强大的软件。

2 校园地理信息系统模型

  在开发中国科学院研究生院校园地理信息系统过程中,使用了基于ActiveX的、开放的、面向对象的地理信息系统平台Map Engine,并结合具体需要,对模型作了进一步的抽象。

2.1 系统需求

  为加快校园信息化步伐,提高工作效率,强化信息管理,中国科学院研究生院决定建立校园地理信息系统(简称SGIS),具体问题是:

(1)学校中有些部门(例如人事处、学生处等)已经有了自己的管理信息系统,但各个系统之间互不相容,没有信息之间的联系。为了提高学校整体管理效率,要求SGIS能够集中管理多种信息,并能够扩充。具体说,SGIS需要管理学校人事、教务处课程开设、学生处学生信息,需要具备人事、课程、学生情况的数据录入、编辑、管理、查询、统计、报表等功能。

(2)学校虽然有一些管理信息系统,但这些系统是缺乏对地理信息管理的功能。SGIS不是一个简单的MIS系统,它应该能够对学校楼群、重要楼(如教学楼、礼堂、办公楼、学生宿舍楼等)各层房间的分布,各个房间用途、负责人、电话等信息进行管理。它应具有楼图、楼层房间图的浏览、录入、编辑、查询、打印输出,以及相关统计报表功能。另外,空间信息必须与非空间信息(人事、课程、学生等)能无缝地结合起来,即系统应该是一个整体。

(3)系统需要提供空间信息与非空间信息相结合的数据分析功能,为学校决策层提供辅助。例如,统计各个教学部教职工的职称、年龄分布,统计各个教学部所占房产面积、人均房产面积等,以支持学校分房工作,正确掌握学校资产部门的空间分布状况。

  虽然MIS能够将上述部分工作做得很好,但无法直观地表达数据的空间概念; 单独开发图形管理系统,也是可能的,但需耗费巨大的人力、物力,且很难做得完善。将地理信息系统的ActiveX控件嵌入SGIS,基于组件化的地理信息系统SGIS就有可能顺利完成上述与空间信息有关的任务,例如空间图形的录入、编辑、浏览、查询、统计等,以及与其他现有非空间数据的无缝结合。

  另外,必须看到,即使不考虑面向对象方法的优点,因为基于组件化的地理信息系统控件对空间信息建立的模型是面向对象的,要使它真正"嵌入"系统,与系统成为一体,系统也应该采用面向对象的方法建立模型。一个具体系统中,空间信息往往比通用的空间信息模型复杂,因此,SGIS首先要对校园空间信息类型建立清晰的模型,用面向对象的方法对系统建立模型。

2.2 空间模型

  中国科学院研究生院校园规模比较小,但是具有一般校园、乃至一般单位的共同特性。在对该项目的需求进行仔细分析后,把与空间信息有关系的信息抽象为如下几种对象(图2):

 

图2 校园地理信息系统空间模型

(1)校园图 记录了校园中楼群、绿地、运动场、防火重点部位等信息,其中最重要的是楼实体。

(2)楼 楼是校园中具体空间信息的基本单位,是校园尺度范围和房间尺度范围的联系纽带。楼可以建立楼详图,楼详图中包括楼的各个楼层。

(3)楼层 楼详图中包括若干楼层。楼层是楼这种对象与房间以及地图紧密结合起来的纽带。每个楼层作为一幅地图,它可以包括若干图层。其中最重要的是房间图层,记录了房间实体信息。

(4)房间 房间实体是系统空间信息的最小单元。房间实体具有属性数据相联系,并且通过房间所属部门的属性,将空间信息(房间)与重要的属性单位(部门)联系起来了,从而完成了空间信息与校园属性数据库的直接联系(除了房间自身的属性联系外)。

  与一般的复合图、图层模型不同,该模型加入了楼层这种对象,并且通过楼、房间等实体的属性关联起来,与其它的属性数据有机结合成一个整体。通过以上的模型,在我们开发的校园地理信息系统(SGIS)中,浏览校园图,可以进入楼,可以查看楼的任何一层,在浏览任何一个具体楼层时,可以查看各房间的属性,并能轻松跳转到该房间所属的部门,查看部门的其它信息。在查看各部门的信息时,也可以跳转到该部门所在楼层的地图,查看该部门的空间信息。

  应当看到,上面的模型并不限于科大校园,或者学校,对任何一个单位,都可以建立类似的模型。因此,可以将上述模型应用于类似的单位信息系统中。

2.3 系统模型

  为了清晰地定义和控制校园地理信息系统结构,保证系统的扩展性,经过仔细地分析,基于面向对象的思想和分析方法,我们将系统结构模型定义如下(图3):

 

图3 校园地理信息系统模型

(1)考虑到系统管理信息的多样性和复杂性,我们划分出视图和视图配置两个概念。视图控制信息的显示以及和用户的交互,不同类别的信息(地图、教职工、课程等)在不同的视图下进行浏览,这样既解决了信息多样性问题,也为以后多种信息加入系统留下接口。每一个视图关联一个视图配置,用视图配置保存对应视图的相关配置信息,这样在不同视图中切换时可以保存原来视图的状态。为进一步降低复杂度,实际系统对视图配置作了更详细的划分,形成了一个继承树,将视图配置的通用、专用部分分开。这种模型类似于软件中的文档--视结构。

(2)视图有两类,地图视图和数据库视图。地图视图显示地图类信息,例如校园图及楼详图,它控制实体属性界面、楼详图管理、楼层、图层管理等复杂任务; 数据库视图显示其它数据信息,如教职工、课程、学生等,负责显示数据、提供数据编辑界面。视图还提供在视图之间互相切换的接口。

(3)视图配置也分两类,地图视图配置和数据库视图配置。地图视图配置保存地图视图的相关配置信息,如当前楼、当前楼层、当前图层、当前实体等; 数据库视图配置则保存相应数据的有关信息,如表名、过滤器等。对应各种数据,系统从抽象数据库视图配置继承各种类型的数据库视图配置,如图中的教职工数据库视图配置、课程数据库视图配置等,各种数据库视图配置,知道如何访问自己的专用数据。

(4)与地理信息系统平台的交互由地图视图关联的地图控件完成。地图控件负责访问地图数据。对系统进行如此划分,系统结构比较清楚,利于将复杂的功能分解,对系统将来的扩展、更新也有好处。另外,对系统中信息的查询(包括复合条件的查询)和查询结果的统计、报表等要求,我们设计了通用的查询器,查询结果传递给统计、报表等模块。它们的结构同样是基于面向对象的思想,所以,在我们的系统中,各个视图(地图实体、数据库视图)都具备同样的复杂查询能力,对查询结果的统计、报表界面虽然因内容而异,但界面都基本一样。采用面向对象的设计,不仅利于开发者对系统的控制,而且用户也容易学习。

3 校园地理信息系统实现

3.1 平台选择

  系统的首要任务是选择软件平台。SGIS在Windows 95以上版本的操作系统下运行; 地理信息系统平台,采用了Map Engine--一个基于ActiveX的、小巧快速、易于使用的GIS软件平台; 由于学校的数据量不是很大,为了易于使用,数据库管理系统选用了安装、维护都比较简单的Microsoft Access; 系统开发环境,选择了高效的Borland Delphi 4.0,它完全支持ActiveX控件的应用,对数据库也非常支持,提供完全可视化的、面向对象的编程环境,有利于提高系统的开发效率,加快系统的开发进度;另外,用它能够开发出一流的用户界面,使系统易于使用。

3.2 数据准备

  将最新的航空影像图数据进行纠正处理,然后在Map Engine提供的桌面系统编辑环境中以图像为基础录入校园地图;另外,从学校获得有关楼的详细规划图,在进行校园现状调查的基础上绘制楼详图。系统的属性数据主要包括全校教职工、课程设置、学生数据库等,它们来源于学校各相关部门,并经过整理,形成了完整的、消除了冗余的数据库; 最后,在本系统中完成了空间数据和属性数据的连接,形成了本系统最后运行的数据系统。

3.3 使用地理信息系统控件

Map Engine的地图控件虽容易使用,但也需要编写一定的代码。对于二次开发而言,这些代码是相当简单的。例如,要显示一幅地图,在窗口上放置两个控件: SpaDB控件和CompoundMap控件。在系统的启动代码中添加如下语句:

SpaDB.Open('E:\SGIS\Data\Sgis.xdb'); //打开地图数据库 Sgis.xdb

CompoundMap.Connect( SpaDB.GetHandle ); //连接复合图控件和地图数据库控件

CompoundMap.Open( '校园图' ); //打开复合图 "校园图"

CompoundMap.Redraw; //显示复合图

  可以看到,只用简单的几行语句就可以显示一幅地图,这在以前的软件开发中是不可想象的。同样简单的是,只用几行语句就可以进行基本的电子地图操作:

CompoundMap.CurrentTool := meDoZoomIn; //进入地图放大模式

  要进行更为复杂操作,就需要自己编写代码了。由于Map Engine的面向对象方式,代码的编写比较系统、直观,也不是很困难。利用Map Engine比较容易地完成了以下复杂功能:

(1)浏览、编辑地图。对每幅地图,可以放大、缩小、漫游,查看各地物的属性,查看面状地物如楼、房间的面积。可以控制各个图层的显示,查看我们关心的图层。可以修改地图,新增、删除、编辑地物、图层、楼层、楼详图,以使新建楼或者对建筑进行修改能够及时地反映到校园地理信息系统中来,保证信息的及时更新。

(2)测量地图。利用地图工具,我们可以测量校园里的任意两地之间、任意路线的距离,可以测量任意地物、任意形状的面积,而不用实地勘测。

(3)地物统计。在地理信息系统控件的支持下,我们可以对地物对象进行各种统计分析,并直观的显示在用户眼前。例如,我们可以查询出一个部门的所有房间,或者一个楼层的所有教室,并显示在地图上。

3.4 其它的实现考虑

  在校园地理信息系统设计中,我们考虑了几类用户的潜在需求,建立了教职工、课程、学生数据库,利用数据库管理系统(DBMS),完成了对如上信息管理的支持。在系统的实现中,我们还做了如下工作:

(1)在开发系统的过程中,建立数据库表之间的关联,建立主表与从表之间的关系,消除了原来数据源之间的大量冗余,保证了系统信息的一致性。

(2)考虑到信息更新的必要性,系统不仅提供了地图更新工具,还开发了数据库纪录的增加、删除、编辑、排序等各种功能,并使用了大量的SQL语句,直接让数据库管理系统完成复杂的计算和操作,大大提高了系统的速度和效率。

(3)为了让用户能迅速找到目标信息,系统开发了对信息予以各种条件形式的查询功能。在本系统提供的查询器中,用户不仅能作简单的名称查询、模糊查询,而且能做任意复杂的复合条件查询,用户可以组合任意条件;用户输入的条件还可以保存起来,供以后查询使用。例如,在查询器中,用户能很容易的输入条件:"所有40岁以上的高级职称人员","所有地学部的教授","所有毕业于北京大学的97级地学部学生","地学部的办公室"等等。查询结果可以立即显示。

(4)利用统一查询器的查询结果,可以对信息进行各种统计,并以直观图表的方式显示给用户。同样,地图信息和其它信息的报表、统计界面完全一致。在系统这种机制的支持下,用户具有很多灵活性,例如,用户可以很容易地做出"全校40岁以上的高级职称人员年龄分布图",或者"全校各学部占用面积分布表"。

4 总结

  中国科学院研究生院校园地理信息系统从数据准备到完成,历时3个多月。在分析、设计、最后实现中国科学院研究生院校园GIS系统的过程中,我们充分体会到,应用新的技术,可以大大提高信息管理的能力和效率。我们的结论是:

(1)应用地理信息系统技术,能更高效、直观、综合地管理空间和属性信息。它比单纯的基于属性数据库的管理信息系统具有更直观、信息容量更大的优点。

(2)基于组件技术的地理信息系统平台,对各种开发环境开放,具有可视化的优点,使用它能大大提高软件开发的效率,缩短开发周期,具有很大的应用潜力。

第一作者简介: 徐建春 男 1976年生,1997年毕业于北京大学城市与环境学系,现为中国科学院研究生院硕士研究生,主要从事遥感和GIS方面的研究工作。

作者单位:徐建春 赵英时 张熙川(中国科学院研究生院,北京 100039)

参 考 文 献

[1] 陈述彭,赵英时.遥感地学分析.北京:测绘出版社,1990,5

[2] 周心铁,刘毓华.组件技术与GIS的发展.计算机世界,1998-03-16

[3] 黄杏元,汤勤.地理信息系统概论.北京:高教出版社,1989

[4]Proceedings of the second international workshop on geographical information system.(Beijing'90 8-11 August)