一种二维地图库加速的方法

文档序号:9750987阅读:231来源:国知局
一种二维地图库加速的方法
【技术领域】
[0001]本发明属于计算机应用领域,尤其涉及一种二维地图库加速的方法。
【背景技术】
[0002]由于嵌入式系统内存小,存储空间受限制,而通常地图数据比较庞大,地图的绘制速度较慢,不能满足需要,因此在绘制时需要对其进行优化。通常在绘制地图时,由于某些点之间距离太小,会造成某一区域内数据冗余,点过于密集,一方面使绘制的图形杂乱不清晰,另一方面也会降低绘图效率。
[0003]同时面对庞大的地图数据,又受到嵌入式平台处理器速度较慢,内存和存储器资源量小的限制,嵌入式系统在处理大容量矢量地图时,如果不进行优化,就不能满足现实要求。而且,从文件中直接读取地图数据,读取速度和绘制速度也非常慢。

【发明内容】

[0004]本发明为解决【背景技术】中存在的上述技术问题,而提供一种二维地图库加速的方法,用来加快地图绘制的速度。
[0005]本发明的技术解决方案是:本发明为一种二维地图库加速的方法,其特殊之处在于:该方法包括以下步骤:
[0006]I)读取地图数据;
[0007]2)建立要素分级的多层网格的索引数据模型;
[0008]3)根据屏幕内显示地图数据的范围选择需要的网格;
[0009]4)根据屏幕显示范围对所选取网格内的地图数据进行裁剪;
[0010]5)判断裁剪后地图数据两点间的距离,舍弃小于定值的点;
[0011]6)绘制显示地图。
[0012]上述步骤I)是通过调用二维地图库中相关接口及函数,读取地图数据;
[0013]上述步骤2)的具体步骤如下:
[0014]2.1)将一幅图的地理范围划分为m行η列,得到m*n个小矩形网格区域;
[0015]2.2)每个网格区域为一个索引项,并分配一个动态存储区;
[0016]2.3)记录落入该网格的地理要素概要信息。
[0017]上述步骤4)的具体步骤如下:
[0018]4.1)然后将网格中的每个图块信息读入内存,
[0019]4.2)判断图块信息中所含的每个地理要素外接矩形是否与屏幕区域相交,如果相交则将相交部分的地理元素进行提取,进入步骤5);若不相交,则舍弃该图块信息;
[0020]上述步骤5)的具体步骤如下:
[0021 ] 5.1)根据地图的图层,预设参考值d;
[0022]5.2)计算相交部分的地理元素每一相邻两点之间的距离dx,
[0023]5.3)根据参考值d和距离dx进行判定,舍弃dx小于d时的后一点,直到地理元素中相邻两点之间距离均大于等于dx。
[0024]本发明提供的一种二维地图库加速的方法,对数据进行过滤处理,通过判定相邻点间距离,过滤掉多余的点,为提高地图绘制速度提供了一种良好的思路。同时本发明通过网格索引将图块作为数据调度和显示的基本单元,能直接过滤掉屏幕外的图块及地理要素,极大地减少了地理要素的读取量,并通过图块中所存储的该要素在地图文件的地址,直接从地图文件中查找到要素的具体的位置和属性信息进行显示处理,从而减少了要素的查找时间,进而提高了地图的显示速度。
【具体实施方式】
[0025]本发明的具体实施例的步骤如下:
[0026]I)通过调用二维地图库中相关接口及函数,读取地图数据;
[0027]2)建立要素分级的多层网格的索引数据模型;其应用网格索引的思想,尽量减少地理要素的读取,尽量只读取当前显示范围内、当前显示比例下所涉及到得相关地理要素。网格索引的思想是将一幅图的地理范围划分为m行η列,得到m*n个小矩形网格区域,每个网格区域为一个索引项,并分配一个动态存储区,记录落入该网格的地理要素信息:包括标识、在外存文件的存储地址以及外接矩形等。常将一幅图分为规则的m*n个图块。
[0028]3)根据屏幕内显示地图数据的范围选择需要的网格;
[0029]4)地图显示时,首先根据当前屏幕要显示的地理范围,计算出覆盖屏幕区域的图块;然后将每个图块信息读入内存,判断其所含的每个地理要素外接矩形是否与屏幕区域相交,如果相交则将相交部分的地理元素进行提取,进入步骤5);若不相交,则舍弃该图块信息;
[0030]具体实施例中,判断相交的方式是判断所绘制图形是否在裁剪区域内,如果在,就显示在屏幕上,如果不在,就舍弃。以线段为例,线段POPl两端点的坐标分别为Ρ0(Χ0,Υ0)和Pl (XI,Yl):假设线段POPl完全在裁剪框内,则保留POPl;假设线段POPl明显在裁剪框外,则完全舍弃;对于其他情况,则在直线段与裁剪框的交点处把线段分为两段,其中一部分完全在窗口外,可以弃之,然后对另一端进行重复上述步骤;
[0031]5)根据地图的图层,预设参考值d;计算相交部分的地理元素每一相邻两点之间的距离Px;当dx> = d时,保留两点;以后一点为前点,以下一点为后点,继续计算前点与后点的距离,重新进行判断;当dx〈d,保留前点,舍弃后一个点;继续以下一点为后点,计算前点与后点的距离,重新进行判断,直到地理元素中所有的点之间距离均大于d,
[0032]具体实施例中,假设相邻点的坐标依次分别为?1,?2,?3,?4,……Pn(Pn为地理元素中最后一个点).其中计算相邻两点P1,P2的距离为dl,当dl> = d时,保留P1、P2;以后P2为前点,以下一点P3为后点,继续计算P2与P3的距离为d2,重新与d进行判断;若d2〈d则保留P2,舍弃P3,继续计算P2与P4的距离为d3,重新进行判断,直到地理元素中所有的点之间距离均大于d.
[0033]6)根据保留的地理元素中的点,裁剪优化完后绘制地图,进行显示。
【主权项】
1.一种二维地图库加速的方法,其特征在于:该方法包括以下步骤: 1)读取地图数据; 2)建立要素分级的多层网格的索引数据模型; 3)根据屏幕内显示地图数据的范围选择需要的网格; 4)根据屏幕显示范围对所选取网格内的地图数据进行裁剪; 5)判断裁剪后地图数据两点间的距离,舍弃小于定值的点; 6)绘制显示地图。2.根据权利要求1所述的二维地图库加速的方法,其特征在于:所述步骤I)是通过调用二维地图库中相关接口及函数,读取地图数据。3.根据权利要求2所述的二维地图库加速的方法,其特征在于:所述步骤2)的具体步骤如下: 2.1)将一幅图的地理范围划分为m行η列,得到m*n个小矩形网格区域; 2.2)每个网格区域为一个索引项,并分配一个动态存储区; 2.3)记录落入该网格的地理要素概要信息。4.根据权利要求1所述的二维地图库加速的方法,其特征在于:所述步骤4)的具体步骤如下: 4.1)然后将网格中的每个图块信息读入内存, 4.2)判断图块信息中所含的每个地理要素外接矩形是否与屏幕区域相交,如果相交则将相交部分的地理元素进行提取,进入步骤5);若不相交,则舍弃该图块信息。5.根据权利要求4所述的二维地图库加速的方法,其特征在于:所述步骤5)的具体步骤如下: 5.1)根据地图的图层,预设参考值d; 5.2)计算相交部分的地理元素每一相邻两点之间的距离dx, 5.3)根据参考值d和距离dx进行判定,舍弃dx小于d时的后一点,直到地理元素中相邻两点之间距离均大于等于dx。
【专利摘要】本发明涉及一种二维地图库加速的方法。该方法包括以下步骤:1)读取地图数据;2)建立要素分级的多层网格的索引数据模型;3)根据屏幕内显示地图数据的范围选择需要的网格;4)根据屏幕显示范围对所选取网格内的地图数据进行裁剪;5)判断裁剪后地图数据两点间的距离,舍弃小于定值的点;6)绘制显示地图。本发明可提高地图的显示速度。
【IPC分类】G06F17/30
【公开号】CN105512312
【申请号】CN201510930175
【发明人】杨峰, 田泽, 张少锋, 赵彬, 王绮卉, 姜丽云
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年4月20日
【申请日】2015年12月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1