新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式GIS地图快速显示方法的应用

嵌入式GIS地图快速显示方法的应用

作者:时间:2012-10-22来源:网络收藏

摘 要: 为提高 环境下矢量速度, 设计了一种适用于环境基于LOD 的数据组织模型。 针对设备硬件条件限制, 从减少非区域的冗余数据的读取和提高外存检索矢量数据的效率两方面入手, 对矢量地图数据进行了分层、分块和建立索引等处理。 通过实验表明, 该能很好地提高矢量地图的速度, 可以满足嵌入式环境下地图显示的要求。

本文引用地址:http://www.eepw.com.cn/article/148330.htm

  1 引言

  地理信息系统(Geographic InformaTION System, 简称)产品被广泛于交通、测绘、环境、国防、航空航天等与国民经济乃至国家命脉相关的重要领域,带来了显著的经济和社会效益。近年来随着嵌入式技术的迅猛发展, 技术也逐步于以手机、掌上电脑为代表的移动终端, 使得嵌入式GIS 成为当今GIS 研究领域的一个重要趋势。 当前地图数据量巨大,要求地图刷新频率高、实时性强, 普通桌面系统的地图显示很难适用于存储器容量小、处理器性能低的嵌入式系统, 提高地图的显示效率成为嵌入式GIS产品研发的首要问题。 矢量地图拥有数据结构紧凑,冗余度低; 图形显示质量好, 精度高, 不失真等优点,目前已被广泛与嵌入式移动终端。 本文针对矢量电子地图研究了地图显示数学模型, 设计了基于LOD的逐层分块的地图数据组织结构, 并以此为基础建立网格索引, 通过实验证明该可有效提高地图显示速度。

  2 矢量地图显示数学模型

  地图的数据组织结构是影响地图显示速度的核心因素。 因此, 要对矢量地图显示数学模型分析研究,合理组织地图数据, 才能有效提高地图显示速度。

  由于电子地图的数据量较大, 嵌入式设备的地图数据一般会存放在外存储器中, 系统显示地图时需要先将地图数据读入内存, 再由地图绘制程序解析内存中的数据, 将地图显示在屏幕上。 假设某矢量地图数据占用物理存储空间为D, 数据读入内存速度为V1,显示速度为V2, 数据读取准备时间为f (n) , 用户可等待时间为T, 嵌入式设备内存容量为R, 则有以下公式成立:

  嵌入式设备内存容量一定, 若V1, V2, T 为常数,则必须减少D 和f (n)才能满足数据显示和处理的要求,提高地图的显示速度。

  通过对地图显示数学模型的分析可以发现, 要使地图的显示速度达到最快, 需要解决两个问题: 一是尽量减少地图非屏幕显示区域的数据量, 即根据显示范围限制读入的数据量; 二是要能以最快的速度从庞大的地图数据中找到当前显示范围所涉及的相关数据。

  针对问题一, 本文采用逐层分块策略组织地图数据, 减少非屏幕区域的数据读入; 对于问题二, 则对图块建立索引, 以降低外存调度当前显示数据的时间。

  3 矢量地图显示策略

  3.1 数据组织模型设计

  作者引入多细节层次LOD(Levels of Detail)技术思想,该技术最初是一种运用于控制三维场景复杂程度的技术, 其基本思想是: 在建立地表模型时, 应充分考虑人的视觉特点, 对处于视觉不同区域的模型采用不同的分辨率表示, 这样整个地表模型就表现为以块为单位的具有多分辨率的细节层次模型, 当从近处观察物体时, 采用精细模型, 当从远处观察物体时采用较为粗糙的模型[5]. 这一思想不仅限用于三维场景, 对于矢量地图的显示同样适用。

  系统对每个地图分别制作多个比例尺的地图数据,同时参考地图地理要素的规范, 根据要素的重要程度将不同比例尺地图中的图层划分为不同的显示层次,这样电子地图在缩放显示过程中, 可根据当前显示比例尺, 确定需要显示的地理要素。 同时考虑到嵌入式设备显示屏幕较小, 显示覆盖范围相对有限, 需根据显示屏幕尺寸对矢量地图数据进行分块处理, 以减少地图显示时读入内存的冗余数据。 通过上述对矢量地图的分层分块组织, 便形成了基于LOD 的逐层分块地图数据组织模型, 如图1所示。

  地图显示时, 在不同显示层次上需要读入相应的数据集合, 并实现根据设备显示范围读入相应图块数据, 从而大大减少地图数据读取和显示数据量, 提高了地图显示的效率。

图1 基于LOD 的逐层分块地图数据组织模型

图1 基于LOD 的逐层分块地图数据组织模型

  3.2 矢量地图数据分层处理

  在地图的显示过程中, 地图缩小时屏幕覆盖地图的范围增大, 只需显示主要地理要素对象, 相对次要的地理要素可隐藏而不显示; 地图放大显示时屏幕覆盖范围减小, 在当前已显示的地理要素基础上, 相对次要的地理要素也需显示出来。 基于这一特性, 可将地图数据所描述的地理要素依据其重要性特征分为多个数据层次, 即对所需显示的地图按照图层的重要程度设置一个显示参数, 该参数代表地图放大到什么程度时, 才显示该图层。 划分的地图数据层次依次记为L1, L2, L3, …, 其中L1 记录地图中最主要的地理要素,L2记录次重要的地理要素, L3记录一般性地理要素, 依此类推。

  实际操作时, 对地图数据分层处理显示参数的确定非常重要, 其选择的优劣直接影响地图显示效率。

  本文依据地理要素的属性, 按照以下原则确定显示参数将:

  ① 对于基础地理要素, 如道路、桥梁、河流、行政区边界等, 在国家标准《基础地理信息要素分类与代码》中采用要素编码区分了其重要性特征, 可以参考其要素编码设定显示参数;② 对于非基础地理要素, 如学校、酒店、商业街区、街区居民地等, 其重要性特征没有统一的标准, 则根据这类地理要素自身包含的等级属性, 如酒店星级、街区面积等来确定显示参数。

  以某城市公路网为例, 采用道路要素编码为显示参数进行分层处理, 可分为4 个层次: L1 记录城市一级、二级道路: 高速公路及环线; L2 记录城市三级道路: 市内主干道, L3 记录四级道路: 市内次干道, L4 记录城市五级道路: 市区分支街道。 地图显示时, 不同层次细节显示需要在上一层次显示的基础上读入相应Li 的数据集合来支持, 如图2 给出某城市公路网L1~L4 的显示效果。

图2 某城市公路网不同层次显示效果图

图2 某城市公路网不同层次显示效果图

3.3 矢量地图数据分块方法

  要提高地图的显示速度, 应尽量减少地图非屏幕显示区域的数据量, 因此需对矢量地图进行分割形成地理范围更小的图块, 并将图块作为嵌入式GIS 系统地图数据处理的基本单元。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭