第22卷第2期 佳木斯大学学报(自然科学版) 2004 年4月 JournalofJiamusiUniversity(NaturalScienceEdition)
文章编号:1008-1402(2004)02-0168-04①
Vol.22No.2
Apr. 2004
基于SVG的WebGis中矢量图形处理研究
桑锦国
(山东科技大学信息学院,山东泰安271019)
摘 要: 在对WebGis中的地理空间信息的数据格式的分析中,客户端浏览器不能直接处理(显示)矢量格式的地理信息数据.通常都是在服务器端把矢量格式的数据转换为栅格数据后,再传输给客户端,结果造成数据量的大增.SVG技术很好的解决了客户端显示矢量图形数据的问题.
关键词: WebGis;矢量格式;栅格格式;XML;SVG中图分类号: TP391 文献标识码: A
0 WebGis概述
WebGis是Internet技术应用于地理信息系统(Gis)开发的产物.它是在Internet或Interanet网络环境下
的一种兼容、存储、处理、分析和显示与应用地理信息的计算机信息系统,它的基本思想就是在互联网上提供地理信息,让用户通过浏览器浏览和获得一个地理信息系统中的数据和功能服务.WebGis由于操作简单、跨平台、可扩展、信息分布共享、高效的负载平衡等特点,已经在诸多领域中得到广泛的应用,包括农业、林业、水利、地矿、交通、通讯、新闻媒体、城市建设、教育、资源(土地、森林、水、矿物、海洋等)、环境、人口、海洋以及军事等几十个领域.最终,Gis通过WWW功能得以扩展,真正成为一种大众使用的工具,从WWW的任意一个节点,Internet用户可以浏览WebGis站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析.WebGis作为数字地球的主要技术依托和载体,已经成为IT领域十分重要的研究方向[1,2].
1 WebGis的研究和开发现状
WebGis设计主要考虑的是基于何种开发方法实现,以及客户端采用何种图形数据方式(矢量或者栅
格图形)进行显示.而这些问题将影响整个WebGis的功能和性能[3].1.1 基于CGI/ServerAPI的WebGis
CGI和ServerAPI是较早应用于WebGis开发的方法.其中CGI(CommonGatewayInterface)通用网关接口
是按照如下方法实现www交互的:用户发送一个请求到服务器上,服务器通过CGI把该请求转发给后端运行的Gis应用程序中,由应用程序生成结果交还给服务器,服务器再把结果传递到用户端显示.这种方式的缺点是服务器每次请求都要重新启动Gis应用程序,降低了响应速度.ServerAPI是经过扩充的CGI工具,比如Microsoft的ISAPI和Netscape的NSAPI.采用ServerAPI,服务器请求后端Gis应用程序是不用重新启动该程序,而是通过IPC(Inter-processCommunication,进程间通讯协议)与之进行信息交换.不过由于ServerAPI没有统一的标准,所以一旦采用了某种ServerAPI,那么服务器端将依赖于这种服务器程序.另外CGI的固有缺点是:数据处理在服务器端,形成瘦客户端,任何操作都在服务器端实现,因此效率低、速度慢.由于浏览器不能直接读取矢量图形,矢量数据在网上传输就得先在服务器端转换成栅格图形数据,这样一转换就使数据量增大许多倍,使本已经很拥挤的网络不堪重负,所以,这种方式对于需要大通讯量
①收稿日期:2004-02-16
作者简介:桑锦国(1979-),男,安徽定远人,山东科技大学信息科学与工程学院2001级硕士研究生.
第2期桑锦国:基于SVG的WebGis中矢量图形处理研究
169
的WebGis系统显然是不合适的.后来的插件技术方法是在客户端的浏览器上增加一个能识别识别矢量图形数据的插件,通过这样的插件,使得服务器端的矢量图形数据无须转换就能直接为用户浏览、查询和分析等操作,将一部分服务器的功能转移到客户端,大大减少了网络的数据传输量,较好地解决了网络上图形数据信息的传输瓶颈.插件的不足之处在于它必须先安装在客户机上,而且对于不同的浏览器一般要用不同的版本的插件,给用户带来不便[4].
目前的大部分WebGis是采用的CGI/SerberAPI方法.但是,CGI机制本身有很大的缺陷,对于每一个客户机的请求,都要重新启动一个新的服务进程,从而影响了速度.它不适应于编写最新的客户/服务器应用软件,也不适合编写面向对象的Java客户机.经过各种扩充的CGI工具也无助于问题的解决,因为不管采用进程间DLL、服务器插件或者是ORB对象的方案,它们都需要HTTP和WEB服务器作为中介,来协调服务器和客户机对象之间的通信.一个客户机对象无法直接调用服务器对象,客户机与服务器对象之间交互的基本形式仍然是HTML表格.对于象WebGis这样复杂的客户/服务器应用来说,网络通信量相当大,采用这种方式很难进一步提高速度.1.2 基于ObjectWeb的WebGis
1997年4月诞生了Web的一种分布式对象方案,称为“ObjectWeb”.ObjectWeb将是Internet变革中的
又一个新浪潮.基于ObjectWeb规范的WebGis可以称为分布式对象WebGis,这是WebGis的最新发展方向.基于ObjectWeb开发的WebGis可以有效的避免CGI形成的瓶颈,容许客户机直接调用服务器上的方法.分布式对象平台提供了一种可以伸缩的由服务器到服务器体系结构,服务器对象可以运行在多个服务器上,从而可以动态的平衡客户端请求的负载[5].
目前,有两套不同的ObjectWeb规范正在进行着激烈的竞争:一个是ObjectManagementGroup和Java2soft公司的联合推出CORBA/Java标准,另一个是Microsoft公司提出的DCOM/Active标准.两个标准各有千
秋,相持不下.尽管Java编译器在不断改进,但是CORBA/Java在运行速度上仍然不如DCOM/ActiveX.和Java一样,CORBA/Java的最大优势仍然在于起跨平台能力,适用于Windows,Macintosh,UNIX等,DCOM/Ac2tiveX目前还只能运行于32位Windows系列操作系统.不过,Windows系列操作系统的市场占有率达80%以上,在Internet客户端的计算机市场里,其占有率可能更高.究竟选用何种规范来开发WebGis,需要根据软件的设计目的来权衡各方面的因素.1.3 客户端图形类型的选择
进行WebGis设计的另外一个重要的选择是,在客户端使用矢量地图或栅格地图.如果使用矢量图形,一般需要在客户端实现安装插件(plug-in),或者运行时免费自动下载JavaApplet抑或ActiveX控件;在客户端使用栅格图像则不需要任何额外的程序.不过,正因为在客户端使用了插件、JavaApplet或者ActiveX控件,采用矢量图形方式可以在本地执行许多操作,比如:地图放大缩小、漫游、就地选择并高亮显示,在一定程度上减少了服务器端负载和网络上的数据传输量;采用栅格图像方式,在客户端只能读得鼠标的(x,y)坐标,进行地图缩放、平移和选择等操作都要传递(x,y)坐标到服务器端处理,生成新的栅格图传递到客户端显示,增加了服务器和网络传输的负担.
2 在WebGis中应用Svg
2.1 基于XML的Svg
SVG(ScalableVectorGraphics,可升级矢量图像)是由国际WWW委员会(W3C)组织,在2000年8月2
日制定的一种新的二维矢量图形格式.与传统的图像格式不同的是,SVG采用明文文本来描述矢量化的图形,这使得SVG图像文件可以像HTML网页一样有着很好的可读性.掌握了SVG语法的人甚至可以只用
170
佳木斯大学学报(自然科学版)2004年
一个记事本便可以“读”出图像中的内容来.同时,SVG采用的新潮的矢量描述技术,因此生成的文件不仅体积小,而且可以不失真地无级缩放.
W3C对SVG的解释是“:SVG是一种使用XML来描述二维图像的语言.它允许3种形式的图像对象存在:矢量图形、点阵图像和文本.各种图像能够组合、变换,并且修改其样式,也能够定义成预处理对象.文本是XML名字空间中的有效字符,这些字符能被作为SVG图像的关键字而存留在搜索引擎中.SVG的功能包括嵌套变换、路径剪裁、透明度处理、滤镜效果以及其他扩展,同时,SVG图像支持动画和交互,也支持完整的XML的DOM接口.任何一种SVG图像元素都能够使用脚本来处理类似于鼠标单机、双击以及键盘输入等事件.并且因为同Web标准兼容的缘故,SVG还能够在同一个Web页面里凭着继承自XML的名字空间等特性来完成一系列校互操作.”
这种解释虽然不太直观,可也多少说明了一些SVG独特的优点.首先,矢量化并不等于抛弃点阵图.一般的矢量图形达不到像照片一般的效果,因此SVG中可以使用点阵图(有些场合称为光栅图),既可以类似于在网页中插入图像一样使用外部链接,也可以将点阵图编码后嵌入SVG源文件,因此灵活性很高.其次,SVG对文字的处理也独树一帜.SVG文件中的文字虽然在显示时可呈现出各种图像化的修饰效果,但却仍然是以文本的形式存在的,可以选择复制,因此用SVG的格式来存储一篇文章也不总为怪.再者,SVG可实现动画与交互,这在目前网络届是一种流行的趋势,Flash的SWF格式便是代表.最后,SVG支持
复杂的DOM接口,这使得SVG文档可以通过一致的接口规范与外界的程序打交道,这也是当今“电子文档”的优秀特性之一.
当然,SVG图像的显示与处理需要相应软件的支持,否则上面的许多优点成了空中楼阁.目前,国外陆陆续续涌现了许多SVG文档的显示、编辑和转换工具,同时也包括浏览器插件,Adobe的SVGViewer便是其中的代表.W3C为了SVG的这项建议规范酝酿了两年之久,许多图像及多媒体领域的厂家参与了其官方规范草案的修改讨论,因此SVG的支持阵营中不乏其佼佼者,其中包括:Microsoft,Netscape,Sun,HP,IBM,Apple,Adobe,Macromedia,Autodesk,Corel,Visio,BitFlash,ILOG,INSO,OASIS,OpenText,Quark,RAL(CCLRC),Xerox等公司.
2.2 基于SVG的WebGis原形系统
从上面的介绍可以看出.虽然,客户端浏览器不能直接识别SVG文件,也需要安装一个插件,但是它的优点还是很明显的.所以我们基于SVG设计了一个WebGis原形系统.
基于SVG的WebGis的原形系统框架
客户层提供用户接口的功能,运行环境主要是Web浏览器,安装SVG解释器,浏览的是SVG格式的文件.业务逻辑层提供完成所有业务逻辑和数据库存取的功能,主要有两部分组成:一部分是Web服务器,它通过HTTP协议向客户层提供SVG页面;另一部分是Gis应用服务器,它包含了完成业务逻辑所需要的各种服务,它一方面通过自定义的协议和WWW服务器通信,另一方面访问存储在数据库中的空间数据和属性数据.数据库层还提供空间数据的存储、查询、分析的功能.2.3 系统的优点
选择SVG作为客户端的显示数据格式主要有以下的优点.
第2期桑锦国:基于SVG的WebGis中矢量图形处理研究
171
2.3.1 不需要另外开发插件
前面我们已经说过,现在很多公司在做SVG方面的工作,所以有很多已经开发很成熟的SVG解释器,其中大部分都可以从网上直接下载,而且文件不大,下载很快、很方便.当用户浏览SVG文件时,可以首先判断客户端是否安装有SVG解释器,如果没有安装过,则自动从相应的站点下载、安装.另外,如此众多的厂商和公司致力于SVG的研究和开发,大家都在朝着一个目标前进,那就是SVG的统一性和开放性,这也是SVG的初衷.我们也欣喜的看到了这种趋势.同时,当SVG最终被广大受众接受时,各个浏览器厂商也会在自己的浏览器中提供对SVG的直接支持,就象最初的HTML一样,不再需要另外安装SVG解释器.
那么,最终的结果将是,WebGis开发者不用再为矢量还是栅格的选择与转换而痛苦,因为,SVG本身就支持很多的WebGis的客户端操作.如:放大、缩小、漫游、导航等,而且效果非常好.
WebGis开发者可以把大部分的精力放在地理图形数据向SVG的文件转换,同时在SVG文件中加入交互代码.因为SVG支持交互.就象网页编程一样.
客户也可以轻松明白所浏览的页面的功能实现,只要他(她)懂SVG语法.2.3.2 传输效率高
SVG是一种支持矢量图形的文件格式.矢量图形由线框和填充物等组成,它由计算机根据矢量数据进行计算,然后绘制而成.矢量图形的特点是文件的大小与图形的复杂程度有关,而与图形的具体尺寸无关.这样,多大的图形,它都只是一个SVG文件,传输到客户端的仅仅是一个SVG页面,速度相对来说很快.就像我们浏览一般的网页一样.
3 结 论
从前面的介绍和原形系统,我们可以得出,选择SVG作为客户端的显示数据格式的确有许多令人振奋的优点.而这些优点正是目前WebGis设计和开发过程中的瓶颈.
SVG还是一种新技术,本文也只是对SVG应用于WebGis作了一种可能性的研究.具体到最终的实际应用,还有待于日后的进一步研究;同时,众多厂商对SVG的支持.如:W3C组织对SVG的进一步规范及浏览器厂商对SVG的直接支持,都将为SVG的进一步应用打开方便之门.
国内的SVG还未起步,仅仅只有一些为数不多的网站对SVG有过浅显的介绍;同时,WebGis研究国内也起步很晚.我们不希望国内总是比国外落后.本文从SVG的应用角度,对WebGis作了一定的研究.我们希望这能为国内的WebGis研究提供一种全新的视角.参考文献:
[1] 宋关福,钟而顺,王尔琪.WebGis———基于Internet的地理信息系统[J].中国图像图形学报,1998(3),251-254.[2] 郭杰华,鲍远律,胡玉锁,等.基于Internet的地理信息系统的研究和开发[J].图形图像学报,1999(1):32-35.[3] 薛小峰,汪晓程.WebGis处理模型系统[J].微型电脑应用2000,16(1):26-27.
[4] 罗英伟,丛升日,汪小林,等.WebGis的构件设计[J].中国图形图象学报,1999,4(增刊):79-84.[5] 程昌秀.基于N层模型的WebGis的研究[J].遥感信息,2000(3).
STUDYOFVETORGRAPHDISPOSALINWEBGISBASEDONSVG
SANGJin-guo
(SchoolofInformation,ShandongUniversityofScienceandTechnology,Taian271019,China)
ABSTRACT: Thebrowsercan’tdealwiththegeographyinformationinvectorformatdirectlybyanalyzingthegeographyspaceinformationinWebGis.Usually,thedatafromvectorformatarechangedintogriddataattheserverandthentransmittedtotheclient.Itgreatlyincreasesthenumberofdata.SVGtechniqueproperlyresolvestheprob2lemthattheclientdisplaysthevectorgraphdata.
KEYWORDS: WebGis;vectorformat;gridformat;XML;SVG