摘 要:分析网络地理信息系统(WEBGIS)的现状,发现当前系统存在的问题。并结合SVG技术和Ajax技术,提出构造一新WEBGIS系统的想法。首先介绍了各种使用到的技术,SVG技术有占存储空间小和强交互性的特点,说明利用这种矢量图形规范进行webgis系统开发的可能性; Ajax技术有“按需取数据”特点,说明利用Ajax进行客户端与服务器之间通信实现的WEBGIS具有图形质量高、传输速度快等优点;缓存技术是指利用一定的调度算法实现地理数据的适当存储,以用来提高系统的响应能力。其次,设计了一个四层的基于B/S的WEBGIS模型。然后介绍了模型实现的关键要点:缓存技术实现的原理及技术;SVG采用层次结构进行空间数据的表达以及与客户进行交互的具体实现;并且为了提高数据的传输速度,本系统对传输数据进行了压缩,介绍了所采用的压缩算法,并且对系统进行测试,比较了系统性能的变化。最后利用SVG和Ajax等技术实现了WEBGIS系统。
关键词:SVG;Ajax;WEBGIS;缓存 1、引言 网络地理信息系统(WEBGIS),是GIS与网络的结合,GIS通过网络进行了扩展,从网络的任意一个节点,人们可以浏览和获取Web上的各种地理空间数据。目前地理数据的概念已扩展为:分布式的、超媒体特性的、相互关联的数据。 近年来,网络技术的发展为WEBGIS提供了广阔的发展空间。但由于网络速度限制,基于WEBGIS的空间信息服务并不理想,而且传统的web语言HTML也不利于表现地理空间数据,使WEBGIS的发展面临着严峻的技术挑战,具体表现在(1)空间信息的动态升级变化实现较为困难,(2)数据共享程度较低,不同平台间数据共享较困难,形成网络上的“数据孤岛”,造成极大的浪费。(3) 传输速度较慢,这是目前WEBGIS发展最大的瓶颈。(4) 空间信息表达有待完善。(5)地图与用户间交互性差、动态效果实现困难。这些问题造成WEBGIS实用性的降低,无法满足用户要求。因此,能否采用相关技术针对上述问题实现一个全新的平台是近年来领域研究的一大热点。针对提出的问题,我们得出新平台应具备空间信息更新容易、地图数据量小、便于传输、能附加其它多媒体信息且价格低廉等特点。综合分析目前各种方案的优缺点,文中设计和实现了基于SVG和Ajax技术的WEBGIS系统:利用SVG的占存储空间小和强交互性以及Ajax技术的“按需取数据”等特点,初步解决了上述问题。 2、使用的技术 2.1 SVG SVG(Scalable Vector Graphics)是一种基于XML的用来描述二维矢量图形和矢量点以及阵混合图形的置标语言,是一种矢量图形规范。SVG规范定义了SVG的特征、语法和显示效果,包括模块化的XML命名空间(namespace)和SVG文档对象模型(DOM)。SVG的绘图可以通过动态和交互式方式进行,在实际操作中,则是以嵌入方式或脚本方式来实现的。SVG不仅提供超链接功能,还定义了丰富的事件。由于SVG支持脚本语言(javascript),可以通过Script编程,访问SVG DOM的元素和属性,即可响应特定的事件,从而提高了SVG的动态和交互性能。SVG实现了图形、图像和文字的有机统一。SVG除了支持HTML中常用的标记,如文本、图像、链接、交互性、CSS的使用、脚本(Script)外,还提供了大量针对图形、图像、动画的特定标记。这就为实现GIS提供了可能。 2.2 AJAX Asynchronous JavaScript and XML (Ajax ,异步J avaScript 和XML ) 是多种技术的综合,在XHTML 和CSS 基础上,使用DOM实现动态显示和交互,使用XML 和XSTL 进行数据交换与处理,使用XML HttpRequest 对象进行异步数据读取,使用JavaScript 绑定和处理所有数据. 在应用Ajax 之前,Web 站点强制用户进入提交、等待、重新显示的模式,用户的动作总是与服务器的思考时间同步.Ajax 提供与服务器异步通信的能力,使用户可从请求—响应的循环中解脱出来 . 本文探索采用SVG与Ajax 技术实现WEBGIS 的方法,涉及的系统采用SVG作为地图文件格式,Ajax实现客户端与服务器之间的通信,由此实现WEBGIS具有图形质量高、传输速度快等优点。 3、系统的设计 在由SVG与Ajax实现的WEBGIS中,摒弃传统从服务器发送栅格数据结果到客户端的方式,实现以XML 数据格式从服务器端向客户端发送数据,再由客户端SVG图像引擎将XML数据转换为SVG对象在客户端SVG插件中显示。系统采用B/S结构,整个由SVG与Ajax 实现的WEBGIS系统分为四层,分别是数据层、GIS服务层、WEB服务层和客户端。 客户向服务器提出请求,服务器接收到请求后,生成矢量地图,并且压缩后传回客户端,客户端收到数据以后解压,然后由Adobe SVG Viewer(ASV)显示。在请求与响应期间,利用Ajax技术和缓存技术给用户更好的体验。而SVG的使用使系统数据量大大减少,提高了响应速度;同时也增强了地图与用户的交互性。 4、系统的实现 4.1实现缓存 运用基于AJAX的模型。在HTTP的验证模型中,第一次客户发送请求时,要求服务器给予最新的数据,所以发送请求的REQUEST HTTP头中没有包含标识符。服务器给客户准备好最新的数据,并在回应的REPONSE HTTP头中加入MarkFlag项,它的值便是引用数据的唯一标识符。它回应的状态码是X_State,表示资源找到,正常发送内容。第二次客户请求同样的内容时,在客户端中已有这 个内容的缓存,所以在发送请求的响应头中加入 If-None-Match 的内容项,它的值是刚才服务器发给它的MarkFlag内容项的值。服务器收到这个请求,取出If-None-Match的内容项标识符的值,并与自身的标识符相比较。如果它们的值相同,表明服务器上的内容没有更改,这时发给客户端的HTTP回应是Y_State。如果服务器的内容已改变,则重新组织数据和产生新的引用数据的标识符,并且回应HTTP的状态码是X_State,发送给客户端,表示数据发生改变。如果客户端收到是Y_State的回应,表明数据没有改变,直接从缓存中获取数据。如果收到的状态码是X_State,表明数据已更新,则显示用户最新的数据,并更新数据的缓存。具体如下(图1): 图 1 从以上的分析可知,此模型仍旧需要HTTP请求和一些必要的HTTP的交互。但它传输的只是一些必要的HTTP头,大大减少了网络的通信量,同时也减少包括产生和发送数据的花销。在这个模型中,它的实现由客户端与服务器端两个部分组成。客户端运用AJAX技术,产生一个异步调用对象,用以请求和获取数据。并在HTTP头加上标识符,发送给服务器予以验证。当收到服务器的回应后,判断是数据从缓存中取数据,还是从服务器取数据。服务器端则对客户端的请求进行验证,来确定客户端是否有数据的缓存或过期。如客户端没有缓存或过期,则产生所需的数据内容和它的引用标识符,一并发给客户端。在这个模型中最为关键的是要由服务器端进行验证,来判断是否客户端的内容已经过期。 4.2 SVG表示地图和交互功能 结合传统栅格地图的分层特点,在本系统中采用SVG的 中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。