英语原文共 127 页,剩余内容已隐藏,支付完成后下载完整资料
基于HTML5和JSON的WebGIS研究
标准Web浏览器不支持Abstract-Vector数据,这使得WebGIS中矢量数据的可视化必须依赖于来自第三方的插件或诸如VML,SVG等技术。这种情况导致了胖客户,糟糕的用户体验,扩展功能和保持数据独立性的困难。提出了一种基于HTML5的矢量数据可视化方法,该方法是一种基于JSON的矢量数据结构,符合W3C的Web标准。基于HTML5和JSON,提出了一种新的WebGIS体系结构。实验系统表明,该新模型避免了现有WebGIS的弊端,具有良好的应用前景。
关键字:WebGIS,HTML5,JSON,Web服务,画布Introduction
- 介绍
很长时间以来,矢量空间数据不能通过网络浏览器的标准技术来支持。所以WebGIS的客户端使用对应不同平台的各种技术来支持矢量数据的可视化。从客户端的可视化角度来看,WebGIS可以分为图像类和矢量类。图像类WebGIS不需要任何特殊的客户端,但是任何用户映射的操作都必须提交给服务器,并且新的栅格图像将被重新渲染并返回给客户端,在此平台中,效率和互操作能力的系统非常低; 矢量型WebGIS采用插件,Java Applet,ActiveX,Flash,SVG等技术,这些技术要求客户端安装一些插件来支持矢量数据的可视化。总之,WebGIS无法在没有第三方插件的情况下在客户端绘制矢量数据,导致WebGIS平台复杂,用户体验差。
近年来,许多学者在没有第三方插件的情况下研究了WebGIS客户端矢量数据的可视化和互操作技术,如VML(矢量标记语言),JVGL(JavaScript矢量库)等。但VML只能在IE中工作,并且NGL的效率较低。VML等技术更适合于静态空间数据的可视化,因为它的可视化基于XML文档,而不是基于动态制图,这不利于数据独立于程序。
因此,一个技术支持矢量数据可视化,并放弃Web浏览器中的第三个插件软件对于WebGIS及其开发非常重要。本文将讨论HTML5技术及其在WebGIS中的应用。并且由于冗余度高,复杂和效率低,为了适应HTML5技术,本文还提出了一种基于JSON(JavaScript Object Notation)的矢量数据组织方法来代替XML文档。
2.基于HTML5的矢量数据可视化
A.
A.介绍HTML5
HTML是网页开发的标准语言,自HTML4发布以来,HTML在未来10年内没有任何重要的更新。在过去的10年中,Web应用程序要求Web开发语言提供更多功能:2007年,W3C成立了一个新的HTML5工作组,它支持视频,异步传输,矢量数据绘制,客户端数据存储等功能,新标准将在几年内完成。HTML5与HTML4截然不同,现在部分主流浏览器(如IE9,safari,Mathxon等)也支持HTML5 .HTML5专为Web应用程序,支持视频,矢量可视化以及其他一些新的重要技术而设计。
矢量函数的可视化是通过HTML5的画布对象(标记“lt;canvaSgt;”)实现的,这使得浏览器可以支持矢量空间数据点播和第三个插件软件。现在,HTML5仍然不是一个正式的标准,但是大多数网页浏览器已经在Firefox,Safari,Chrome,Opera,IE9等新版本中支持HTML5,这些浏览器可以非常支持“lt;canvasgt;”标签好。因此,基于HTML5的矢量数据的可视化将在WebGIS或地图的Web应用程序中得到广泛应用。
B.
B.基于HTML5画布的矢量地图的可视化
为了在WebGIS中可视化矢量数据,HTML5提供了一个在浏览器中动态绘制地图的重要功能。矢量数据的绘制独立于服务器端的任何第三方插件和API。 矢量数据的可视化功能由HTML5的新标签“lt;canvasgt;”(画布对象)支持。使用canvas的API,JavaScript语言可以获得Web浏览器的图形上下文,并在客户端的Web浏览器的屏幕上绘制任何文本和图形。图1是一个简单的在Web浏览器上画在画布对象上的图的例子,源代码如图1所示。
通过“lt;canvasgt;”API,JavaScript可以动态地绘制点,折线,多边形,文本,栅格图像等,这使得Web浏览器可以支持矢量可视化没有第三方插件。图2是一张HTML5动态绘制的地图。有些浏览器甚至支持在画布上绘制3D图形。同时,“lt;canvasgt;”支持HTML标签属性和许多事件,我们可以通过定义JavaScript函数来响应这些事件来实现GIS的地图操作和数据分析功能。
图1.画布上的动态绘图矢量数据
表1 源图代码ONCANVAS
lt;canvas id='m_canvas' width='200' height='200' onclick='canvas_c1ickO;'gt;lt;/canvasgt; lt;script type='text/javascript'gt; var canvas=document.getElementById('m _canvas'); //get graphic context of web browser var ctx=canvas.getContext(#39;2d#39;); //define font and text ctx.font= #39;italic 20px sans-serif; ctx.fillText (#39;Text#39;, 30, 30); //define fill mode and fill area ctx.fiIlStyle=#39;#ddddOO#39;;ctx.fiIlRect(11 0,110,80,1 00); ctx.beginPath();//begin draw polyline ctx.moveTo(lOO, 200); ctx.lineTo(l60, 200); ctx.lineTo(l30, 170);ctx.lineTo(l00, 200); //draw the map on canvas ctx.stroke(); function canvas_c1ick(){ //... the function body responding c1ickO event of canvas: } lt;/scriptgt; |
图2.通过HTML5的画布动态绘制的地图
与其他矢量可视化技术相比,HTML5可以独立于第三方插件,它与SVG,VML不同,因为HTML5通过浏览器的图形上下文动态地绘制矢量数据,但是SVG,VML的可视化是一种表达的静态文件。
3.基于JSON的矢量数据组织为了实现基于HTML5的WebGIS,向量空间
In
XML
数据需要按照适当的GIS数据结构进行组织。 基于图像类客户端的WebGIS,矢量的组织不是问题,基于第三插件的WebGIS通常采用基于二进制的矢量数据结构,而在基于SVG,VML的WebGIS中,矢量数据通常被定义为XML文档,这是复杂的,冗余度高。与上述矢量数据组织技术不同的是,基于HTML5画布的WebGIS只是使用JavaScript语言组织矢量数据,完全没有第三个插件软件。
A.
A.JavaScript和JSON
长期以来,在WebGIS的发展中,JavaScript语言只是作为Web互操作和计算工具,实际上JavaScript是一种面向对象的语言,可以表达GIS,VC,C#等GIS数据。
毫无疑问,矢量数据的数据结构可以用JSON(JavaScript Object Notation),来实现一个轻量级的文本交换格式,独立于程序语言,具有自我描述能力,易于理解。与XML文档相同,JSON格式可以作为GIS数据的交换格式,与XML文档不同,JSON文本可以在客户端用JavaScript语言轻松快捷地解析,这是简单的文本处理,不需要任何API任何文档解析器.同时,用JSON表示的地图的数据量远远小于XML文档。
JSON建立在两个结构上:
- 名称/值对的集合({“name”:“value”})。 在各种语言中,这被实现为对象,记录,结构字典,散列表,键控列表或关联数组。
- 有序的值列表([object1,object2])。 在大多数语言中,这是作为数组,矢量,列表或序列实现的。
表2. JSON示例.
var aObject= { 'firstName': 'Brett', 'lastName':'McLaughlin' } var bOject={'people':[ { 'firstName': 'Brett', 'lastName':'McLaughlin'}, { 'firstName': 'Joson', 'lastName':'Hunter'} ]} |
B.基于JSON的Vector的组织
B.
首先,我们定义点,多段线和多边形类,如图30所示,我们使用JavaScriptlJSON来实现它们。
图3中定义的相应类,基本对象用JSON编码,如图4所示的格式模型。
根据图4所示的格式模型,表3给出了WebGIS中两个简单的地图图层(点层和折线图层)的示例。
图3.矢量空间数据的UML类
图4.基于JSON的GIS数据编码模型
表3. 基于JSON的WESGIS空间数据样本
图5.基于HTML5和JSON的WebGIS体系结构
4.基于WEBGIS的HTML5框架
基于HTML5矢量可视化技术,基于JSON的数据组织技术,结合Ajax技术和Web Service技术,开发了WebGIS实验平台,平台结构如图5所示,其运行界面如图6所示。在这个实验性的WebGIS平台中,HTML标签“lt;canvasgt;”用于绘制矢量地图数据,JavaScript函数定义为响应“lt;canvasgt;”事件来完成地图操作的能力,JSON用于组织空间矢量数据,使用Ajax和Web服务完成通信和数据传输在WebGIS客户端和服务器之间。 客户端仅由HTML和JavaScript构建,程序非常小,大约100KB,它远小于基于Java Applet和ActiveX的WebGIS客户端。
图6.基于HTML5和JSON的WebGIS的GUI
5. 结论
本文提出了一种新的WebGIS矢量可视化方法,使WebGIS无需第三方插件软件即可支持矢量可视化,提出了一种基于JSON的矢量数据组织方法,适用于基于HTML5的WebGIS。 总之,基于HTML5,JSON和Ajax以及Web服务的新型WebGIS平台具有一些优势:
- 良好的延伸能力。 基于Applet的WebGIS,ActiveX以二进制程序为客户端,开发新的客户端程序不方便;
- 地图数据可以独立于程序。 不同形式的基于SVG,VML的WebGIS,地图矢量数据由静态XML文档组织,地图不能根据用户的需要动态显示。 但是在基于HTML5的WebGIS中,根据用户的命令,可以以不同的方式动态显示相同的地图数据。
- 该平台重量轻,易于开发和部署。
致谢
本工作得到了教育部长沙科技大学道路与交通安全灾害防治工程技术研究中心开放基金(编号:kfj 100308)的支持。 长沙市科技计划项目批准号K1005025-11; 湖南省教育厅科技计划项目批准号NO.09C089。
参考
[I] L Hickson, 'Avocabulary and associated APIs for HTML and XHTML,' W3C, January 2011, http://www.w3.orgfTR/htmI5.
[2] H. M. Huang, X. T. Yang, B. Z. Yang and L. Zhao, 'Web publishing model of configuration software based on AJAX and SVG,' Computer Engineering and Design, vol. 31, no. 11, pp. 2629-2632, November 20 I O.(Ch).
[3] L Hickson, 'HTML5 specification, DOM trees section,' W3C, January 20 II, http://www.w3.orgITRIDOM-Level-2-Core/intr
资料编号:[14108],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。