首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 专业文献>>正文
基于ASP.NET AJAX的WebGIS三维应用研究
2012年4月11日    评论:    分享:

    来源:第三维度
    作者:刘艳,马劲松,程旭
    单位:西藏大学城市与资源学系
          南京大学地理与海洋科学学院

    摘要:当前,WebGIS技术发展迅速,将不断成熟的Web3D技术应用于GIS的网络三维方向已有不少解决方案,而利用AJAX技术的优势可避免其中的插件下载问题。本文将ASP_NET AJAX 技术与Web3D技术相结合进行尝试,首先概述了AJAX技术的含义,之后较为详细地介绍了ASP.NET AJAX框架的原理机制。利用该框架中页面局部刷新的功能对Web3D进行了可行性研究和实验,并提出了初步的解决方案。将该技术与其他实现方案相比较可以看出,该解决方式在WebGIS应用中具有一定的现实意义。

    1 引言

    WebGIS是基于因特网平台、客户端应用软件采用www协议运行在万维网上的地理信息系统[1],当前已成为实现地理信息互操作和地理信息Web服务的关键技术。

    由于webGIS技术的重要性,人们越来越关注webGIS的研究、开发和应用,而且推出了大量的GIS平台产品。然而,webGIS的复杂性使其实现起来具有一定的难度,尤其是在三维方面。当前的Web3D技术已经较为成熟,Web3D的主流呈现方式基本是通过Applet或Active)(控件下载的方法予以实现。例如,LIVE SEARCH MAPS的强大3D效果需要下载Virtual Earth 3D软件进行支持。

    而AJAX技术炙手可热,基于AJAX的网络地理信息服务不断涌现,微软也推出了颇具特色的ASP.NET AJAX技术,从Atlas到ASP.NET AJAX 的正式版,以及未来的Vs2o08环境中的直接集成。可见,AJAX 技术正逐渐走向主流。那么,如果用户为了安全性而希望通过避免下载控件或软件来实现Web3D的显示功能,在B/S的架构中利用ASP.NET AJAX技术不失为一种较好的解决方案。

    2 AJAX技术概述

    早在2005年,Garrett就提出了AJAx一词,根据他的定义,AJAX技术包括以下内容:

    (1)使用基于XHTML和CSS标准的表示方法;

    (2)使用Document Object Model(CoM)进行动态显示和交互;

    (3)使用XML和XsLT进行数据交换和操作;

    (4)使用XMLHttpRequest与服务器进行异步通信;

    (5)使用JavaScript绑定以上技术[2]。

    从以上即可发现,AJAX并不是一门新技术,而是一种技巧,是对现有web技术如Ⅺ 几、JavaScript等技术的一种融合 这个词的提出使得这些技术深受重视,并发挥出极大的作用。

    AJAX的工作模式与传统的web应用模型相比有了明显的提高。在传统的模式下,大部分界面上的用户动作触发一个连接到Web服务器的H1vrP请求,服务器完成一些处理如接收数据、处理计算,或者访问其它数据库系统,最后返回一个HT 页面到客户端。这是同步请求页面的方式,用户需等待页面刷新而无法进行任何操作。

    然而,在异步通信的模式下,浏览器通过XmlHttpRequest对象异步发出HTTP请求。在服务器处理这一请求时,用户界面不发生变化,用户依然可以对页面进行操作。当服务端将处理结果以Ⅺ 几格式返回浏览器后,浏览器端的AJAX Engine解析数据,并基于CoM用JavaScript脚本语言更新需要变化的页面。两种工作模式的比较如图1所示[3]。

基于ASP.NET AJAX的WebGIS三维应用研究
a 传统web应用模型               b AJAX web应用模型
图1 AJAX工作模式和传统Web工作模式的比较

    AJAX技术的优点不言而喻,它可以不对页面进行完整的刷新,从而降低数据传输量,只请求所需要的数据[ 。总之,在网页中使用AJAX技术的最终目标是为了提高用户体验,让用户在浏览该站点时感到更加便捷。

    3 ASP.NET AJAX框架的原理机制

    ASP.NET AJAX框架基于ASP_NET 2.0所开发,如图2所示。加于其上的是ASP.NETM AX的服务端和客户端两个部分。

基于ASP.NET AJAX的WebGIS三维应用研究
图2 ASP.NETAJAX组成

    服务端的ASP_NET AJAX Extensions提供了序列化和反序列化的能力,即数据对象和JS0N字符串之间的转换,还提供了客户端访问Web Services的方法以及extender模型,利用此模型能够编写一个控件来对另一个控件提供额外的AJAX功能。

    与服务端平行的是客户端的Microsoft AJAX Library,它提供了JS的基础扩展,拓展了在原生对象中没有的方法,例如Array可以当作栈来使用;提供了浏览器的兼容层,省去了为不同浏览器编写不同JavaScript代码的麻烦,它支持IE、FireFox、Opera和Safari浏览器;提供了面向对象的类型系统,方便写出易于维护、便于扩展的代码;提供了异步通信层,相当于将XmLHttpRequest对象进行封装并扩展了一定的功能,便于服务器交互;提供了客户端基础类库,即在开发时可使用客户端组件模型如component模型、behavior模型和control模型的基础类库。

    ASP_NET AJAX Control toolkit是基于这两套组件开发的另一套组件,它由社区支持,是一个使用服务器端extender模型和客户端behavior模型开发的完全开源的组件包,可以轻松实现相当多的AJAX效果[5 ]。

    如上所述只是ASP.NET AJAX的大体架构,那么其中具体的异步刷新机制如何实现呢?如图3所示,当注册了一个异步提交的按钮时,它和传统提交方式不同,并不是直接被提交到服务端的Init方法,而是被页面中的PageRequestManager所截获,截获之后判断这次是传统提交还是异步提交:如果是传统提交,则正常进入生命周期;

    如果是异步提交,则通过使用XmlHttpRequest来收集页面上的所有信息,之后将Form和自定义的Header发送给服务器端,服务端依然是经历一个完整的生命周期。页面上的ScriptManager通过对H眺R进行检查,之后使用已经准备好的方式替换掉默认的输出方式,因而在页面的周期进行到Render方法时即会输出ScriptManager存在的一个方法,客户端对此进行解析,更换UpdatePanel中的代码,就实现了异步刷新[7]。

基于ASP.NET AJAX的WebGIS三维应用研究
图3 ASP.NETAJAX的异步刷新机制

    4 WebGIS三维网页的设计与实现

    ASP.NETAJAX为实现webGIS 3D提供了有力的支持,它的主要控件为UpdatePanel,同时还提供了Timer和UpdateProgress控件,开发者只需在页面中加入这些控件就可以使web UI的设计接近于桌面应用程序的设计。虽然两者实现原理有本质上的区别,但两者所呈现给客户的显示状态已经有了某种程度的相似性。本实验所编写的网页就是利用UpdatePanel和UpdateProgress控件来实现三维图像的动态更新,虽然实现原理和方法步骤并不复杂,但这种方式为Web3D的具体实现提供了新的思路。具体操作步骤如图4所示。

基于ASP.NET AJAX的WebGIS三维应用研究
图4 实验步骤流程

    (1)安装成功ASP.NET AJAX扩展框架以后新建一个ASP.NET AJAX—Enabled Web Site。

    (2)在页面上添加一个UpdatePanel控件和up—dateProgress控件,四个Button按钮,其Text属性分别设置为up、down、left和right,在UpdatePanel中拖入一个image控件。updatePr0gress控件中的AssociatedUp—datePanelID属性设为UpdatePanell,其中添加“正在生成,请等待⋯”字样。

    (3)客户端单击按钮时,服务器端生成三维图像,并将图像以Jpeg格式保存于硬盘上。服务端的三维图像可通过程序员自己编写3D引擎来完成,根据数据源的格式例如XMI,文件提取坐标数据点生成三维模型,有着较大的自由度,本文以生成单个多边形物体来示意。之后,将im—age控件的ImageURI 属性设置为该图像在服务端的路径,用户在浏览器端就可通过image控件观察到三维图像。

    (4)在页面上加入的按钮用于控制所生成的三维图像。在此实验中,分别添加上、下、左和右四个按钮用于控制三维图形朝四个方向的旋转,每单击一次按钮则服务器生成并回发一幅图像,以达到网页元素与三维显示的交互性;同时,编写代码将服务端所生成的前一幅图像删除,以便释放服务器硬盘空间。实验结果如图5所示。

基于ASP.NET AJAX的WebGIS三维应用研究
图5 实验结果

    在实际应用场景中,例如地图网站,如果需要实现三维交通路线图,就可通过用户输入道路的起点和终点位置,之后通过服务器在线生成道路场景的三维图像,从起始点场景逐步过渡到目的地,给用户以三维体验。针对web3D的显示方式,Cult3D、Viewpoint、GI 4Java和Flatland等繁多的公司都提出了自己的解决方案。要在互联网上观看三维效果,都需要下载不同大小、种类繁多的插件。那么,使用ASP.NET AJAX技术的优势就是Flash、Java Applet和ActiveX等需要下载,是安装插件的技术所无法比拟的。

    与JAVA3D相比,JAVA3D需要JVM 的支持。不同平台有它自己的3VM,只要支持JVM,即可运行JAVA Applet。

    Netscape和IE都支持,而ASP.NET AJAx支持四种浏览器,提升了用户体验。国内目前的WebGIS应用多数处于2D应用阶段,而三维webGIS的实现方式又过多地限制于插件。因此,利用AJAX技术可以较好地克服这些不足之处,是实现三维webGIS的一种新方法。

    5 结束语

    本实验可以成功地在客户端通过运行测试,通过图像的动态刷新提高其客户端的浏览效果,有着较好的应用前景。但是,该方法在实际使用中仍将产生某些问题。由于该B/S模式中采用服务端进行图像即时生成的模式,那么对服务器所造成的压力会相当大;因为客户端不断需要显示三维图像,那么IE缓存中所保存的图片数目将会随着动态显示的时间增加而增大,即使图片以JPEG格式存储,它们所占据的IE缓存空间仍会很大,用户在多次操作之后可能需要手动清空IE缓存;以图像不断刷新的方式呈现将会减少与用户的交互性。该方法所存在的以上问题相信随着研究的深入将会得到解决。

    参考文献:

    [1] 侯静,魏连雨.WebGIS在路面管理系统中的应用EJ].交通与计算机,2004,22(2):78—80

    [2] Garrett J J.hJAX:A New Approach to Web Applications[EB/OL]、[2006—02—12].http://www.Adaptivepath.corn/publlcations/essays/archives/000385.php.

    [3] 徐卓揆,刘德钦,林宗坚.AJAx技术在WebGIS中的应用[J].测绘信息与工程,2007,32(1):3-5.

    [4] 杨华.AJAx及在ASP.NET中的实现[J].现代电子技术,2006(12):79—82.

    [5] Esposito n Introducing Microsoft ASP.NET AJAX[M].Microsoft Press,2007.

    [6] Gibbs M,Wahlin n Professional ASP.NET 2.0 AJAX[M].W rox,2007.

    [7] 赵勘.深入浅出ASP.NET AJAX系列[EB/()L].[2007—03一os].http://jeffreyzhao.cnblogs.corn/.

标签:AJAXGISASP
上一篇:虚拟现实技术在温室模拟仿真中的应用
下一篇:基于虚拟现实技术的船舶运动仿真
网友评论:基于ASP.NET AJAX的WebGIS三维应用研究
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于ArcGIS创建三维虚拟城市流程
·三维虚拟地球的海洋信息适用性分析及原型研究
·组件式 GIS 技术在军事仿真系统中的应用
·海岛礁及周边复杂环境动态三维建模
·基于虚拟环境的黄河仿真系统构建
·超大规模分布式虚拟现实系统
·用 GIS与虚拟现实技术模拟火灾过程
·地理信息科学研究进展
·论虚拟地理实验思想与方法
·论天地一体化对地观测网与新地理信息时代
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号