地理信息系统初探_第1页
地理信息系统初探_第2页
地理信息系统初探_第3页
地理信息系统初探_第4页
地理信息系统初探_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国科学技术大学学士论文本科毕业论文地理信息系统初探作者胡玉锁导师鲍远律系别自动化系专业自动控制1999年4月11中国科学技术大学学士论文致谢首先感谢鲍远律教授和张旺生老师三年来对我的指导和关怀,他们严谨的治学态度和认真的工作作风给我留下了很深的印象,并将在我今后的人生道路上,鼓舞我继续前进。感谢同在GPS实验室的全体研究生、本科生。他们三年来给我的帮助,使我受益非浅。同时感谢他们在我完成这篇论文期间,提出的宝贵意见和提供的便利条件。没有他们的帮助,这篇论文是很难如期完成的。在大学本科阶段的学习生活即将结束之时,我想对9510全体同学致以谢意。与他们共同度过的美好时光,将永远留在我的记忆里。最后感谢含辛茹苦抚养我长大的父母,他们对我的爱,永远都是支持我奋发向上的精神动力。22中国科学技术大学学士论文摘要地理信息系统正成为计算机应用技术中的一项热点。本文简要介绍了地理信息系统的概念、体系和结构,借鉴面向对象的方法,对地理信息数据模型的建立进行了初步分析;讨论了有关地理数据的结构和编码;并结合实际,就地理信息系统开发过程中,关于系统层次、数据组织、二次开发等方面提出了一些解决方案。关键字地理信息系统数据模型数据结构和编码组件式开发脚本技术ABSTRACTGEOGRAPHICINFORMATIONSYSTEMHASBEENVERYHOTINCOMPUTERAPPLIEDSCIENCETHISTHESISINCLUDESTHEBASICCONCEPTSOFTHEGEOGRAPHICINFORMATIONSYSTEM(GIS)ITDISCUSSESABOUTTHEGEOGRAPHICDATAMODELINGANDTHEGEOGRAPHICDATASTRUCTUREITALSOPROVIDESSOLUTIONSOFSOMEPROBLEMSSUCHASSOFTWAREARCHITECTURE,GEOGRAPHICDATAMANAGEMENTANDREDEVELOPMENTINTERFACE,WHICHOFTENAPPEARDURINGTHEGISDEVELOPMENTKEYWORDSGIS,DATAMODEL,DATASTRUCTURE,CBD,ACTIVESCRIPT33中国科学技术大学学士论文目录第一章引言111地理信息系统的概念112地理信息系统的组成113地理信息系统的类型214地理信息系统的发展新趋势3第二章地理信息的数据模型421地理信息元的数学模型422地理现实的基本特点623面向对象的地理数据模型7第三章地理信息的数据结构和编码1031点阵结构1032矢量结构12第四章地理信息系统开发技术1641信息系统的体系结构1642基于组件的软件开发1943二次开发接口的实现2144地理信息在INTERNET上的发布24第五章结束语27参考文献2844中国科学技术大学学士论文第一章引言11地理信息系统的概念地理信息系统(GIS)也称环境和资源信息系统(ERIS),是指一种在计算机支持下的,对地理信息数据进行输入、存储、检索、运算、显示、更新、统计和分析的应用技术系统。地理信息系统的研究和开发始于六十年代初,最早的较成熟的地理信息系统是1967年研制的加拿大地理信息系统(CGIS,这一系统处理土地调查所得数据,发展到1971年,已成为较为完善的信息系统。在此期间美国、瑞典、法国等也发展了各自的地理信息系统。自八十年代以来,我国的地理信息系统研究也开始蓬勃发展。目前,GIS的应用领域已经从原来的地学专业,扩展到工程布线、城市规划、办公自动化、定位通讯等诸多领域。12地理信息系统的组成一个地理信息系统无论其大小、功能怎样,大体上都可视为由以下三大部分组成,如图11所示各种地图专题图像数据资料统计图表数据输出子系统数据存储、分析子系统数据输入子系统其他系统数据文件存储图11地理信息系统的组成NULL数据输入子系统也称数据采集和加工子系统,在这一系统中,根据地理信息系统的需要采集各种数据送入计算机,并加工成地理信息数据库可接受的数据格式。NULL数据存储、管理和分析子系统这是GIS的核心部分,又可分为三个部分第一个部分是数据库管理部分(DBMS),是最重要的部分。它不仅要管理普通的属性数据,还要管理复杂的空间数据,必须提供对地理数据的组织、存储、查询、55中国科学技术大学学士论文运算、更新和显示的功能。第二部分是人机接口部分,负责提供一个友好的人机界面,接受和管理用户的输入,并完成相应的事务。第三部分是模型分析子系统,它根据地理信息系统的实际应用,利用数学模型,对大量的地理数据进行统计、分析,并试图得出有实际意义的分析结果。这一部分目前在地理信息系统中功能还比较薄弱,有待进一步的发展。NULL数据输出子系统将前面计算、分析的结果以各种形式记录下来,根据需要直接输出结果,或作长期保存。13地理信息系统的类型通常所见的地理信息系统,主要包括以下几种类型1专题地理信息系统这种系统通常只处理某个专门领域内的地理信息应用,以某个特定的专业或问题作为研究对象,强调其专业目标。如矿产资源信息系统、道路交通信息系统等。在本专业的范围内,这些系统通常可以应用于不同的区域。2区域地理信息系统以某个特定区域的综合信息、指标作为研究对象,结合该区域的地理信息,完成对该区域的考察、分析和决策的地理信息系统,称之为区域地理信息系统。这类系统大可到一个国家,小可至一个街区。如加拿大地理信息系统、合肥市地理信息系统等。3通用地理信息系统通用型的地理信息系统作为一套技术性系统,提供了成套的对地理信息进行分析和处理的工具。它更加侧重于解决基础性的问题,实现较底层的功能。给用户提供了一个地理信息平台,因此亦可称之为平台型地理信息系统。如ARC/INFO、MAPINFO等。14地理信息系统的发展新趋势九十年代以来,随着计算机性能价格比的迅速提高,地理信息系统的发展也日新月异,系统的处理能力大大增强,同时,计算机网络的飞速发展,使得地理信息系统能够实现更大范围的数据共享和数据通讯。在这种情况下,地理信息系统呈现出以下几个方面的发展趋势1空间数据的标准化。各个GIS软件之间的空间数据共享,将成为GIS软件产业发展的一个重要趋势。目前,美国正在制定“开放性地学数据相互操作规范(OPENGIS)”,并已推出了原型系统。在我国,国产软件的标准化也已经成为一个急需解决的问题。空间数据标准的研究已列入国家科委“九五”重点科研项目。66中国科学技术大学学士论文2三维和四维地理信息系统已经成为GIS发展的一项热点。GIS的研究和开发,已经开始考虑如何采用适当的数据结构和模型来表示三维信息和时间信息。3基于GIS的系统集成应用广泛。在通用型GIS的基础上,将GIS与建筑规划、CAD、桌面办公、统计分析、决策支持等软件集成,以解决某个特定领域的问题,是GIS的一个重要应用趋势。4基于网络的分布式GIS和WEBGIS开始出现。随着INTERNET和INTRANET的普及,地理信息的网上发布和共享已经成为可能,各种应用于网络的GIS也层出不穷。在当前形势下,开发具有我国自主版权的,实用化、标准化的地理信息系统基础软件是推动GIS产业在我国的发展,普及GIS在国民经济各领域的应用的迫切需要,对于保持国家信息的主权、发展信息化高新技术产业均有十分重要的影响。第二章地理信息的数据模型地理信息系统作为信息论在地理学中的一种应用,其核心应当是空间信息。空间信息包括空间位置、空间分布、空间形态、空间关系、空间统计、空间关联、空间对比、空间趋势和空间运动等各个方面。因此,地理信息系统的分析和设计,也必须以对空间信息的深入研究为基本前提。下面通过对地理信息的特点的分析,利用面向对象建模技术(OMT),给出一种较为符合地理现实的地理信息数据模型。21信息元的数学模型地理信息可以看成是如下元组的集合,其中是二维坐标变量,代表空间位置信息,称为空间数据,而P1,P2,P3PN可以是各种类型的变量,代表该位置所具有的地理属性信息,称为属性数据。这种元组形式代表的是一个简单二维系统的地理信息元。显然,只要对增加空间数据,这种表示法可以进一步扩展。如三维地理信息系统的空间数据由三个分量组成,其形式如下所示研究动态地理对象时,还可以引入时间分量,即在表示一个现实中的地理对象时,通常是连续的,元组的77中国科学技术大学学士论文数目也是无限多的。将无限个元组的集合称之为域。这样,地理信息可以用域上的连续函数来表示FA其中A代表域,F是定义在这个域上的多值函数,表示地理信息元的集合。称F为属性函数。根据实际需要,域通常有以下几种形式1PIECEWISE形式这是将平面分成若干个简单的区域,每个区域内部可以视为同种类型(图21)。图21PIECEWISE域在同一区域内部,地理信息通常由一个简单的数学函数来描述,根据函数具体形式的不同,可分为以下几种1常数型这是最简单,也是最常用的一种形式,它说明在每个区域内部,属性数据是等值均匀分布的。2线性型即属性数据是地理坐标的线性函数。它说明在每个区域内部,属性数据是按线性插值分布的。这种形式的典型例子是在三角网络地形(TIN)中,每个三角形内部各点的高度就是三角形顶点的线性函数。如图22所示HFX,YYX图22线性函数实例TIN地形网络3其他类型有时,属性函数也可用一些更复杂的函数来描述,88中国科学技术大学学士论文但一般较少使用。2CONTOUR形式这是在气象图、地形图等中常常采用的形式。它是以等值线的方式来描述地理信息的分布。它通常可用下面的坐标集表示|FX,YC1,C2,C3CN图23CONTOUR域3采样形式通过对区域数据的采样,来近似刻画这个区域的地理信息。取样的密度通常是自适应的,即对于变化速率较大的区域,增加采样点数目。而对于变化缓慢的区域,则降低采样密度。地理信息系统为了能够适应多种形式的域和域上的空间数据、属性数据,引入了地理实体的概念,大部分地理信息系统都可以看作是在实体集的基础上建立的。每个实体EI可以有如下属性I,A1,A2,A3AN地理信息元OI0上不存在实体EI1上存在实体EI地理实体一般与现实中的地物是对应的,信息系统要准确地表示和刻画地理实体,就必须了解现实地物的特点。22地理现实的基本特点现实中的地理实体,连续分布在地球表面,其主要特征是连续性。这一基本特性在计算机的数字空间中,主要表现在以下几个方面1尺度性随着空间数据的比例不同,地理实体常常呈现出不同的形态。例如当地图比例尺缩小时,河流会逐渐从双线过渡到单线,城市会逐渐从一个99中国科学技术大学学士论文区域过渡到一个点。空间目标的形态、结构随着比例尺变化,常常也称为空间目标的多态性。2非原子性非原子性指的是地理实体可分割成更小、更基本的单元。如一条河流可以被分为多个河段,一个城市可以被分为多个街区,等等。反之,几个同类地理目标,也可以根据某种联系,合并成一个更大的地理实体。地理实体的尺度性和非原子性,给地理信息在计算机中的存储和管理带来了很大困难,这就需要寻找一个能够尽量准确地反映地理现实的地理数据模型。23面向对象的地理数据模型一般地,用尽可能少的有限数据集,通过合理的模型,来有效地描述大范围的地理信息的过程,称为地理信息的数据建模。如上所述,地理实体的复杂特性,使得传统的ER模型,难以全面、准确地刻画丰富的地理特征。特别是在某些专业领域,ER模型有限的表达能力暴露了其明显的不足。这就促使人们去寻找更先进的数据建模技术,将其引入GIS领域。面向对象的建模技术(OBJECTORIENTEDMODELINGTECHNOLOGY)是借鉴在软件开发中广泛应用的OO思想,使用分类、概括、联合、聚集等方法来构造基于对象的数据模型的一种建模技术。面向对象模型的基本特点是对象标识,分类和继承,多态性。它符合人类思维的特点,具有强大的概括抽象能力,能够描述复杂的客观事物,并具有良好的可扩展性。在地理数据建模中所使用的面向对象的方法,最典型的的有以下几种1分类CLASSIFICATION将一组具有相同结构的实体归纳为一类的过程称为分类。这些实体即为这一类的对象。实体与类是一种ISA关系。例如,从各种具体的公路、铁路、航线中,可以抽象出道路类的概念。2概括GENERALIZATION将一组具有部分相同结构的类归纳成更高层次的超类。例如,地理信息系统中,点、线、面等基础地理对象在对象标识、类型等方面由于具有相同的结构,可以进行概括,定义它们的超类地理对象类。3联合ASSOCIATION把一组类似的对象进行组合,形成更高级的集合对象。道路对象的联合构成了交通网、区域对象的联合构成政区图。一幅地图,实际上正是由各种基本地理元素的联合对象组成的。4聚集AGGREGATION将一组不同类型的对象进行组合,形成一个更高级的复合对象。在地理信息模型中,应用聚集的方法,就可以得出复合地理对象类的概念。复合地理对象是由各种不同的基础地1010中国科学技术大学学士论文理对象组成,同时复合地理对象本身又可以组成新的复合地理对象。这种特性,使得一切复杂的地理实体,都可以用复合地理对象的形式表示。应用面向对象的建模技术,我们可以建立如图24中的地理信息模型,图中一个方框代表一种类。他们分别是GOBJECT所有地理对象的虚父类。GARC,GPOINT,GPOLYGON分别是地理信息基本元素点、线、面类。GCOMPLEX复合地理对象类。GMAP地图类。概括联合聚集GOBJECTGMAPGPOINTGARCGPOLYGONGCOMPLEX图24地理信息的对象模型第三章地理信息的数据结构和编码地理信息数据包括属性数据和空间数据两部分,因此,在选择地理信息系统用的数据结构时,必须同时兼顾这两种数据的表达。常用的数据结构有两种矢量型和点阵型。它们之间可以通过一些算法,互相进行转换。31点阵结构空间数据的点阵结构,是用阵列的方式来表示数据特征。在这种数据结构中,地理实体的定位信息是隐含的,而属性信息则是明显的。点阵型数据可以有多种来源,可以用手工目读的方法得到,也可通过对地1111中国科学技术大学学士论文图进行扫描得到,遥感数据和分类影象数据也是常用的点阵数据源。点阵数据的编码方式有以下几种1直接记录最简单的编码方式是将点阵数据从上到下、从左到右,依次记录下来。这种编码直观方便,可以直接对其进行各种图形变换和运算,但是数据的冗余度较大。当地图尺寸比较大时,需要大量的存储空间。2链码对于等值线型图或元素值呈梯度分布类似于等值线的图象,可以采用链码编码。链码,也称为FREEMAN链码,是根据对等值线进行轨迹跟踪的方法,对边界进行编码。在链码中,对每个象素定义了如下所示的八个方向码70162543图31方向码在对一条等值线进行跟踪时,将起始象素坐标及沿等值线的方向码记录下来,作为该条等值线的记录。将所有等值线都记录下来,就可以完成对整幅地图的编码。图32是一个链码的例子。12等值线1起始点(2,1)链码2222223544444456666607700001等值线2起始点(3,2)链码22224444445660707001图32FREEMAN链码将地图按FREEMAN链码记录,达到了数据压缩的目的,但这种方法的应用范围很窄,且难于实现图象间的运算。一般都需要先将其转换成为原始的点阵形式,在进行处理。1212中国科学技术大学学士论文值得注意的是,在从点阵编码向矢量编码的转换的过程中,FREEMAN链码常常是其中的一种过渡形式。3行程长度编码在点阵数据中,比较同一行中的相邻元素值,具有连续相同值的元素的个数成为行程,当出现不同值的相邻元素时,就开始下一个行程。这样,原先一行的点阵数据,就可以用一组数据对GI,LI表示,其中,GI代表属性值,LI表示行程。行程长度编码适用于同一类型面积比较大,属性值变化缓慢的专题地图和分类地图。而对数据呈连续变化,区域分散的图象,则压缩比不高,优势不明显。4四分树和八分树所谓四分树,是将一个区域划分为四个大小相同的子区域,按照地图位置,分别标为NW,NE,SW,SE。对其中的每一子区域,继续进行划分直到在每一小块子区域内的属性值都相同为止。NWSWNESENWSWNESENWNESWSE图33区域的划分得到划分的结果后,将原始图象作为第0层,第一次划分作为第1层,对第1层的划分为第2层对第I层的划分为第I1层。就形成了一个四叉树的数据结构,称之为四分树。如下图所示NWNESWSE11NWNESWSENWNESWSE1313中国科学技术大学学士论文0010101001图34四分树同样,在对处理三维地理信息的过程中,我们可以引入类似的八分树编码,只需要将平面区域的划分改成对三维立方体的划分,就可以描述三维空间的信息分布。图35八分树32矢量结构任何空间实体都可以抽象成点、线、面(多边形)和区域。而区域又是由点、线、面按照一定的地理意义组合而成。矢量结构的编码是将这些点、线、面用矢量形式表示。矢量结构的特点是属性隐含、定位明显。各种地理实体的位置、划分以及相互间的拓扑关系都可以用矢量格式很好的表达。矢量结构的编码有以下几种1XY坐标形式将点、线、面分别用组成它们的坐标序列表示,就形成了XY坐标形式的编码。这种编码没有描述几何对象间的关系,对于相邻对象的边界,还会产生重复的坐标记录。2索引树形式将点、线、面一一编号,并将它们的关系用索引树的形式来表示。这样,只需要记录点的坐标序列。相邻的多边形可以共享公共边的数据。3拓扑形式拓扑形式的编码强调点、线、面三要素间的相互位置关系,其中最常用的是所谓双重独立地图编码(DUALINDEPENANTMAPENCODING)。1414中国科学技术大学学士论文图36是一个点、线、面组成的多边形网络,图中有7个节点,11条线段和5个基本多边形。其拓扑编码方式如表31所示。461173352581124910图36多边形网络表311324657矢量编号起点终点左多边形右多边形131012430233212412015422362503756538644397645107404115705注表中0号多边形代表图形外围空间。这种记录方式表现了点、线、多边形间的空间位置关系,便于编辑、也很容易查询、检索。根据某点或某多边形的索引号,就可以检索到与该1515中国科学技术大学学士论文点相连或与该多边形相邻的矢量边。在双重矢量编码中,所谓双重性指的是同一条矢量具有边界和上边界(BOUNDARIESANDUPPERBOUNDARIES)。设点为0维元素,线段为1维元素,多边形为2维元素。从拓扑角度看,两个0维元素形成一个1维元素的边界,方向可以从一个节点到另一个节点,两个2维元素形成一个1维元素的上边界,方向可以从一个面到另一个面。如图34,矢量L方向从节点1到节点2时,面A在左边,面B在右边。节点1,2构成了矢量的边界,而面A、B构成了矢量的上边界,这样不仅节点的位置关系被确定,而且多边形的关系也是确定的。这一特点唯一地确定了点、线、面三要素之间的相互关系,使得全幅图可以实现自动编辑校正。1LAB2图37矢量的双重边界双重独立编码包含了丰富的拓扑信息,因此它的应用范围很广。例如,在城市地图中,可以通过对空间关系,分析城区的情况某一城区包括那些街道,某公共汽车经过那些城区,从某点到某点的最短路径等等;在布线系统中,DIME可以有效地用于拓扑网络的生成、校正和分析;数字地形数据也可用这种编码经过改进而实现计算机的存储、编辑。第四章地理信息系统开发技术41信息系统的体系结构在开发地理信息系统时,由于系统功能的复杂性和处理数据的多样性,需要有一个清晰的体系结构(ARCHITECTURE)。系统的体系结构包括系统的层次,数据的组织,功能的划分等多个方面。事实上,软件的体系结构是在分析阶段所需要解决的最重要的问题之一,如果使用了合理的、扩展性好的系统结构,将使得开发的目标更加明确,且更加容易进行二次开发来扩充功能。1系统的分层结构经过对地理信息系统的功能分析,大体上,可以将整个系统划分为几个层次,以满足不同的数据处理需要,1616中国科学技术大学学士论文图41系统的分层脚本语言用户数据对象标识矢量编码对象层表示层应用层原始地图几何层其中,各个层次的功能及所代表的实际意义分别为NULL几何层几何层代表的是地理对象的纯几何属性,处理对象是原始的地理数据,在本系统中,它的作用是生成矢量的DIME编码,并对其进行编辑、校正和存储。几何层屏蔽了地理实体的具体空间数据,而是以矢量编码的形式对上层提供所需要的各种点、线、面的显示、检索、操作和运算等服务。NULL对象层对象层根据用户的需要,在几何编码的基础上构建有关的地理对象,代表现实中的地理实体。地理对象具有实际的地理意义,是联系地理实体的空间数据和属性数据的桥梁。在对象层中,系统可以接收用户自定义的一些地理属性数据,将它们与相应的地理对象相关联。对象层以对象标识的形式提供给上一层接口。NULL表示层表示层只能在地理对象集合上进行操作和处理,它的作用是将整个地理信息系统封装成多个功能上相对独立、结构紧密的组件,每个组件对应于系统的,并提供了一种描述性的脚本语言,可以用脚本语言的形式对组件进行操作。这样,表示层相当于提供了对整个系统的规范化的描述,其他应用程序可以通过表示层来嵌入和利用地理信息系统的功能。1717中国科学技术大学学士论文NULL应用层应用层实际上是对信息系统的二次开发。利用表示层所提供的组件,用户可以构造出自己所需要的,具有某些特殊功能的子系统。对于具有开放结构的地理信息系统,用户还可以引入新的组件,来扩充原有系统的功能。2地理数据的组织实际地理数据库常常容纳了大量的地理数据,如何对这些地理数据进行组织,以提供一个清晰的视图,无疑是很重要的。首先,要根据比例尺对数据进行必要的分级,在同一级别的地图也常常要划分成若干个子块,称之为图叶(LEAF),如图所示比例由小变大图叶图42图叶的划分每个图叶在地理数据库中都有其相应的索引来表示它所处的级别。图叶与图叶之间,上下两级图叶之间可以采用33矩阵的形式表示其次,当利用地理信息同进行综合分析与决策时,必须在一张地图上同时显示多种不同的信息,因此有必要对地图进行分层。通常把图叶分成几个不同层次的子图叶,分别对应不同的内容。在使用时,可以根据需要显示所选择的若干层子图叶。例图交通图子图叶政区图子图叶图叶地形图子图叶图43图叶与子图叶1818中国科学技术大学学士论文按照分层的图叶方式来组织和管理地理数据,具有直观的地理意义。当用户在地图上漫游、放大和缩小地图时,系统通过调入适当级别和子块的图叶,就可以使用户感觉是在一张巨大的无缝地图上漫游,具有很强的连贯性。另外,对不同地区的地理数据的添加和更新也就是对不同图叶的编辑、修改,这使得各部分的地理数据既具有一定的独立性,又不脱离整个系统的大环境。42基于组件的软件开发随着GIS技术的广泛应用,用户对地理信息系统不断提出更高的要求。很多系统开发者们感觉到,原来的软件设计方法和技术已经越来越不能满足对更复杂系统的需要。软件工程师们开始转向一种新的、基于组件的开发技术(COMPONENTBASEDDEVELOPMENT)。这种技术通过编写和使用软组件的方式,来构建信息系统。组件开发技术一般是建立在某种通用的二进制标准之上的,这些标准使得开发者们可以重用在任意平台上,用任意语言编写的组件,从而大大消除了对相同功能模块的重复开发和设计。软组件实际上是对一组接口(INTERFACE)集合的物理实现,它在系统中是一个独立的、可拆卸的组成部分。它定义并解决一个特定的问题。每个组件有它自己的进程空间和数据,相当于一个小程序,而组件之间只通过接口相互联系。这种弱耦合的组合方式,使得整个软件的结构相当稳定、牢固。在完成模型分析和结构设计后,对系统的开发和维护,就完全转变为对各个组件的开发、维护。与传统的单片应用程序开发方法相比,基于部件的方法具有以下优点NULL可重用性指“创建能够被很多应用程序使用的通用组件”,许多应用程序可共享和重用封装在组件中的功能。组件的使用者只需要理解向他们公开的接口,而不需要知道组件的内部结构和组件使用的数据。NULL能够使用各种语言或工具编写可重用组件,允许组件开发者使用最适合特定任务的语言和工具。NULL易管理和易维护。将大型复杂的工程细分为简单、安全的部件工程。NULL可以使用部署在网络上的分布式组件,从而取得效率、性能、安全和维护上的最大利益。可以将一个应用程序的某些组件驻留在中央数据库服务器上,某些部署在部门性的“业务”服务器上,另外的部分驻留在最终用户的客户机上。而组件的实际位置对最终用户是透明的。目前,软组件的标准尚未统一。影响较大的有以下两种对象管理工作组OMG的CORBA和微软公司的COM/DCOM。这两种标准的具体实现虽然很复杂,但在结构上大致都由下面几部分组成1919中国科学技术大学学士论文1接口定义部分提供一种接口定义语言(IDL),对组件的接口进行清晰、准确的描述。提供IDL编译器,能根据需要将其翻译成不同的编程语言。2组件管理部分定义组件的命名空间,给组件分配唯一的名字或编号。并管理组件实例的创建、运行和删除。以网络透明的方式向用户提供分布式组件的接口。3事务管理部分控制分布式组件的运行,管理事务和消息,为组件的运行提供一个安全的环境。从目前的发展情况看,CORBA虽然是一个完全跨平台的组件标准,但缺乏实际应用和推广。而COM/DCOM已经有较成熟的产品,但目前只局限于MICROSOFT平台。将基于COM/DCOM的组件开发技术应用于地理信息系统的开发中,可以解决GIS系统集成中存在的所谓基础软件同专业应用软件的“接缝”问题。应用组件技术可以实现高效、无缝的系统集成。其基本思想是把GIS的各大功能模块做成控件,在GIS控件与其他控件之间可以利用其他软件开发工具以搭积木的形式集成起来,从而形成最终的GIS应用。下面是GIS中的一个地图显示控件GMAP的例子(用MICROSOFTIDL描述)。UUIDEAA0AB57331D11CF85AC00400531DEBE,HELPSTRING“DISPATCHINTERFACEFORGMAPCONTROL“,HIDDENDISPINTERFACE_DGMAP/接口名PROPERTIES/属性ID0X00000001LONGVIEWPORTWIDTH/地图视口的宽度ID0X00000002LONGVIEWPORTHEIGHT/视口的高度METHODS/方法ID0X00000003VARIANT_BOOLLOADVECFILEBSTRFILENAME/调入矢量图文件ID0XFFFFFDDAVOIDREFRESH/刷新屏幕ID0X00000004VOIDZOOMIN/放大ID0X000000052020中国科学技术大学学士论文VOIDZOOMOUT/缩小ID0X00000006VOIDMOVELONGDIREC,LONGDELTA/向某个方向移动DELTA个单位ID0XFFFFFDD8VOIDABOUTBOX/弹出控件版本信息可以预见,基于组件的软件开发技术,必将成为现代软件技术发展的主流。它不仅可以用于信息系统的开发中,也是开发各种通用软件的利器。如,操作系统设计中的微内核技术,就是这种组件开发思想的一种体现。43二次开发接口的实现在系统集成等应用中,地理信息系统常常是作为一个基础性的信息平台,为其他系统提供与地理信息有关的操作、管理、检索等服务。对于一般的地理信息应用,用户在使用GIS的过程中,也往往希望能够以某种方式操纵GIS系统对象,同时结合其它系统,实现某个特定的应用目的。这一切都需要系统提供一个二次开发接口。软件的二次开发接口常见的实现方法之一是采用脚本(SCRIPT)的形式来完成的。所谓脚本,是指系统提供的一种解释性语言,它描述了系统对象的属性和功能,用户可以通过编写脚本代码,来操纵系统对象的行为,从而完成自己所期望的功能。脚本语言的解释和执行是通过脚本引擎SCRIPTENGINE来完成的,脚本引擎与系统的协作方式如图所示创建,启动,终止引擎通过脚本控制应用装入脚本文件脚本文件脚本引擎信息系统图44脚本引擎的工作方式早期的地理信息系统通常采用自行开发脚本引擎的方式,这就需要用户在使用前,必须花费一定时间去熟悉脚本语言的语法规则。同时,脚本引擎自身的设计与开发,也需要地理信息系统的开发者花费大量精力。MICROSOFTACTIVESCRIPT技术的推出,为二次开发提供了一个完善的解决方案。它使得用户可以按照通2121中国科学技术大学学士论文用的VISUALBASIC或JAVA语法形式去编写脚本,同时,信息系统再也不需要自己去解释执行用户的脚本代码,只要利用ACTIVESCRIPT脚本引擎就可以很方便地实现对用户脚本语言的支持。这就免去了系统开发者们的大量劳动。ACTIVESCRIPT是MICROSOFTACTIVEX技术的一个组成部分,它提供了一个通用的脚本引擎ACTIVESCRIPTENGINE。这一引擎已经作为网络浏览器的一部分,融入了WINDOWS操作系统中。因此,运行在微软平台上的应用软件都可以利用这一引擎来实现对脚本的支持。利用ACTIVESCRIPTENGINE实现对脚本的支持,是一件很简单的工作。只要将系统的受控对象的接口,暴露给脚本引擎,并提供关于对象的一些必要信息,ACTIVE脚本引擎就可以根据这些接口和信息,来完成对脚本代码的解释、运行。具体的操作步骤如下所示1创建受控对象2创建引擎对象3装入脚本文件4加入名字项5启动引擎,运行脚本6获取名字项信息7事件通知8调用对象属性、方法应用程序根据名字项创建的对象脚本引擎图45使用ACTIVE脚本引擎的步骤(1)创建必要的受控对象,这些受控对象是指将要在脚本文件中引用到的AUTOMATION对象,通常是应用系统的文档对象,也可以是某些ACTIVEX控制;(2)创建引擎对象,不同的脚本语言使用不同的引擎对象,通常我们使用VBSCRIPT引擎或者JAVASCRIPT引擎,创建得到的接口指针是应用系统控制引擎的惟一途径;(3)装入脚本文件,调用引擎的IACTIVESCRIPTPARSE接口的PARSESCRIPTTEXT成员函数把脚本代码装入到引擎中。(4)加入名字项,凡是应用系统中要暴露给脚本文件的所有对象都需要加入到引擎的名字空间中,可以通过调用IACTIVESCRIPT接口的2222中国科学技术大学学士论文ADDNAMEDITEM成员函数来完成;(5)启动引擎,以便运行脚本,直接调用IACTIVESCRIPTSETSCRIPTSTATE成员函数使其进入连接状态运行状态)即可;(6)引擎在执行脚本时,首先处理其名字空间中的名字项,调用应用系统IACTIVESCRIPTSITE接口的GETITEMINFO成员函数获取每一个名字所对应的受控对象的信息,主要是COM接口;如果在脚本中有事件控制函数的话,则还要获取受控对象的类型信息;(7)在脚本执行过程中,当特定的事件发生时,引擎中的事件控制函数就要被调用;(8)在脚本执行过程中,有可能会调用到受控对象的属性和方法,则引擎会通过它所获取的对象接口调用IDISPATCHINVOKE成员函数;要注意的一点是,能够被ACTIVE脚本引擎引用的系统对象,必须符合COM接口。44INTERNET上的地理信息发布由于国际互联网(INTERNET)的迅速崛起,使得WEB技术成为高效的全球信息发布技术。因此,利用INTERNET技术在WEB上发布地理信息,就能从WWW的任意一个节点浏览WEBGIS站点中的地理信息,并进行各种信息检索和处理,这就为地理信息的开放和共享性提供了切实可行的技术。基于新型CLIENT/SERVER三层结构的WEBGIS系统图示如下客户端INTERNET服务器端HTTP请求HTTP请求数据请求WEB服务器数据库服务器浏览器图46WEBGIS的三层结构系统的客户端和服务器所完成的功能基本上与CLIENT/SERVER模式下的功能是一致的,T它实质上是CLIENT/SERVER技术与INTERNET技术相结合的成果,这种模式不仅利用了基于WEB的INTERNET结构的简便和灵活性的特点,而且应用CLIENT/SERVER技术大大地强化了其事务处理和安全性、完整性约束能力,从而实现了真正业务相关的WEBGIS。较早的WEBGIS开发方法是采用CGI(COMMONGATEWAYINTERFACE通用网关接口)和SERVERAPI(扩充的CGI工具)来建立应用程序和WEBGIS服务器之间的接口,其实现方式正如前图中实线框所示。但是典型的CGI操作方式2323中国科学技术大学学士论文非常繁琐、低效,而且,CGI机制本身有很大的缺陷,它对每个TCP/IP的请求,都生成一个CGI进程进行处理,随着同时的TCP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论