基于AJAX的电子地图系统

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:marrylosa123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着计算机技术飞速发展,传统的纸质地图在表现形式及信息查詢方面已越来越难以满足人们对地图的使用需求,如何将互联网用于地图信息管理已成为当前研究的重点。本课题主要研究内容是利用Ajax框架开发“web电子地图系统”,满足用户对地图搜索、定位等功能模块在性能方面上的要求。
  关键词:Ajax; web电子地图; Hibernate; LRU
  中图分类号:TP399 文献标识码:A文章编号:1009-3044(2007)03-10804-01
  
  1 引言
  
  目前,电子地图的应用越来越普遍,短短几年间,电子地图应用已从少数科研单位和军用部门迅速扩展到能源、交通、铁路、通信、物流、金融、企业、国土资源、市政规划、旅游、网站等各个民用领域。电子地图的广泛应用极大地改变了人们的工作方式,提高了工作效率,带来了巨大的经济效益,具有广阔的应用前景。
  Ajax由HTML、JavaScript技术、DHTML和DOM组成,这一架构可以将笨拙的Web界面转化成交互性的Ajax应用程序。它大大增强了Web程序的功能和交互性,使Web程序可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件。Ajax使Web应用的交互有了质的飞跃,提高了用户的体验度。
  在本文中,我们将介绍如何使用Ajax架构建造一个电子地图系统。
  
  2 关键技术
  
  2.1 LRU算法
  LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,最早是为虚拟页式存储管理服务的。它的基本概念是:当内存的剩余可用空间不够时,缓冲区尽可能的先保留使用者最常使用的数据,换句话说就是优先清除“较不常使用的数据”,并释放其空间。在开发本系统中,地图的缓存管理与内存的缓存管理有一定的相似性,所以本系统使用该算法来管理客户端的缓存。
  本系统主要采用了计时法来实现该算法。给客户端区域列表中的每一个区域增加一个域,专门用来存放计时标志,用来记录该区域自上次被访问以来所经历的时间。区域每被访问一次,计时清0。要装入新区域时,从内存的区域中选出时间最长的一页,调出,同时把各区域的计时标志全部清0,重新开始计时。
  2.2 Ajax框架
  Ajax框架包括了一系列技术,它大大增强了浏览器与用户的交互性。在Ajax之前,Web站点和用户的交换模式是“进入->提交->等待->重新显示”,只有通过用户动作,才能让服务器进行运算。Ajax却可以让浏览器与服务器进行异步通信,从而使用户从上述模式的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新用户界面,并向服务器发出异步请求,以执行更新或查询数据库。
  虽然Ajax所需的基础架构已经出现了一段时间,但直到最近异步请求的才开始真正流行起来,因为它最终允许开发人员和设计人员使用标准的HTML/CSS/JavaScript模式,使得B/S系统具有像C/S系统的操作性。
  2.3 Hibernate
  Hibernate是一个面向Java环境的对象/关系数据库映射工具。在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。对象/关系数据库映射(object/relational mapping (ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
  Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
  
  3 地图系统模块设计与实现
  
  系统结构如图1所示。整个系统由下面四个模块组成——客户端的地图显示操作系统和地图缓存模块,连接服务器端和客户端的数据传输模块,在服务器的数据库查询模块。
  图1 地图系统结构图
  3.1 地图显示和操作模块
  地图显示模块和操作模块负责地图的显示与操作,如地图移动、放大、缩小、定位等。它根据客户的操作,先从缓存中搜索相应的地图数据,如果缓存中没有对应的地图数据,那么缓存模块就会向数据库查询模块发送请求,获得当前的地图数据。数据的传输均通过xml流的格式进行传输。系统界面如图2所示。
  图2系统界面图
  在该模块我们借助了Ajax,可以在用户操作时候,使用JavaScript和DHTML立即更新地图信息,并向服务器发出异步请求,以执行更新或查询缓存与数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新页面,而不是刷新整个页面。这样大大地减少了系统的响应时间。
  3.2 地图缓存模块
  地图缓存模块用于存储地图数据,提高系统的效率,降低反应时间。当用户访问地图的某一区域时候,系统将会读取该区域临近区域的数据,储存在缓存中,方便用户查询。而用户查询的时候系统会先从缓存中读取,如果不能命中,系统会向数据库查询模块发送请求,查询地图数据。而当用户在操作地图的同时,系统会自动从后台的服务器中读取数据,存储到缓存中,而这个时候用户是根本没有意识到浏览器正在与服务器通信。而用户访问其他的区域的时候,访问就会变得非常流畅。
  本系统采取了LRU算法,动态置换缓存中的内容。LRU算法的提出,是基于这样一个事实:在前面一系列操作中使用频繁的区域很可能在后面的操作中频繁使用。反过来说,已经很久没有使用的区域很可能在未来较长的一段时间内不会被用到。这个,就是著名的局部性原理。所以在每次调换时,找到最近最少使用的那个区域调出内存。这就是LRU算法的全部内容。
  3.3 数据传输模块
  在数据传输模块中,使用了JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
  所有的数据均采用xml的格式进行传送,当客户端向服务器发送请求的时候,服务器端会返回一段xml,格式如下所示。
  地图显示模块将会解析这些xml,然后显示在客户端的界面上。
  3.4 数据库查询模块
  数据库查询模块根据客户端的请求,查询数据库,然后将查询结果通过传输模块发送到给客户端。我们使用了Hibernate框架。
  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。数据库的框架如图3所示:
  图3 数据库框架图
  如上图所示,Hibernate通过JNDI、JDBC、JTA来与数据库连接。通过Hibernate session打开一个数据库的连接。在一个Session中,每个数据库操作都是在一个事务(Transaction)中进行的,这样就可以隔离开不同的操作(甚至包括只读操作)。系统通过Persistent Objects(持久化对象)来对应数据库对象。这样,系统就把数据库层与事务层分割开来。从而产生的代码更易于维护。
  
  4 结束语
  
  构建电子地图系统是一项复杂的工作,本文对基于Ajax架构构造电子地图系统进行了研究,并且提出了实现框架。利用Ajax架构,可以大大提高系统的功能性和交互性。利用缓存机制,能够大大增加系统的效率和灵活性。总的来说,本系统满足了一般用户对地图查询、搜索以及定位等基本功能要求,为开发web电子地图提供了一个实用的参考模型。
  参考文献:
  [1]Jesse James Garrett. Ajax: A New Approach to Web Applications. Adaptive Path,2005,2.
  [2]Lopriore, Lanfranco. Access privilege management in protection systems[J]. Information and Software Technology, 2002, 44(9): 541-549.
  [3]Roberts, Christopher B. The Impact of Information Technology on the Management of System Design[J]. Technology in Society, 1996,18(3): 333-355.
  [4]Ray, Indrakshi; France, Robert; Li, Na; Georg, Geri. An aspect-based approach to modeling access control concerns[J]. Information and Software Technology, 2004, 46(9): 575-587.
  [5]胡卫明. 大幅面地图的快速自动地形晕渲[J]. 计算机学报,2002,25(11):1212-1218.
  [6]霍炬. Ajax Web 2.0的催化剂[J]. 程序员, 2005,12:84-85.
  [7]梁民. 基于AJAX技术开发web应用[J]. 电脑知识与技术, 2006,2:119-119,193.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:该文对使用VB开发数据库时常用到的各种网格控件进行了分析比较,对读者灵活使用网格控件进行数据库应用系统开发具有参考作用。  关键词:网格控件;Grid控件;DBGrid控件;True DBGrid控件;SSDBGrid控件;MSFlexGrid控件;vaSpread控件;Formula One控件  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)03-1077
期刊
摘要:基于量子物理原理的量子密码术已被证明是保密通信中密钥安全分配的有效手段。本文介绍了量子密码的基本原理,介绍了实现量子加密的几种方案,并主要研究了基于EPR纠缠对的密钥分配机制,还讨论了量子密码通信的历史发展和指出现存在的问题以及未来的发展前景。  关键词:量子密码;量子加密;测不准原理;EPR关联;量子纠缠  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)03
期刊
摘要:实时性是嵌入式应用中一个重要的指标,而优先级翻转是影响系统实时性的一个重要因素。可剥夺型内核中,任务以独占方式使用共享资源时,将出现低优先级任务先于高优先级任务运行的现象,即优先级翻转。本文以实时操作系统uC/OS-II为例,分析了产生优先级翻转的原因,阐述了利用互斥信号量解决该问题的原理并通过具体的应用程序对这一方法的可行性进行了验证。  关键词:uC/OS-II;优先级翻转;mutex
期刊
摘要:在微软某些产品成为事实标准的时代,对这些产品发起挑战是一件困难的事情,但并非是不可能的事情,依靠着技术创新,永中集成Office和桌面Linux作出了典范,并且正朝着正确的方向前进,只要二者能够尊重用户使用习惯、提高兼容性和增强扩展性,打破微软垄断将不再是问题。  关键词:技术创新;平台移转  中图分类号:TP316 文献标识码:A文章编号:1009-3044(2007)03-10791-0
期刊
摘要:动态电路的一个特征是当电路的结构或元件的参数发生变化时,可能使电路改变原来的工作状态,转变到另一个工作状态,这种转变往往需要一个过程,在工程上称为过渡过程。本文以动态电路理论中一阶动态电路用三要素的方法分析计算、二阶以及二阶以上的动态电路用拉普拉斯变换分析求解为例,详述了如何分别运用MATLAB语言编程和应用Simulink模块的方法来对电路进行仿真分析和计算。结论表明,应用MATLAB可以
期刊
摘要:简要回顾了常见的办公OA系统结构和开发技术,分析了B/S结构下OA开发的系统架构、办公应用需求以及开发中存在的问题,设计了一种集成办公软件RedOffice的OA系统。实践证明,该系统可以满足办公需求。  关键词:B/S结构;OA系统;办公应用需求;RedOffice  中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2007)03-10744-02    1 引言  
期刊
摘要:本文介绍了VRML与JAVA、JAVASCRIPT通讯的原理、实现方法以及各自的性能特点,重点研究了JAVA、JAVASCRIPT和VRML在三维建模方面的结合应用技术,并给出了实例。  关键词:虚拟现实建模语言;交互;EAI;API  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10764-01    1 引言    近年来,随着网络技术和WWW的发展
期刊
摘要:硬盘并没像PC的“摩尔定律”一样发展,硬盘成高性能PC发展的绊脚石。新兴的SSD技术日益成熟,这种新技术将改进PC系统结构。本文介绍最新SSD技术的进展,并利用SSD技术对传统的PC存储系统结构进行改进的几种方案及优劣比较。  关键词:SSD;存储系统结构;硬盘;Nand Flash  中图分类号:TP334文献标识码:A文章编号:1009-3044(2007)03-10762-02    
期刊
摘要:针对现有车载MP3播放器的不足,设计了一个基于S3C2410芯片的μClinux环境下的车载MP3播放系统。详细介绍了嵌入式μClinux操作系统和由ARM9芯片S3C2410构建的MP3播放器的硬件结构和软件系统。  关键词:车载MP3; μClinux;S3C2410  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)03-10756-02    1 引言 
期刊
摘要:提出了以Visual C++为开发工具,基于OpenGL技术,开发军用物资装载仿真系统的具体方案。采用数值仿真与可视化技术相结合的方法,建立了军用物资装载模型,对物资装载量与装载方式进行仿真,并得出直观的计算结果,为实际货运装载提供理论依据。  关键词:OpenGL;三维模型;虚拟装载  中图分类号:TP391 文献标识码:A文章编号:1009-3044(2007)03-10802-02  
期刊