内存映射画图在地图浏览中的应用和研究.docVIP

内存映射画图在地图浏览中的应用和研究.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内存映射画图在地图浏览中的应用和研究   摘要:针对地图浏览中的显示速度问题,该文提出了一种新的地图浏览方法,利用内存映射画图的思想设计了一个小型的图形支撑环境,这个支撑环境能够利用内存缓冲区快速的处理数据并实时输出数据,结合API一级的输出函数,能够实现地图的快速显示。这种方法克服了传统地图浏览中的显示速度慢的问题,在不借助图形支撑软件的情况下,达到了很快的显示速度,实现了快速浏览地图的目标。其中,内存映射画图思想的应用是该文的创新点。   关键词:映射;内存;内存映射;地图;地图学   中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)24-7060-02      随着现代地图学的发展,电子地图正日益成为一种技术成熟和应用有效的地图产品形式,走入人们的生活,并得到广泛的应用。但目前的地图浏览软件或多或少都存在一定的问题,特别是速度方面的问题,有的在显示速度上还不是很令人满意,有的软件则采用了图形支撑软件来帮助其实现图像的快速显示,速度是达到了用户的要求,但整个软件显得庞大和臃肿。因此,对快速浏览地图的方法研究其意义是显而易见的,本论文的目标也正在于此。   1 概述   论文中详细给出了电子地图中显示速度问题的解决方案,包括小型图形支撑环境的具体设计,内存映射画图思想的基本原理和具体应用,内存中图像数据的存取方案,以及移动、放大缩小等操作的实现。实践证明,这种新的地图浏览方法在速度上达到了不亚于opengl的效果,是一种完全可行的新的地图快速浏览方法。   2 小型图形支撑环境的基本思想   这个小型图形支撑环境负责处理所有的数据和操作,在这个图形支撑环境中,内存映射画图思想是关键。内存映射画图是将各种图元的绘制工作都在内存缓冲区中实现,然后进行输出,其中,内存缓冲区是其中最重要的部分,负责处理整个支撑环境所用到的数据,所有的数据都是围绕它进行的。当系统运行时,首先开辟一个内存缓冲区,在内存缓冲区中进行各种数据的处理,当图元写入时,根据图元的形状,运用扫描转换算法,将图元写入到内存缓冲区中的某一区域,例如一条直线,就可以利用DDA算法或者是中点Bresenham算法将直线写入内存缓冲区中。传统的地图浏览系统的输出方案为:将内存中的图像数据逐行扫描,一个点一个点的输出,在这过程中需要不断的调用输出函数进行输出,是一个系统资源消耗极大的过程,这是其速度较慢的主要原因。因此,本文根据内存缓冲区的应用设计了一种输出方法,当需要对图像进行输出时,首先将该图像在内存缓冲区中进行绘制,当绘制操作完成后,再调用API一级的输出函数,将内存缓冲区中的数据一次性全部输出,使得系统达到一个很高的输出速度,这是采用内存缓冲区来进行数据处理的原因。该输出方法是本文的核心,是能否实现图像快速显示的关键。内存缓冲区中的数据存取如图图1所示。   在具体设计中,为了实现小型图形支撑环境,将这个图形支撑环境所提供的功能封装在一个类中,系统通过这个类来管理各种图像数据,并通过成员函数之间的消息传递来处理各种操作,如几何变换、图元绘制等,这些都在该类申请的内存缓冲区中进行。当用户进行操作时,系统通过其动作对内存缓冲区中的数据进行更新,然后确定输出区域,调用输出函数进行输出。   以上是这个小型图形支撑环境的基本思想,有了这个框架后,就可以进行地图浏览的具体设计了。   3 地图浏览的具体设计   系统运行时,首先读取一个图像文件进内存,然后开辟一个内存缓冲区,将内存中的图像数据写入内存缓冲区,然后选取内存缓冲区中图像左上角大小和屏幕窗口相等的区域进行输出,供用户进行浏览和操作。当用户对窗口中的图像进行操作时,通过消息捕捉函数对其动作进行捕捉,然后系统立刻对内存缓冲区中的图像数据进行更新,并根据用户的操作确定输出区域,然后调用API一级的函数对该区域进行映射输出,该方法能够快速的根据用户的操作在窗口中更新图像,达到不亚于OpenGL等图像支撑软件的速度效果。地图浏览设计原理图如图2所示。   在移动操作中,当用户对图像进行拖动操作时,系统根据消息捕捉函数计算图像的位移量,然后根据图像位移量确定内存缓冲区中的某一输出区域进行映射输出。在此过程中,鼠标一发生动作,系统就能在屏幕窗口中更新图像,达到了移动过程中图像的实时显示的要求。移动操作原理如图3所示。   在放大缩小操作中,系统也是根据消息捕捉函数对用户的操作进行捕捉,并判断是放大操作还是缩小操作,然后调用函数对内存缓冲区中的图像数据进行几何变换,并确定一个新的输出区域,最后调用API一级的输出函数进行输出。放大缩小操作原理如图4所示。   4 总结   该文提出了一种新的地图浏览方法,设计了一个小型图形支撑环境,利用内存映射画图思想,在不借助类似Op

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档