http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> WebGIS >> 正文

基于GML的大众化WebGIS应用系统研究

作者:罗英伟    文章来源:GIS空间站    点击数:    更新时间:2006-7-1
摘要:GML(Geography Markup Language)已逐渐成为大家所接受并容易理解的一种空间信息的交换格式,本文指出基于GML的大众化WebGIS应用将具有广泛的实用价值和市场前景,这包括基于GML的空间数据交易以及以GML数据为基础的大众化WebGIS应用.随后,基于XML Parser技术,本文探讨了一个实现基于GML的大众化WebGIS应用系统的建设方法,为大众化GIS应用提供了有益的参考.

摘 要:GML(Geography Markup Language)已逐渐成为大家所接受并容易理解的一种空间信息的交换格式,本文指出基于GML的大众化WebGIS应用将具有广泛的实用价值和市场前景,这包括基于GML的空间数据交易以及以GML数据为基础的大众化WebGIS应用.随后,基于XML Parser技术,本文探讨了一个实现基于GML的大众化WebGIS应用系统的建设方法,为大众化GIS应用提供了有益的参考.

关键词:GML,大众化GIS, WebGIS,XML Parser

作者简介:罗英伟,男,1971年10月生,获博士学位,讲师.主要研究领域为分布式计算,软件Agent及地理信息系统.

1 背景和问题提出

    XML技术是Internet上最新开发出的软件技术之一,它以其结构化,可扩展性,及灵活性的特点引起了业界的普遍关注,有着广阔的发展前景.国内外许多科研机构和公司,纷纷将其在WWW服务工作的重点从以HTML为核心转移到了以XML技术为核心上.XML的最大用途之一是作为网上不同数据存贮系统的交流中介,XML通过可扩展性提供了一种通用的数据格式,不同的软件系统之间可以通过这种新的数据描述方式进行通信从而实现完全的互操作,这源于XML实际上是将结构化的数据存贮在一个纯文本文件中的特性. XML通过标记文本的方法,不但可以表达信息内容,还可以表达信息的含义组织结构,将计算机软件之间交换的知识提升到了有结构的有意义的符号流的水平.作为数据存储的重要组成的数据库领域,也出现了纯XML数据库(Oracle9i),网络上的XML数据库(wisc,Niagra项目)的发展趋势.因此在网络上以XML交换数据是未来发展趋势.在这个过程中,XML DTD和XML Schema着眼于描述以XML形式组织的符号流的语法结构.XML DTD偏重信息的结构不考虑信息的含义;XML Schema则把符号流的结构提高到对象的层次在一定程度上考虑了信息的含义,方便将以XML格式存在的信息映射到计算机软件中的对象体系,简化了分布环境中对象迁移的存储格式转换过程【1】【2】.
    与一般的信息不同,空间信息通常与特定的GIS产品绑定.换言之,空间信息具有各种各样的结构,用户只能使用特定的GIS来访问某个空间信息.随着XML的提出,人们看到了从属不同GIS产品的空间信息能够被容易使用的曙光.OGC在2000年5月12日发布了基于XML的空间信息表达规范GML1.0,并很快成为了业界所接受的空间信息格式.随着XML技术的发展,OGC又于2001年2月20日发布了GML2.0规范,使用XML Schema取代了1.0中使用的DTD【3】.
    大众化的WebGIS应用应该能够让应用开发者以一种非常简单的方式构建GIS应用,同时,接入到Internet上的终端设备存在很大的不同,从大型的Mainframe,流行的PC,直至小型的移动电话,PDA等等,这也就要求大众化的GIS应用具有普遍的适应性.目前,空间信息已经大量存在,但当人们要使用空间信息时,却面临着很大的困难,这一方面是因为空间信息格式的难理解性,另一方面也因为现有的GIS产品过于庞大.
1
    正是因为GML已成为大家所接受并容易理解的一种空间信息的交换格式,我们认为,基于GML的大众化WebGIS应用将具有广泛的实用价值和市场前景,这包括基于GML的空间数据交易以及以GML数据为基础的大众化WebGIS应用.在将来,空间信息将会大量地以GML格式存在,人们可以方便地进行空间信息的交易,同时,以GML数据为基础的大众化WebGIS应用系统可以帮助人们轻松地获得一些简单的GIS应用.基于GML的大众化WebGIS应用系统应该是一个非常简单但实用的嵌入式GIS程序,它不需要复杂的GIS服务器及其空间数据传输协议,因为GML数据可以直接利用HTTP协议传输,本文就是要探讨如何来实现这样一个系统.

2 相关工作

    英国Leeds大学用Java开发了一个工具GeoTools【4】,基于Web对符合GML1.0规范的空间数据做了显示试验,它使用Xerces-J Parser解析GML数据和相应的DTD元数据,再使用GeoTools对解析后的数据做处理,实现地图显示.GeoTools在功能上支持对地图的浏览和放缩,实体的选取以及点击特定实体之后的产生新的链接网页,但没有提供对实体属性的显示和编辑功能.
    目前,GeoTools中已加入了GMLReader类,用来读取符合GML1.0规范的GML数据,实现了对符合GML1.0规范的GML空间数据的支持.

3 XML Parser

    要实现对GML数据的理解,XML Parser是至关重要的一环.XML从逻辑上来看,是组织成树型结构的数据结点集合,而XML Parser的作用,在于解析出XML结点树中包含在各个结点的信息.它对XML数据用类似编译器的解析方法,依次输出各个结点包含的数据,然后可以将这样的数据变成有结构的信息交给计算机程序处理,或者以更直观的方式显示出来,让人阅读.
    XML Parser就编程接口而言,目前有SAX和DOM两种标准.SAX采用时间驱动方式,对文档开始和结束,元素开始和结束等,都触发事件交给程序处理,这样程序的工作比较重.同时它将XML数据看成数据流,没有树型结构的概念,这样它只能做顺序处理.但是它所消耗的计算资源很少,适合在服务器端使用.而DOM则是文档驱动方式,在处理时先将XML数据按逻辑结构在内存中也组织成树型结构,再对内存中的结点树做操作,这样的使用方式符合人们的逻辑思维习惯,比较容易使用.但因为需要在内存中建立结点树,消耗较多的计算资源,适合在客户端使用.
    在基于GML的应用中,XML Parser的作用在于解析出GML数据中包含的空间数据,供其它应用软件使用.针对GML2.0规范的XML Parser,需要支持DOM2, SAX2和XML Schema,同时它的设计结构应该比较清晰,可扩展性好,这样可以针对GML数据对XML Parser做修改,提高XML Parser在解析GML数据时的性能,也可以减少XML Parser消耗的计算资源.
下面介绍几个业界现有的,拥有广泛支持者的XML Parser:
3.1Apache
    Apache的Xerces是最早的XML Parser之一,它来源于IBM推出的XML Parser,之后IBM将它的XML Parser提供给了Apache.目前Apache的Xerces有Java和C++两个版本,其中Xerces-J【5】目前为1.3.1版,它支持DOM2, SAX2和简单的XML Schema.Xerces-J一直是最快的XML Parser之一,因此它在底层代码上下了很多功夫,整个代码的结构比较复杂,可读性和扩展性不好.
2
    Xerces-J-2【6】则是由Apache开发的第二代XML Parser,它由Andy Clark提出,整个编程工作刚开始并不久.它的提出就是要解决Xerces-J代码结构复杂,可读性和扩展性不好的问题.Xerces-J-2有很清晰的系统设计,它的目标就是实现一个代码简洁的,模块化的并具有良好可读性和扩展性的XML Parser,方便程序员的使用,在功能上计划支持DOM2, SAX2和XML Schema.
3.2Microsoft
    微软是最早支持XML的大型技术开发商之一,它的Internet Explorer 5就支持XML配合XSL的显示.目前微软的XML Parser版本是msxml3和msxml4 technology preview【7】【8】.      作为最早支持XML Schema子集的XML Parser之一,在msxml4中支持DOM2, SAX2和
XML Schema. 微软的XML Parser是免费的商业软件,无法获得其代码,所以也无法修改它的内部结构,在扩展方面,只能使用COM增强它的处理功能.
3.3Oracle XML Toolkit
    作为Oracle的核心产品,Oracle XML Parser是Oracle XML Developer's Kit【9】的集成部件之一.在Oracle XML Developer's Kit中,还有很多与Oracle数据库相关的部件,它的目前版本为8.1.7.1.0,支持DOM1和SAX1.在新推出的XML Developer's Kit测试版中包含XML Parser for Java和Schema Processor for Java,它支持DOM2, SAX2和XML Schema. Oracle XML Parser同样是免费的商业软件,它也无法修改内部结构,只能编写外部应用来扩展它的功能.

4 基于GML的WebGIS应用系统的设计与实现

    在我们的设计里,我们希望能将GIS应用方便地嵌入到现有的网页之中,就像在网页中加入一张图片那样简单.因此,我们利用Java Applet开发一个简单的GIS应用程序,这个Java Applet(称为GML Java Applet)由两部分组成:GML Parser和GIS功能部件,GML Parser使得它能够操作GML数据,GIS功能部件则集成了一些简单但实用的GIS功能,包括地图浏览功能如放大,缩小,漫游,重画等,量算功能如距离,面积等,简单的查询分析与统计功能等,并且还提供一些诸如响应实体选取事件的简单的动态编程接口. 人们使用GML Java Applet就可以在自己现有的网页上方便地添加GIS应用了,他只需在这个Java Applet中嵌入source属性,指向服务器端的任何GML文件的位置(如)即可,当然,如果需要的话,还可以利用动态编程接口做一些特殊处理,如当点击了地图上某个实体后,需要链接到某个网站去.
    GML Java Applet实现中最重要的一环就是GML数据的解译和理解,即GML Parser.
    符合GML2.0规范的GML数据包括两个部分:GML文件和约束它的XML Schema文件.GML Parser解析GML数据,通过SAX或DOM的方式变为内存中的数据结构,然后供GIS功能部件进行显示和其他功能使用.解析流程如下图所示:
    可视化及其他应用 DOMSAX内存中的数据结构GML Parser (支持XML Schema)XML Schema文件 GML文件
3
    在实现一个XML Parser时,既可以在服务器端用SAX解析XML数据,也可以在客户端用DOM解析XML数据.在服务器端用SAX解析的方式一方面会带来巨大的网络流量,降低客户端的服务质量,另一方面SAX解析的效率不高.而在服务器端用DOM方式解析GML数据,将消耗服务器端大量的内存资源,服务器能支持的访问数量将受很大限制.在GML Parser的具体实现上,因为GML Java Applet将被下载到客户端执行,它在客户端的功运行时需要操纵大量的数据,而且需要反复使用GML文档树中的结点,因此GML Parser采用的是在客户端用DOM解析GML数据.GML Parser是基于Apache的Xerces-J 1.3.1版来实现的.
    在系统的使用过程中,一切工作对用户都是透明的,GML Java Applet是动态下载执行的,因此客户端不需要安装任何软件或插件就可以实现浏览和操作.用户访问网页时,GML Java Applet通过HTTP协议下载到客户端并启动,相应的GML文件,约束它的XML Schema文件也通过HTTP协议传到客户端,再由GML Java Applet中的GML Parser将GML文件和相关XML Schema文件解析为DOM树,最后由GML Java Applet中的GIS功能部件向用户呈现地图的可视化及其他功能.

5 总结

    GML作为业界所接受的标准空间数据格式,将极大地推动大众化GIS产业的发展.以GML数据为基础的空间数据交易和大众化WebGIS应用,具有广阔的应用前景.将GML数据转化为地图显示,并支持在地图上的简单操作,是大众化GIS提出的实际需求.本文提出的解决方案对大众化GIS应用将具有强大的推动作用.
6 参考文献
【1】Extensible Markup Language(XML) 1.0(Second Edition),http://www.w3.org/TR/REC-xml
【2】XML Schema Part 0: Primer,http://www.w3.org/TR/xmlschema-0/
【3】Geography Markup Language(GML) 2.0,http://www.opengis.net/gml/01-029/GML2.html
【4】GeoTools, the Java GIS toolkit,http://sourceforge.net/projects/geotools/
【5】Xerces Java Parser Readme,http://xml.apache.org/xerces-j/index.html
【6】Xerces2 Abstract,http://xml.apache.org/~andyc/xerces2/
【7】MSXML Parser 3.0 release,
http://msdn.microsoft.com/downloads/default.asp URL=/code/sample.asp url=/msdn-files/
027/001/596/msdncompositedoc.xml
【8】What's New in the April 2001 Microsoft XML Parser 4.0 Technology Preview,
http://msdn.microsoft.com/xml/general/newinaprilre.asp
【9】Oracle XML Developer's Kit for Java,http://technet.oracle.com/tech/xml/xdk_java/

Tags:GIS,教育,GML,WebGIS  
责任编辑:gissky
  • 上一篇文章: 没有了
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图