GIS概论讲义第九章.doc
第九章 GIS新技术与数字地球简介 第一节 网络GIS 一、网络GIS(WebGIS)概述 1、关于Internet 互联网Internet或称因特网已经成为计算机行业乃至整个社会最热门的话题之一,报纸、杂志、新闻、广播到处都可以看到它的踪影。Internet是全球最大的、开放的、由众多位于世界各地的计算机和计算机网络利用高速通讯线路连接在一起进行各种信息交换的计算机网络,它的核心是开放的TCP/IP协议。Internet被认为是未来信息高速公路的雏型,它能提供很多种信息服务,主要有电子邮件E-mail、远程登录 Telnet、文件传送协议FTP、新闻沙龙USENET、电话拨号连接Dial-up Connection等。Internet网络的特点可归纳如下 l 跨地域性Internet网络的发展速度非常惊人,基本覆盖了全世界绝大部分国家。 l Internet是通讯技术、计算机技术和信息技术发展的完美结合。 l 信息资源共享信息数据库将被每个上网的人共享使用,大大提高了信息资源的利用率。 l 通信协作Internet网上数据的传送需要多台服务器的共同协作才能完成。 世界各国目前对互联网的发展都极为重视,互联网已经在世界各地普及和使用。例如,互联网在新西兰已经成为一种公认的、通用的数据交换手段,政府、商业机构和教育团体均积极地发展网页;国际南极信息中心的主页允许浏览者获得大量有价值的臭氧层信息、天气变化模式等信息;在北美,当人们需要某些地理数据,了解GIS有关技术的发展,寻找各种服务,甚至找工作的时候,首先去查找的地方就是互联网。 2、WWW 1989年欧洲粒子研究中心CERN的科学家T. B. Lee提出了万维网World Wide Web简记为WWW,也称Web这一概念,并推出一个基于超文本Hyper Text和HTTP的信息查询工具,实现于1990年的Next计算机上。1992年CERN公开发表了万维网,至1994年万维网己成为访问因特网资源的最好手段。我国在1994年春开始在Internet上建立万维网服务器。浏览万维网资源的著名浏览器有美国网景Netscape公司的Navigation和微软公司的Explorer。 最初的万维网仅是为了满足高能物理学家的信息需要,但现己发展成为一个包含各类信息,面向各种用户的信息系统,成为因特网最精彩的部分。用户只需在自己的计算机上运行浏览器软件,因特网服务器就会根据用户查询条件自动到全球各地的环球服务器上查找信息,实现广泛的信息资源共享。 万维网的出现,对于因特网来说具有划时代的意义,它使Internet的应用走出专业化,进入千家万户。万维网是基于Internet的一种网络应用模式,是一种分布式多媒体超文本系统,它将不同的但彼此相关的信息通过链接以超文本的形式组织在一起,万维网服务是目前Internet上最重要也是发展最迅速的应用,网络用户可以通过一个网络浏览器如 Microsoft Internet Explorer 或Netscape Navigator来阅读文字、观看图象、欣赏音乐,通过万维网,可以得到世界各地各种各样的信息。万维网上的文本文件有特殊的要求1文件都必须有一个被称为“全球资源定位器”Universal Resource Locator的唯一地址。2文件是用超文本标记语言Hypertext Markup Language专门构建的。3文件中可包含超级链接Hyper Link,即从一个文件直接跳到其它文件,可以在文件之间跳跃。因此网络浏览器可以通过超级链接方式来存取互联网中任何一台计算机中的由URL定位的信息。基于Web实施信息管理、发布、服务已成为企业步入信息化时代的必经之路。 在了解网络地图发布软件是如何将地图发布于Internet网上之前,首先了解一些最基本的Internet的逻辑结构。Internet上的数据交换可以理解为在三个层次中进行。 第一层为客户层,网络用户在这里借助于Internet浏览器、通过电话线向网上的其它计算机发出请求。 在中间层,客户以URL形式例如http//www.nwu.edu.cn发出的请求被送到该请求数据存放的实际地址。例如在GIS数据传输中,Web服务器将用户的地图请求发送到存放被请求地图数据的地图服务器中,并将信息返回给客户端浏览器。 最后,在服务器层,回答用户的请求,相关数据被送回到客户端。 事实上,用户与服务器之间的关系远比这里描述的要复杂得多,这里只作简要介绍。 3、WebGIS 互联网络Internet的迅速崛起和在全球范围内的飞速发展,使万维网World Wide Web简称WWW或Web成为高效的全球性信息发布渠道。这一技术正在以很快的速度进入每家每户,它将把地球变成一个小小的村落。网络时代即将来临。 随着Internet技术的不断发展和人们对地理信息系统GIS的需求,利用Internet在Web上发布和出版空间数据,为用户提供空间数据浏览、查询和分析的功能,已经成为GIS发展的必然趋势。于是,基于Internet技术的地理信息系统WebGIS就应运而生。 互联网地理信息系统WebGIS是Internet技术应用于GIS开发的产物,是一种基于Internet的OpenGIS。GIS通过WWW功能得以扩展,真正成为一种大众使用的工具。从WWW的任意一个节点,Internet用户可以浏览WebGIS站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析,从而使GIS进入千家万户。一般把因特网中的GIS称为WWWGIS或WebGIS,中文名为万维网GIS。WebGIS就是以WWW的Web页面作为GIS软件的用户界面,把Internet和GIS技术结合在一起,能够进行各种交互操作的GIS,它是一种大社会级的GIS。Web页面使用超媒体技术和超文本链接语言,使得对WWW的操作更富有灵活性和趣味性。以Web作为GIS的用户界面,将一改以往GIS软件用户界面呆板生硬的面孔,更利于GIS大众化。 与传统GIS不同的是,传统GIS大多为独立的单机结构,空间数据采用集中式处理;而WebGIS采用了基于Internet网的C1ient/Server体系结构,不同部门数据可以分别存贮在不同地点的Server上,每个GIS用户作为一个Client端通过互联网与Server交换信息,可以与网上其他非GIS信息进行无缝连接和集成。WebGlS可以实现对各种传统GIS系统数据的相互操作和共享,以便充分利用现有的数据资源。WebGIS还可以用于Intranet以建立各部门内部的网络GIS,实现局部范围内的数据共享。WebGIS不但改变了传统GIS的设计、开发和应用方法,而且完全改变了空间数据的共享模式。尽管如此,万维网地理信息系统目前尚处在试验研究阶段,其最终目标是应能实现GIS与WWW技术的有机结合,GIS通过WWW成为大众使用的技术和工具。具体地讲,在WWW的任意一个节点上Internet用户可以浏览WebGIS站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析,从而使GIS进入千家万户。 4、WebGIS的特点 同传统的GIS相比较,WebGIS具有以下特点 传统上GIS的数据共享都是基于文件共享的低级分布式结构,数据集中存放于服务器,由空间数据库系统进行统一管理,在客户端采用GIS桌面系统进行远程文件调用。所存在的主要问题是 l 文件服务器结构的处理能力完全依赖于客户端,其效率低下。 l 客户端的任何操作都要将服务器文件远程复制到本地进行。当多用户并发操作时,网上存在多个备份,因此,数据的完整性难以控制;大量数据频繁传输,易造成网络瓶颈,降低系统性能。 l 成本高。企业用户使用GIS仅限于一般功能,而每个客户端都要配备昂贵的专业GIS软件,这无疑是巨大的浪费。 l GIS桌面系统操作复杂,操作人员需要有专业基础和经过专门培训,不适合企业级及大众化应用。 万维网地理信息系统是地理信息系统在万维网上的实现,是利用万维网技术对传统地理信息系统的改造和发展。与传统的基于桌面或局域网的GIS相比,WebGIS具有以下的优点 l 更广泛的访问范围。客户可以同时访问多个位于不同地方的服务器上的最新数据,而这一Internet/Intranet所特有的优势大大方便了GIS的数据管理,使分布式的多数据源的数据管理和合成更易于实现。 l 平台独立性。无论服务器/客户机是何种机型,无论WebGIS服务器端使用何种GIS软件,由于使用了通用的Web浏览器,用户就可以透明地访问WebGIS数据,在本机或某个服务器上进行分布式部件的动态组合和空间数据的协同处理与分析,实现远程异构数据的共享。 l 可以大规模降低系统成本和减少重复劳动。普通GIS在每个客户端都要配备昂贵的专业GIS软件,而用户使用的经常只是一些最基本的功能,这实际上造成了极大的浪费。WebGIS在客户端通常只需使用Web浏览器 有时还要加一些插件,其软件成本与全套专业GIS相比明显要节省得多,同时也可减少不同部门因数据的重复采集而带来的重复劳动。另外,由于客户端的简单性而节省的维护费用也不容忽视。 l 更简单的操作。要广泛推广GIS,就要降低对系统操作的要求,使GIS系统为广大的普通用户所接受,而不仅仅局限于少数受过专业培训的专业用户, 二、WebGIS设计思想 CGI和Sever API是较早应用于WebGIS开发的方法。其中CGI是通用网关接口Common Gateway Interface的英文缩写,它建立了Internet服务器与应用程序之间的接口。基于CGI的WebGIS是按照如下方式实现WWW交互的用户发送一个请求到服务器上,服务器通过CGI把该请求转发给后端运行的GIS应用程序中,由应用程序生成结果交还给服务器,服务器再把结果传递到用户端显示。这种方式的缺点是服务器每次请求都要重新启动GIS应用程序,降低了系统响应速度。Sever API是经过扩充的CGI工具,比如Microsoft的ISAPI和Netscape的NSAPI。采用Server API,服务器请求后端GIS应用程序时不用重新启动该程序,而是通过IPC Inter-process Communication,进程间通讯协议与之进行信息交换。不过由于Server API没有统一的标准,所以一旦采用了某种Server API,那么服务器端将依赖于这种服务器程序。 目前的大部分WebGIS是采用的CGI/Sever API方法。但是,CGI机制本身有很大的缺陷,对于每一个客户机的请求,都要重新启动一个新的服务进程,从而影响速度。它不适应于编写最新的客户/服务器应用软件,也不适合编写面向对象的Java客户机。经过各种扩充的CGI工具也无助于问题的解决,因为不管是采用进程间DLL、服务器插件或者是ORB对象的方案,它们都需要HTTP和Web服务器作为中介,来协调服务器和客户机对象之间的通信。一个客户机对象无法直接调用服务器对象,客户机与服务器对象之间交互的基本形式仍然是HTML表格。对于象WebGIS这样复杂的客户/服务器应用来说,网络通信量相当大,采用这种方式很难进一步提高速度。为了解决这个问题,1997年6月诞生了Web的一种分布式对象方案,称为“Object Web”。 Object Web将是Internet变革中的又一个新浪潮。 基于Object Web规范的WebGIS可以称为分布式对象WebGIS,这是WebGIS的最新发展方向。基于Object Web开发的WebGIS可以有效避免CGI形成的瓶颈,允许客户机直接调用服务器上的方法。分布式对象平台提供一种可以伸缩的由服务器到服务器的体系结构,服务器对象可以运行在多个服务器上,从而可以动态平衡客户端请求的负载。 目前,有两套不同的Object Web规范正在进行着激烈的竞争一个是Object Management Group和Javasoft公司的联合推出的CORBA/Java 标准,另一个是Microsoft公司提出的DCOM /ActiveX标准。两个标准各有千秋,相持不下。尽管Java编译器在不断改进,但是CORBA/Java 在运行速度上仍然不如DCOM/ActiveX。和Java一样,CORBA/Java规范的最大优势仍然在于其跨平台能力,适用于Windows、Macintosh、UNIX等,而DCOM/ActiveX目前还只能运行于32位Windows系列操作系统。不过,Windows系列操作系统的市场占有率达80以上,在Internet客户端的计算机市场里,其占有率则可能更高。究竟选用何种规范来开发WebGIS,需要根据软件的设计目标来权衡各方面的因素。 进行WebGIS设计的另外一个重要选择是,在客户端使用矢量地图或者栅格地图。如果使用矢量图形,一般需要在客户端事先安装插件plug-in,或者运行时自动下载Java Applet抑或ActiveX控件;在客户端使用栅格图像则不需要而任何额外程序。不过,正因为在客户端使用了插件、Java Applet或者ActiveX控件,采用矢量图形方式可以在本地执行许多操作,比如地图放大缩小、漫游、就地选择并高亮显示,在一定程度上减少了服务器端的负载和网络上的数据传输量;采用栅格图像方式,在客户端只能读得鼠标的x, y坐标,进行地图缩放、平移和选择等操作都要传递x, y坐标到服务器端处理,生成新的栅格图传递到客户端显示,增加了服务器和网络传输的负担。 三、几种WebGIS的比较 WebGIS是当今GIS的制高点,已成为各大厂商激烈竞争的焦点。几个重要的GIS厂商争相发布各自的WebGIS产品,如MapInfo公司的MapInfo ProServer 、Intergraph公司的GeoMedia Web Map、ESRI的Internet Map ServerIMS for ArcView MapObjects,著名的CAD厂商Autodesk公司也推出了MapGuide。这些产品大多发布于1996-1997年。最近Bently公司和MapInfo公司又相继推出了ModelServer/Discovery和MapX Site。现就其中前五个WebGIS产品的技术特征进行比较,列表如下 表91。 要建立成功的WebGIS应用,选择WebGIS开发工具十分重要,用户要根据需求情况具体问题具体分析。以下列出几个方面的建议可供用户参考 尽管几乎所有厂商都提供了数据格式转换工具,但最好选用能直接发布已有数据格式的软件,对于已经建立了空间数据库的用户,这是一个需要首先考虑的问题。如果要求较强的空间查询功能,则IMS、MapInfo ProServer和ModelServer/Discovery可以优先考虑,因为这几个软件在服务器端都运行着相应的桌面GIS软件,客户端可以通过Internet直接向服务器端发送其桌面软件支持的空间查询命令。另一方面,如果地图中有密集的细小多边形或线状地物, GeoMedia Web Map、MapGuide和ModelServer/Discovery有明显优势,因为它们在客户端采用的是矢量图形格式。倘若强调与关系数据库的动态连接,则是GeoMedia Web Map和MapGuide比较突出。另外,MapInfo ProServer和IMS在客户端支持多种平台,而GeoMedia Web Map和MapGuide仅仅支持使用Windows系列操作系统的浏览者。如果用于建立Intranet应用,选择传递矢量图形的GeoMedia Web Map、MapGuide和ModelServer/Discovery较好,因为它们所需要的插件和ActiveX控件可以统一分发,预先安装,从而换来客户端较强的交互性和较快的响应速度。 表91 几个重要的WebGIS产品的技术特征 MapInfo ProServer GeoMedia Web Map Internet Map ServerIMS MapGuide ModelServer/ Discovery 公司 MapInfo Corp. Intergraph Corp. ESRI Inc. Autodesk Inc. Bently 服务器操作系统 Windows NT/95 Windows NT Windows NT Windows NT Windows NT Web服务器 支持CGI的Web Server Internet Ination Server Internet Ination Server或者 Netscape Server 支持CGI的Web Server Netscape Server 其他服务器端软件 ODBC, MapInfo 4.x MapBasic ODBC ArcView或者MapObjects应用ODBC ODBC MicroStation GeoGraphics ODBC 客户端操作系统 Windows 系列,Macintosh,UNIX Windows NT/95 Windows系列,Macintosh,UNIX Windows NT/95 Windows系列,Macintosh、UNIX 客户端浏览器 支持HTML的任意浏览器 Internet Explorer,Netscape Navigator 支持HTML的任意浏览器 Internet Explorer, Netscape Navigator Internet Explorer, Netscape Navigator 客户端是否需要插件plug-in/控件control 不需要 如果使用Netscape Navigator浏览器,需要安装ActiveCGM插件;如果使用Internet Explorer浏览器,会自动下载ActiveCGM控件 自动下载Java Applet或者ActiveX控件 需要安装MapGuide插件1兆左右 需要安装VRML、CGM、SVF等插件 网络传递的图形格式 JPEG栅格图 ActiveCGM栅格图和矢量图 JPEG/GIF 栅格图 MWF 矢量图 JPEG、PNG、VRML、CGM、SVF栅格图和矢量图 地图预出版处理 动态生成地图 动态生成地图 动态生成地图 需地图预出版处理 动态生成地图 可发布的数据格式 MapInfo地图文件 MGE工程、MicroStation DGN文件、FRAME文件、MGEDM文件、ArcView Shape文件、Arc/Info Coverage、SDO文件 ArcView Shape文件、Arc/Info Coverage、SDE地图文件、Autodesk DWG文件 Autodesk DWG GeoGraphics工程文件、MicroStation设计文件 由于Internet技术本身正处于发展阶段,尽管WebGIS软件发展很快,总的说来还处于初级阶段,各厂商提供的解决方案都不十分成熟。这给起步较晚的国内GIS研究单位提供了很好的机会。目前,国内的WebGIS研制工作也在加紧进行,并有初步的产品推出。 四、WebGIS应用前景 WebGIS使GIS应用走向公众,通过网络可以将空间信息传至千家万户,如美国纽约州某县通过电视有线网,向公众发布城市和土地等信息。香港旅游局也正在着手建立香港旅游信息系统,该系统的基础数据直接来源于香港地政署的大型空间数据库,旅游信息则由旅游协会TA提供。计划首先在尖沙嘴等旅游热点安装触摸屏,游客可以通过它直接了解香港地理环境和查询旅游信息。 WebGIS的数据传输量很大,目前Internet的速度还不能完全满足需求。MapGuide的插件大约为1M,使用28.8K的调制解调器MODEM也至少需要6分钟才能从服务器上下载过来。不过,网络技术日新月异。1997年2月,美国总统克林顿提出“建立快1000倍的第二代互联网络,让12岁以上的青少年人人都上互联网”。微软正在实施的一项计划中准备发射840多颗人造地球卫星,这些卫星将用于取代光纤进行Internet数据传输。可以预见,随着Internet技术的发展,WebGIS应用终将走上普通人的办工桌、走进千家万户的家用电脑,与Internet本身一样成为人们日常生活必不可少的实用工具。 WebGIS还可以应用于Intranet建立企业/部门内部的网络GIS,可以在科研机构、政府职能部门、企事业单位得到广泛应用。WebGIS提供了一种易于维护的分布式GIS解决方案。尽管目前的WebGIS软件提供的空间分析功能很难满足专业应用的需要,但是随着技术的发展,WebGIS终将取代传统的GIS。 第二节 组件式GIS 一、组件式GIS (ComGIS)的概念 目前,在软件开发领域,一场新的革命正在悄悄兴起,这是由日趋成熟的组件技术引发的。几年以前,当微软公司首先使用OLE Object Linking Embedding的时候,其初衷是为了增强软件的互操作性。然而在使用过程中,人们逐渐认识到这一技术背后的实质性内容和它在软件开发中所扮演的重要角色。组件技术将以前所未有的方式提高软件产业的生产效率,这一点已逐步成为软件开发人员的共识。传统的Client/Server结构、群件、中间件等大型软件系统的构成形式,都将在组件的基础上重新构造。 组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调用。组件间的接口通过一种与平台无关的语言IDL(Interface Define Language)来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更加彻底,更易于使用,并且不限于C之类的语言,可以在各种开发语言和开发环境中使用。 由于组件技术的出现,软件产业的形式也将会有所改变。大量组件生产商会涌现出来,并推出各具特色的组件产品;软件集成商则利用适当的组件快速生产出用户需要的某些应用系统;大而全的通用产品将逐步减少;很多相对较为专业,但用途广泛的软件,如GIS、语音识别系统等,都将以组件的形式组装和扩散到一般的软件产品中。 GIS技术的发展,在软件模式上经历了功能模块、包式软件、核心式软件,从而发展到ComGIS和WebGIS的过程。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式软件是新一代GIS的重要基础, ComGIS的出现为传统GIS面临的多种问题提供了全新的解决思路。 ComGIS是面向对象技术和组件式软件在GIS软件开发中的应用。认识ComGIS,首先需要了解所依赖的技术基础-组件式对象模型和ActiveX控件。 COM是组件式对象模型Component Object Model的英文缩写,是OLE和ActiveX共同的基础。COM不是一种面向对象的语言,而是一种二进制标准。COM所建立的是一个软件模块与另一个软件模块之间的链接,当这种链接建立之后,模块之间就可以通过称之为“接口”的机制来进行通信。COM标准增加了保障系统和组件完整的安全机制,扩展到分布式环境。这种基于分布式环境下的COM被称作DCOM Distribute COM。DCOM实现了COM对象与远程计算机上的另一个对象之间直接进行交互。 ActiveX是一套基于COM的可以使软件组件在网络环境中进行互操作而不管该组件是用何种语言创建的技术。作为ActiveX技术的重要内容,ActiveX 控件是一种可编程、可重用的基于COM的对象。ActiveX控件通过属性、事件、方法等接口与应用程序进行交互。 一些软件公司专门生产各种用途的ActiveX控件,比如数据库访问、数据监视、数据显示、图形显示、图像处理,甚至三维动画等等。几个著名的GIS软件公司把COM技术应用于GIS开发,纷纷推出由一系列ActiveX控件组成的ComGIS软件,比如Intergraph公司的GeoMedia、ESRI的MapObjects、MapInfo公司的MapX等。 ComGIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能包括GIS和非GIS功能,根据需要把实现各种功能的 “积木”搭建起来,就构成应用系统。 许多WebGIS软件包均采用HTML标准,活动内容采用Java appletsSUN 标准或者 ActiveXMicrosoft 标准进行传递。新型的分布式面向对象WebGIS可以采用CORBA/Java或者DCOM/ActiveX技术进行开发。ActiveX控件不仅可以用于一般的ActiveX容器程序 比如Visual Basic、Delphi等 ,而且能嵌入Web页面中。任何ActiveX控件都可以设计成Internet控件,作为Web页面的一部分,Web页面中的控件通过脚本Script互相通信。因此,ComGIS是WebGIS的一种解决方案,而基于这一方案的WebGIS通常比基于Java的运行速度快。 二、ComGIS的特点 ComGIS的发展符合当今软件技术的发展潮流,同时也极大地方便了应用和系统集成。同传统的GIS比较,这一技术具有以下几方面特点 1、高效无缝的系统集成 一个系统的建立往往需要对GIS数据、基本空间处理功能与各种应用模型进行集成。而系统集成方案在很大程度上决定了系统的适用性和效率,不同的应用领域、不同的应用开发者所采用的系统集成方案往往不同。归纳起来,基于传统的GIS基础软件的集成方案主要有四种模式图9-2。 模式一 在GIS基础软件与应用分析模型之间,通过文件存取方式建立数据交换通道。在这种集成方式中,GIS与应用分析模型通过中间文件格式交换数据(图9-1 ),不适合于大量而频繁地交换数据的情况,而且GIS基础软件与应用分析模型相互独立,系统整合性差。 模式二 直接使用GIS软件提供的二次开发语言编制应用分析模型(图9-1 )。解决了模式一的缺陷,但是GIS所提供的二次开发语言大都不能与C、C、FORTRAN等专业程序设计语言相比,难以开发复杂的应用模型。 模式三 利用专业程序设计语言开发应用模型,并直接访问GIS软件的内部数据结构(图9-1 )。应用模型开发者可以根据自己的意愿选择使用何种高级语言开发复杂的应用模型,但是直接访问GIS软件数据结构增加了应用开发的难度。 模式四 通过动态数据交换DDE建立GIS与应用模型之间的快速通信(图9-1 )。这是在DDE技术发展起来以后,对第一种集成方式的改进,可以避免频繁的文件数据交换所带来的效率降低的毛病,也避免了从GIS外部直接访问GIS数据结构的代价。但是,GIS与应用模型仍然是分离的,这种拼接是“有缝”的。 图9-1 GIS基础软件与专业应用模型之间的集成方案比较据宋关福等 图9-2 ComGIS 与应用程序之间的无缝集成据宋关福等 不论采用以上何种系统集成模式,传统的GIS软件在系统集成上都存在缺陷。ComGIS提供了解决以上问题的理想方案。ComGIS不依赖于某一种开发语言,可以嵌入通用的开发环境如Visual Basic和Delphi中实现GIS功能,专业模型则可以使用这些通用开发环境来实现,也可以插入其它的专业性模型分析控件。因此,使用ComGIS可以实现高效、无缝的系统集成(图9-2)。 2、无须专门GIS开发语言 传统GIS往往具有独立的二次开发语言,如Arc/Info的AML、MGE的MDL、MapInfo的MapBasic等。对GIS基础软件开发者而言,设计一套二次开发语言是不小的负担,同时二次开发语言对用户和应用开发者而言也存在学习上的负担。而且使用系统所提供的二次开发语言,开发往往受到限制,难以处理复杂问题。ComGIS则不需要额外的GIS二次开发语言,只需实现GIS的基本功能函数,按照Microsoft的ActiveX控件标准开发接口。这有利于减轻GIS软件开发者的负担,而且增强了GIS软件的可扩展性。GIS应用开发者,不必掌握额外的GIS开发语言,只需熟悉基于Windows平台的通用集成开发环境,以及ComGIS各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。目前,可供选择的开发环境很多,如Visual C、Visual Basic、Visual FoxPro、Borland C、Delphi、C Builder以及Power Builder等等。 3、大众化的GIS 组件式技术已经成为业界标准,用户可以象使用其他ActiveX控件一样使用ComGIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。ComGIS 的出现使GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的可视化工具。 4、成本低 由于传统GIS结构的封闭性,往往使得软件本身变得越来越庞大,不同系统的交互性差,系统的开发难度大。ComGIS提供实现空间数据的采集、存储、管理、分析和模拟等功能,至于其他非GIS功能如关系数据库管理、统计图表制作等,则可以使用专业厂商提供的专门组件,有利于降低GIS软件开发成本。另一方面,ComGIS本身又可以划分为多个控件,分别完成不同功能。用户可以根据实际需要选择所需控件,最大限度地降低了用户的经济负担。 三、ComGIS的设计与开发 设计ComGIS,需要根据功能划分为多个控件。划分控件需要根据不同的数据结构和系统模型进行具体分析,要考虑以下几个方面的问题1 控件间差别最大、控件内差别最小;2 纯设计用模块与将随集成系统发布的模块分开,例如地图符号编辑、线型编辑器应与空间查询分析等模块分开;3 相同显示窗口的模块尽可能设计在同一个控件里;4 处理相同数据文件的模块尽可能设计在同一个控件里;5 剔除空间查询分析控件中不必要的内容,减少Internet下载的数据量。 考虑到以上因素, ComGIS可以划分为数据采集与编辑控件、图像处理控件、三维控件、数据转换控件、地图符号编辑/线性编辑控件、空间查询分析控件等。其中一些无须进行二次开发的模块不一定以组件方式提供,比如数据采集、数据转换、符号编辑/线型编辑等模块可以用独立运行程序方式提供,数据转换模块还可以编译成动态连接库。 图9-3 ComGIS与集成环境及其它组件之间的关系据宋关福等 传统GIS软件与用户或者二次开发者之间的交互,一般通过菜单或工具条按钮、命令以及二次开发语言进行。ComGIS与用户和客户程序之间则主要通过属性、方法和事件交互 如图9-3。 属性(Properties) 指描述控件或对象性质(Attributes)的数据,如BackColor 地图背景颜色、GPSIcon 用于GPS动态目标跟踪显示的图标等。可以通过重新指定这些属性的值来改变控件和对象性质。在控件内部,属性通常对应于变量(Variables)。 方法(s) 指对象的动作(Actions),如Show显示、AddLayer(增加图层)、Open(打开)、Close(关闭)等。通过调用这些方法可以让控件执行诸如打开地图文件、显示地图之类的动作。在控件内部。方法通常对应于函数(Functions)。 事件(Events) 指对象的响应(Responses)。当对象进行某些动作时(可以是执行动作之前,也可以是动作进行过程中或者动作完成后),可能会激发一个事件,以便客户程序介入并响应这个事件。比如用鼠标在地图窗口内单击并选择了一个地图要素,控件产生选中事件(如ItemPicked)通知客户程序有地图要素被选中,并传回描述选中对象的个数、所属图层等等信息的参数。 属性、方法和事件是控件的通用标准接口,适用于任何可以作为ActiveX包容器的开发语言,具有很强的通用性。 支持ActiveX组件开发的程序设计语言都可以用来开发ComGIS软件,比如目前比较流行的Visual C、Borland C、Visual Basic、Delphi等等,其中前两种效率高、功能强,较为常用。ComGIS开发要注意几个方面的问题(1)优化的代码和高效的算法 尽管COM技术的二进制通信具有很高的效率,与独立运行程序比较,OCX控件在运行速度上仍有差距。不过大量实践证明,采用高效的算法并精心优化代码可以使软件整体效率有较大改善。经过对比测试,组件式GIS软件- ActiveMap在图形显示上比目前Windows95/NT平台上大多数商业化GIS软件快,其中甚至包括非组件式的GIS软件。(2)紧凑、简练的数据结构 在能够充分表达地理信息并能有效进行各种处理、分析的前提下,软件数据结构要尽可能紧凑。这不仅可以加快数据存取速度,同时也为适应Internet传递的需要。(3)流行GIS数据文件的数据引擎 除提供与各种GIS数据文件格式的数据转换程序外,ComGIS被设计为可以直接访问多种数据格式也是一大特色。Intergraph的GeoMedia可以直接访问MGE、Frame、ArcView、SDO等著名软件的数据格式。ActiveMap也可直接访问MGE等流行的数据格式,提高了数据共享方面的能力。 ComGIS是一种全新的GIS概念,在同MIS耦合、Internet应用、降低开发成本和使用复杂性等方面,具有明显优势。同时也打破了以往GIS基础软件由少数厂商垄断的局面,小的研究机构和厂商有机会以提供专业组件的方式打入GIS基础软件市场。我国GIS基础软件起步较晚,ComGIS技术为我国GIS基础软件的开发提供了新的契机。我国GIS的发展比发达国家要落后许多年,尤其是GIS软件的开发与应用方面差距更大。组件式GIS开发平台的出现,特别是国产优秀组件式GIS平台的推出,大大缩短了我国与发达国家GIS软件之间的差距,为我国中小型GIS应用系统的建设带来了新的机遇。我们完全有可能一步跨越几个台阶,直接利用最新的技术,开发出先进的管理系统。 1、性能与可靠性有较大提高 国产组件式GIS开发平台和国外几乎同时起步,到现在已有将近两年的发展时间。系统从较高的技术起点出发,性能和可靠性较过去的系统已经有了较大的提高,且在各个领域的实际应用中积累了不少经验,完全可以充当中小型系统的支撑平台。 2、充分利用现有的开发人员 由于组件式GIS开发平台可以采用一般的MIS工具来开发,且其开发API的形式与常规数据库的开发接口类似,所以许多MIS开发人员只需经过短期学习就可以承担起GIS或GMIS的开发任务,这是普及GIS或GMIS至关重要的因素。 3、开发周期缩短 由于采用高层次的开发工具,开发者可尽可能地利用