摘 要:地理标志语言GML和可缩放矢量图形SVG是两种基于XML的开放性、应用性标记语言;而网络要素服务WFS是空间数据互操作的一个重要组成部分,能够为不同的GIS数据格式提供要素级的交互。介绍了这三大技术的特点,针对WebGIS技术的发展受到数据格式、矢量图形显示等因素的限制,提出了采用GML、SVG和WFS的方式动态实现异构数据的交互性和提高客户端显示地图图形的质量。
关键词:GML; SVG; WFS; WEBGIS
近年来,W3C组织前后推出了GML和SVG两种基于XML的开放性、应用性标记语言。SVG与GML的结合解决了大数据文件读取缓存的问题,实现从GML到SVG的可视化转换,为网络化空间信息系统的空间图形数据存储、传输和显示提出了解决方法。WFS是空间数据互操作的一个重要组成部分,能为不同GIS数据格式提供要素级的交互。基于GML的WFS能够为Web环境下的空间数据互操作技术和空间信息处理互操作技术提供简单而又有效的基本数据访问、要素编辑、要素的组合查询。通过研究开放式GIS联盟OGC(Open GIS Consortium Inc.)的标准规范,使用XML传输和存储地理信息,提出了基于GML、SVG、WFS的体系结构。
WebGIS是应用于网络平台上的地理信息系统,目前WebGIS的发展受到数据格式、网络带宽、矢量图形显示等因素的影响。本文提出一种基于地理标志语言GML(Geography Markup Language)实现互操作WebGIS的新机制,该机制以GML实现多源数据存储与传输为基础,利用网络要素服务WFS(Web Feature Services)实现地理数据要素层存取、检索与更新,在客户端以可缩放矢量图形SVG(Scalable Vector Graphics)方式输出高质量矢量图形。与传统的WMS实现Web服务相比,该机制能实时动态地实现异构、跨平台地理数据要素层互操作。
1 SVG的特点
可缩放矢量图形(SVG)是一种基于XML的、开放标准的、可扩展的语言,用来描述2D的矢量图形和矢量/栅格混和,能够满足Web开发者对动态、可缩放与平台无关的Web内容表现和交互手段日益增长的需求[1]。W3C中的SVG工作组由20多个成员组成,其中包括Sun、IBM、Adobe、HP、Microsoft、AOL/Netscape等业界知名的大公司。
与HTML、XML一样,SVG也是由元素和属性等标记标注的文本组成的,可以很容易地被一次查询、修改。SVG基于纯文本的特性,使它具备了像文字信息一样的可检索性,从而实现了人们对于Web的图形检索;SVG的易用性主要在于它的描述图形形状、图像和文本的词汇表。SVG可以支持16位色,使地图颜色丰富多彩;用户可以任意倍数地放大地图图像,而不用担心地图细节,并且易于下载;SVG是在浏览器中显示GIS信息的理想载体,所有典型的GIS元素都可以被显示和操作,且所有数据都是以压缩的矢量图形进行传输,易于实现与用户交互,编写鼠标事件就可以实现高亮度显示、地图提示、特殊效果等。另外,SVG添加栅格图形非常方便,因此易于发布遥感图像。其实SVG是XML的一种特殊形式,很多用于处理XML的工具都可以用来处理SVG图形,所以读取、编辑、发布SVG非常方便。因此SVG潜在的应用前景十分广阔。
但是SVG主要是用来浏览矢量数据,对于一些高级GIS信息,SVG有其应用的局限性,如SVG不支持拓扑结构、地理坐标系统和3D数据。而且,地理对象属性数据并不直接存储,而是分解为color、linestyle等符号。因此,OpenGIS组织提出了一种基于XML标准的、专门为地理空间数据设计的规范GML。
2 GML的特点
地理标记语言GML(Geography Markup Language)是由Open GIS联盟制定的基于XML的对地理信息(包括地理特征的几何和属性)传输和存储的编码规范。GML是一个简单的基于文本的地理特征编码标准,具有简单、直观、容易理解、编辑、检查和转换等特点。与XML一样,GML在地理信息世界中将内容及其表现形式分离开,主要关注地理数据内容的表现。GML是基于OGC创建的公共地理模型(OGC抽象规范)基础上的,即空间实体特征及属性封装,用地理特征描述世界[2]。地理特征包括一系列的属性和相应的几何信息,属性是由名称、类型和属性值组成,几何信息由基本的几何建模体(如点、线、面、曲线、多边形等)组成。GML可以对很复杂的地理实体进行编码。空间参考系统是地理信息系统数据处理的基础。GML可以封装空间地理参考系统及主要的投影关系等,对空间参考系统进行编码,这点确保了分布式处理的扩展性和灵活性。GML对地理数据的分发非常方便,可以实现地理数据的分布式存储;另外,GML可以用公共工具浏览和编辑,还可以实现与非空间数据集成。由于以上优点,GML已经被大多数的GIS开发商所接受并得到进一步的开发。GML数据在网络浏览器上的显示如图1所示。
3 WFS的特点
OGC制定的互联网相关规范,是一套运用XML通过通信协议与服务器沟通的规范,其中包括网络要素服务WFS(Web Feature Services),WFS是架构一个基于Web的开放式地理信息系统的重要规范之一。WFS是作为一种数据访问机制提出的,用于异构数据基于GML要素层的获取,并且实现数据的互操作性。WFS可使数据客户在分布式环境下通过Web Service来获取不同数据源的数据,即让地理数据以GML格式传输给用户。
WFS返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作[3]。WFS允许客户端从多个WFS中取得使用GML编码的地理空间数据,它定义了5个操作:GetCapabilites返回Web要素服务性能描述文档(用XML描述)、DescribeFeatureType返回描述可以提供服务的任何要素结构的XML文档、GetFeature为一个获取要素实例的请求提供服务、Transaction为事务请求提供服务、LockFeature处理在一个事务期间对一个或多个要素类型实例上锁的请求。
WFS允许一个客户端以GML编码格式从多重的网络要素服务中获取空间要素。WFS以XML编码,再用GML表示地理要素,GML描述的地理要素的数据源数据库可以对客户端应用不透明。这种方式要求任何空间数据的访问必须通过WFS的接口。
WFS提供四种对GML要素的数据操作接口:创建实例、查询获取实例、删除实例、更新实例。服务器端首先提供其能够实现的服务描述,客户端的应用程序以XML方式发出请求,该请求包括查询和变换数据操作,可以用于一个或多个要素,在一个或多个数据库上进行(通过GML的XLink实现)。WFS服务器读取和传递这些客户端的请求,以GML格式返回结果。图2表示客户端应用与WFS服务接口的交互过程。
4 WebGIS体系结构
目前,WebGIS最常用的体系结构是B/S和C/S的混合模式结构,即:服务器并不处理用户的所有请求而是处理一部分请求,通过服务器向客户端发送一段运行在本地机上的客户程序,这个程序可以与用户交互,处理用户的一些简单请求。当客户发送一些复杂、高级的操作要求而客户端不能处理时,请求服务器端处理,这样才能达到负载的平衡。为了更好地解决地理空间数据的共享和网络带宽的问题,GML、WFS和SVG的组合使用标准的数据模型描述地理要素的一致性和语法,可以使来自不同数据源的数据不经过异构转换即可实现共享。
4.1 主要技术特点
在WebGIS中先将空间数据转换成GML格式存储,再通过XSLT将GML转换为SVG。目前IE和Nescape等主要浏览器还不支持SVG的显示,所以要先在浏览器上安装SVG图像插件(如Adobe的SVGViewer),从而实现失量图形的显示。
空间数据到GML的转换非常容易实现,因为各GIS软件都有自己的数据交换格式或部分公开数据格式,只要这些空间数据文件以文本形式打开,按照一定的格式将元素读取出来转换成对应的格式即可。
GML到SVG的转换则是利用XSLT,因为SVG和GML都是基于XML的,并且XSLT(Extensible Stylesheet Language Transformations)是把一种XML格式的数据转化为另外一种XML格式的数据语言。首先源XML数据的元素被分析、过滤、记录,而新的元素根据转化要求被创建,形成一个新的XML文件,如图3。从GML到SVG的转换需要进行坐标转换和文档映射两部分[4]。SVG提供了平移、旋转、伸缩、歪斜、矩阵变换等几种坐标转换方法,因此用GML表示的空间地理数据可以方便转化为SVG格式。
采用XSLT技术将GML文件转换为SVG文件的优点是修改图形时不需要修改SVG源文件,只需要修改GML文件,并且可以结合JSP技术动态生成SVG文件[5]。在系统中,这部分任务主要由Web应用服务器执行。具体实现方法:采用Xalan-Java2 XSLT处理器,它完全支持W3C的XSLT1.0版本建议标准和Xpath1.0标准,将GML文件根据XSLT样式表文件转换为SVG格式的文档。
4.2 框架体系设计
它采用GML进行数据编码与定义地理元素的联系,GML在元素层定义元数据,生成GML文件,允许在元素层方便地查询。此外,在GML中使用XLink来联接不同数据源的数据,这样数据在一个数据源更新时,可以实时地在关联的数据表示和应用中查看和获取。对于远程数据的访问和交换,OGC的WFS用于通过网络访问和处理要素层的数据。图4为此框架体系结构的总体设计。
服务器端GML描述遵循标准的空间数据模型,异构数据用GML3.x表示。在一个网络服务器上部署实现WFS,WFS是基于HTTP协议的GET/POS方法实现GetCapabilities、escribeFeatureType、GetFeature/GetFeatureWithLock、LockFeature以及事务操作等请求与响应的功能,能够生成WFS规范化的XML文档供客户端程序调用;客户端安装SVG显示插件,并在网络服务器上开发GML解析模块,对WFS接口生成的XML文档中的GML进行分析,设计XSL、CSS文件,完成由GML生成SVG文档功能。
该体系结构的特点:GML、SVG是完全基于XML的,具有平台无关性,并且是纯文本的,编码的可读性强;异构数据可以以其原始格式存储,通过使用WFS转换成GML快速获取,可以解决WebGIS中比较突出的异构数据共享问题;浏览器端的地图发布采用SVG矢量图形,在进行网络传输时数据量比传输栅格图片的数据量小,从而可以减轻网络传输负担,加快传输速度,使系统的执行效率达到最优化,且性能比较稳定。
GML、SVG和WFS是标准的技术,每一个都有独特的作用,组合使用给WebGIS的发展提供了更大的潜力。GML作为标准空间数据格式正应用于越来越多的领域;SVG作为一种基于XML的图形描述语言,可以在Web上形成高质量的图形也会得到广泛应用;WFS可以更好地实现异构数据的互操作。而GML+SVG+WFS框架可以克服传统WebGIS的很多缺点,很好地解决了空间数据共享、网络带宽、提高显示地图的图形质量等问题。但是在地图信息量较大时,会造成客户端SVG显示速度下降,并且XML文件的传输会占用较大的带宽,因此XML传输将成为亟待解决的问题。
参考文献
[1] 彭海龙,邹彬,邵岩,等.SVG在海区信息WebGIS中的应用研究[J].海洋预报,2005,22(l):5-10.
[2] 龙明,王晓明,冯猛,等.基于XML的WebGIS体系结构.测绘学院学报,2004,21(2):121-123.
[3] Web feature service implementation specification. Open. GIS Consortium Inc. [EB/OL]. http://www.openg-is.org/(19-September-2002).
[4] 刘旭军,关佶红.WebGIS应用中的GML文档到SVG的转换[J].计算机应用,2004,24(2):157-160.
[5] 简友光,李岩.基于SVG+GML的空间信息发布的方法研究[J].计算机与数字工程,2006,34(1):72-76.