论文部分内容阅读
近年来,嵌入式GIS系统上的地图实时显示一直是GIS领域研究的热点。然而,由于庞大的地图数据量与有限硬件资源的矛盾,使得地图实时显示同时成为该领域的难点问题。为此,国内外学者对数据模型、多线程技术、缓存技术等展开深入研究,取得了重大进展。然而在军事应用中,由于处理器选择受限,计算能力有限,面对大屏幕、高精细、多类型、多图层、多要素的地图显示需求,现有技术尚不能很好满足其军事应用需求。本文针对某导航终端项目应用中,连续执行地图操作引发消息阻塞并导致的显示延迟问题,对地图显示的加速方法进行了深入研究,有效减小了显示延迟,满足了导航终端的战术应用需求。所做的工作主要有以下几点:(1)提出序列化消息驱动机制的地图加速显示调度模型。基于消息驱动机制和分块数据存储模型,提出了序列化消息驱动机制的地图显示方法,即将一个处理整屏幕区域内地图数据、相对耗时的、粗粒度的显示过程分解为一系列只处理单个数据块、相对省时的、细粒度的子过程,将分解的子过程转换为一系列消息发送到显示任务构建的FIFO消息队列中,并研究了相适应的数据调度与缓存方法,对消息队列进行动态维护,增强了数据调度的可控性和灵活性,减少了粗粒度显示过程的延迟,有效提高了显示速度。(2)给出基于消息优先级和基于贪婪策略的数据调度方法。首先,针对连续地图缩放产生的显示延迟,给出了基于消息优先级的数据调度方法,该方法根据缩放操作顺序动态改变相应消息的优先级,根据显示需要删除不需处理的子过程消息,放弃不需执行的数据处理,减少处理的数据量,从而有效减少显示延迟,测试结果表明,与以任务为单位的显示调度方法相比,该方法可有效减少地图显示时间。其次,针对漫游延迟给出了基于贪婪策略的数据调度方法,该方法通过对漫游方向预测,预先将后续操作中需处理的地图数据分摊到当前各次操作间的空闲间隙来处理,最大限度保证前后台缓存的平滑切换,测试结果表明,相对双缓存法,该方法能有效改善地图漫游的平滑度。(3)给出基于哈希映射的地图数据缓存模型。首先,综合考虑数据预取、缓存替换等问题,利用哈希表能有效降低数据存储和查找时间的优点,给出一种基于哈希映射的地图数据缓存模型。其次,针对以图幅为单位的缓存加载策略易造成内存浪费、网格索引内存占用量大,以及缓存碎片降低内存利用率的问题,给出基于哈希映射的索引构建方法、按需缓存策略,以及缓存管理方法。上述方法将唯一表征地图数据块的四个参数映射为一个参数,减少单个索引的内存占用;根据内存大小和地图操作方式,以地图数据块为单位按需缓存,扩大有效数据的缓存范围;在系统空闲时通过内存搬移进行缓存碎片整理,提高内存利用率。测试结果表明,上述方法在不降低查找速度的前提下,使有限的内存空间可以缓存更多的地图数据,减少了访问低速设备的次数,进一步提高了地图显示速度。