矢量地图绘制方法和装置.pdf

上传人:a1 文档编号:624671 上传时间:2018-02-26 格式:PDF 页数:15 大小:1.32MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410247332.X

申请日:

2014.06.05

公开号:

CN104063158A

公开日:

2014.09.24

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 3/0487申请公布日:20140924|||实质审查的生效IPC(主分类):G06F 3/0487申请日:20140605|||公开

IPC分类号:

G06F3/0487(2013.01)I; G06F3/0486(2013.01)I

主分类号:

G06F3/0487

申请人:

北京东进航空科技股份有限公司

发明人:

刘红锁; 张家骥; 张毅; 张云英

地址:

100089 北京市海淀区北洼西里33号院7号楼三层

优先权:

专利代理机构:

北京市京大律师事务所 11321

代理人:

张璐;方晓明

PDF下载: PDF下载
内容摘要

本发明公开了一种矢量地图绘制方法和装置,所述方法包括:在显示屏幕上显示矢量地图后,若接收到鼠标拖拽指令则周期性地刷新矢量地图;在一个周期内刷新矢量地图的过程为:根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图进行显示;在接收到鼠标拖拽结束指令后,根据当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围,并绘制重新确定的预绘区域的矢量地图后更新第一缓存中的矢量地图。本发明的技术方案中,当鼠标拖曳地图时,对预绘区域的矢量地图进行提取,即可连续、不闪烁地显示矢量地图。

权利要求书

1.  一种矢量地图绘制方法,其特征在于,包括:
在显示屏幕上显示矢量地图后,若接收到所述矢量地图中的鼠标拖拽指令,则周期性地在显示屏幕上刷新矢量地图;其中,在一个周期内刷新矢量地图的过程为:根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图在所述显示屏幕进行显示;
在接收到鼠标拖拽结束指令后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新。

2.
  如权利要求1所述的方法,其特征在于,所述显示屏幕上当前显示的区域具体为矩形区域。

3.
  如权利要求2所述的方法,其特征在于,所述根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,具体包括:
根据所述显示屏幕上当前显示的区域的四个顶点的经纬度(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),重新确定出所述预绘区域的四个顶点的经纬度(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1);
其中,x1、x2分别表示所述当前显示的区域的最小经度、最大经度,y1、y2分别表示所述当前显示的区域的最小纬度、最大纬度。

4.
  如权利要求1-3任一所述的方法,其特征在于,在所述显示屏幕上显示矢量地图之前,还包括:
根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。

5.
  如权利要求1-3任一所述的方法,其特征在于,根据当前鼠标坐标确定出待显示区域的经纬度范围,具体包括:
确定出上个周期鼠标坐标与当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;
将确定出的经度差、纬度差分别作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;
根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。

6.
  一种矢量地图绘制装置,其特征在于,包括:
指令解析模块,用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出所述鼠标拖拽指令所涉及的经纬度信息后输出;
待显示区域确定模块,用于根据所述指令解析模块输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知;
缓存更新模块,用于接收到所述缓存更新通知后,根据所述待显示区域确定模块确定的所述待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更新通知;
预绘区域更新模块,用于接收到所述区域更新通知后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新;
矢量地图显示模块,用于根据第二缓存中的矢量地图在所述显示屏幕进行显示。

7.
  如权利要求6所述的装置,其特征在于,所述显示屏幕上当前显示的区域具体为矩形区域。

8.
  如权利要求7所述的装置,其特征在于,
所述预绘区域更新模块具体用于根据所述显示屏幕上当前显示的区域的四个顶点的经纬度(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),重新确定出所述预绘区域的四个顶点的经纬度(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1);其中,x1、x2分别表示所述当前显示的区 域的最小经度、最大经度,y1、y2分别表示所述当前显示的区域的最小纬度、最大纬度。

9.
  如权利要求6-8任一所述的装置,其特征在于,还包括:
预绘区域更新模块还用于在所述装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。

说明书

矢量地图绘制方法和装置
技术领域
本发明涉及软件技术,尤其涉及一种矢量地图绘制方法和装置。
背景技术
矢量地图已经广泛应用于GIS(Geographic Information System,地理信息系统)、定位系统、导航系统等系统中。
当用户利用鼠标拖拽显示在屏幕上的矢量地图时,根据用户鼠标的拖拽轨迹,绘制矢量地图的一种方法包括:根据鼠标在屏幕中拖拽(即按住左键到松开左键)的位移,以及屏幕与矢量地图之间的比例尺,确定出矢量地图的经纬度变化量;根据确定出的经纬度变化量和拖拽前的矢量地图的经纬度范围,确定出拖拽后的矢量地图的经纬度范围;根据确定出的经纬度范围内的地图数据,绘制出拖拽后的矢量地图并进行显示。
例如屏幕上显示如图1所示的矢量地图,用户按住鼠标左键向屏幕右下方(如图1中的箭头线所示)拖拽该矢量地图,在用户松开鼠标左键之前,屏幕上方和左方的区域暂不显示矢量地图;用户松开鼠标后,通常需要等待一段时间(例如几毫秒)才显示拖拽后的矢量地图;容易导致用户产生屏幕停顿、闪烁或者不流畅的感觉,用户的体验不佳。
根据用户鼠标的拖拽轨迹,绘制矢量地图的另一种方法为:当鼠标处于拖拽过程中(即按住左键不释放),周期性地绘制矢量地图。具体地,本周期开始时,根据鼠标在屏幕中的位置,以及屏幕与矢量地图之间的比例尺,确定出本周期的矢量地图的经纬度变化量;根据确定出的本周期的经纬度变化量和上个周期的矢量地图的经纬度范围,确定出本周期的矢量地图的经纬度范围;根据本周期的矢量地图的经纬度范围内的地图数据,绘制出本周期的矢量地图并进行显示。显然,本方法需要频繁刷新矢量地图中的各元素,很容易导致矢量地图产生闪烁。此外,本方法运算量较大,当系统资源紧张时,无法及时绘制出每个周期的矢量地图,也很容易导致用户产生屏幕停顿、闪烁或者不流畅的感觉,用户的体验不佳。
因此,有必要提供一种在鼠标拖拽过程中,可连续、无闪烁地显示矢量地图的矢量地图绘制方法,以提高用户的体验。
发明内容
本发明实施例提供了一种矢量地图绘制方法和装置,以实现在屏幕上拖拽矢量地图的过程中,连续、无闪烁的显示矢量地图。
根据本发明的一个方面,提供了一种矢量地图绘制方法,包括:
在显示屏幕上显示矢量地图后,若接收到所述矢量地图中的鼠标拖拽指令,则周期性地在显示屏幕上刷新矢量地图;其中,在一个周期内刷新矢量地图的过程为:根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图在所述显示屏幕进行显示;
在接收到鼠标拖拽结束指令后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新。
较佳地,所述显示屏幕上当前显示的区域具体为矩形区域。
较佳地,所述根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,具体包括:
根据所述显示屏幕上当前显示的区域的四个顶点的经纬度(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),重新确定出所述预绘区域的四个顶点的经纬度(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1);
其中,x1、x2分别表示所述当前显示的区域的最小经度、最大经度,y1、y2分别表示所述当前显示的区域的最小纬度、最大纬度。
进一步,在所述显示屏幕上显示矢量地图之前,还包括:
根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。
较佳地,根据当前鼠标坐标确定出待显示区域的经纬度范围,具体包括:
确定出上个周期鼠标坐标与当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;
将确定出的经度差、纬度差分别作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;
根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。
根据本发明的另一个方面,还提供了一种矢量地图绘制装置,包括:
指令解析模块,用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出所述鼠标拖拽指令所涉及的经纬度信息后输出;
待显示区域确定模块,用于根据所述指令解析模块输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知;
缓存更新模块,用于接收到所述缓存更新通知后,根据所述待显示区域确定模块确定的所述待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更新通知;
预绘区域更新模块,用于接收到所述区域更新通知后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新;
矢量地图显示模块,用于根据第二缓存中的矢量地图在所述显示屏幕进行显示。
较佳地,所述显示屏幕上当前显示的区域具体为矩形区域。
较佳地,所述预绘区域更新模块具体用于根据所述显示屏幕上当前显示的区域的四个顶点的经纬度(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),重新确定出所述预绘区域的四个顶点的经纬度(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1);其中,x1、x2分别表示所述当前显示的区域的最小经度、最大经度,y1、y2分别表示所述当前显示的区域的最小纬度、最大纬度。
进一步,所述矢量地图绘制装置,还包括:
预绘区域更新模块还用于在所述装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。
本发明实施例的技术方案中,鼠标在显示屏幕上一次拖曳过程中的待显示区域,均落入本发明的预绘区域的范围内;且矢量地图绘制装置预先绘制出预绘区域的矢量地图;使得鼠标拖曳过程中,矢量地图绘制装置可以周期性提取出待显示区域的矢量地图进行显示;并在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新;从而可以使得 显示屏幕中连续、不闪烁地显示矢量地图,可以提高用户的体验。
附图说明
图1为现有的矢量地图示意图;
图2a为本发明实施例的矢量地图绘制装置预先绘制出预绘区域的矢量地图存储在缓存中的方法的流程图;
图2b为本发明实施例的矩形的显示区域和预绘区域的示意图;
图3a为本发明实施例的矢量地图绘制装置可以周期性地显示刷新矢量地图的方法的流程图;
图3b、图3c、图3d分别为在本发明实施例的上个周期的显示区域中,鼠标分别进行水平拖拽、垂直拖拽和沿矩形显示区域对角线拖拽的示意图;
图4为本发明实施例的矢量地图绘制装置更新第一缓存中绘制区域的矢量地图的方法的流程图;
图5为本发明实施例的矢量地图绘制装置的内部结构框架示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内。
本发明的发明人考虑到,可以在缓存中预先存储包括显示区域在内的整个预绘区域的矢量地图;例如,这个预绘区域的大小可以是显示区域大小的9倍。当用户拖拽当前显示的区域中的矢量地图时,就不必临时计算、绘制当前显示的区域之外的矢量地图,而直接从缓存的预绘区域的矢量地图中进行提取、显示。这样,在矢量地图的鼠标拖拽过程中,就不会出现因为计算量大而导致的矢量地图显示迟缓而导致的闪烁的问题。从而,在矢量地图的鼠标拖拽过程中,给用户的直观感觉是,地图被拖拽出来的部分可以连续、无闪烁地进行显示。
而且,在本次鼠标拖曳结束后,及时重新绘制包括当前显示的区域在内的整个预绘区域的矢量地图,并更新到缓存中,以在下一次鼠标拖拽过程中直接进行显示。
下面结合附图详细说明本发明的技术方案。
本发明实施例的矢量地图绘制装置(即矢量地图绘制软件)运行后,在显示屏幕上显示矢量地图之前,可以预先绘制出预绘区域的矢量地图存储在缓存中,具体流程如图2a所示,包括如下步骤:
S201:矢量地图绘制装置根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域。
具体地,矢量地图绘制装置在确定出显示屏幕中即将显示矢量地图的显示区域的经纬度信息后,根据显示区域确定预绘区域。其中,预绘区域可以包括显示区域,以及显示区域周边的扩展区域。
通常,在显示屏幕中显示矢量地图的显示区域为矩形区域;如图2b所示,若矩形的显示区域的四个顶点的经纬度分别为(u1,v1)、(u1,v2)、(u2,v1)、(u2,v2),则可以根据显示区域的经纬度信息,确定出矩形的预绘区域的四个顶点的经纬度分别为(2u1-u2,2v1-v2)、(2u1-u2,2v2-v1)、(2u2-u1,2v1-v2)、(2u2-u1,2v2-v1)。其中,u1、u2分别表示矩形的显示区域的最小经度、最大经度,v1、v2分别表示矩形的显示区域的最小纬度、最大纬度。当然,本领域技术人员也可以采用其它方法设置显示区域与预绘区域之间的关系,比如,也可设置显示区域为预绘区域中央位置,显示区域与预绘区域的面积比值为1:n,其中,n为大于等于9的自然数。
S202:矢量地图绘制装置绘制出预绘区域的矢量地图,并将绘制出的预绘区域的矢量地图存储于第一缓存中。
具体地,对于已确定经纬度范围的预绘区域,如何绘制出预绘区域的矢量地图可采用现有技术的方法,为本领域技术人员所熟知,此处不再赘述。
S203:矢量地图绘制装置将预绘区域中的显示区域的矢量地图在显示屏幕上进行显示。
具体地,矢量地图绘制装置将预绘区域中的显示区域的矢量地图存储于第二缓存中,并根据第二缓存中的矢量地图进行显示。
在显示屏幕上显示矢量地图后,若用户在显示的矢量地图中按住鼠标左键,则矢量地图绘制装置确认接收到矢量地图中的鼠标拖拽指令;在鼠标左键松开之前,矢量地图绘制装置可以周期性地(比如每1/60s,即频率60Hz)、 不断显示刷新矢量地图;在一个周期内,刷新显示矢量地图的方法的流程如图3a所示,包括如下步骤:
S301:矢量地图绘制装置根据当前鼠标坐标确定出待显示区域的经纬度范围。
具体地,矢量地图绘制装置确定出当前鼠标坐标在矢量地图中的经纬度信息;并根据上个周期鼠标坐标在矢量地图中的经纬度信息,确定出上个周期鼠标坐标与当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;将确定出的经度差、纬度差分别作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;之后,根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。其中,本周期的待显示区域的比例尺寸、形状,分别与上个周期的显示区域的比例尺寸、形状相同。换句话说,本周期的待显示区域可以由上个周期的显示区域通过位移得到,该位移与鼠标坐标在本周期内的位移相对应。
以如图2b所示的预绘区域为例,为方便描述,将预绘区域的扩展区域中的八个矩形的子区域,分别标记为1-8号区域。图3b-3d分别表示鼠标在显示屏幕显示矢量地图的上个周期的显示区域中,分别进行水平拖拽、垂直拖拽和沿矩形的显示区域的对角线拖拽。如图3b所示,若鼠标从矢量地图上个周期的显示区域的右边缘向左边缘拖拽,则可以确定出本周期的待显示区域的经纬度范围落在上个周期的显示区域和5号区域的经纬度范围内。如图3c所示,若鼠标从矢量地图上个周期的显示区域的上边缘向下边缘拖拽,则可以确定出本周期的待显示区域的经纬度范围落在上个周期的显示区域和2号区域的经纬度范围内。如图3d所示,若鼠标从矢量地图上个周期的显示区域的右上角向左下角拖拽,则可以确定出本周期的待显示区域的经纬度范围落在上个周期的显示区域、2号区域、3号区域和5号区域的经纬度范围内。
S302:矢量地图绘制装置从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后在显示屏幕进行显示。
具体地,矢量地图绘制装置从存储于第一缓存中的预绘区域的矢量地图中,提取出步骤S301中确定出的本周期的待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中已储存的矢量地图,并根据第二缓存中的矢量地图在显示屏幕进行显示。
如图2b所示,鼠标拖拽(例如,从按下鼠标左键移动到松开鼠标左键的 过程)之前的矩形的显示区域位于矩形的预绘区域的中央;且对于预绘区域中的每个对角线,将该对角线划分成长度相等的三等份,位于该对角线中间的一个等份即为鼠标拖拽之前的显示区域的一个对角线。而鼠标拖拽之前的显示区域的对角线的长度,即为鼠标在该显示区域内可以拖拽的最大距离;显然,在一次鼠标拖拽过程中,待显示区域不会超出预绘区域的范围。
显然,从上个周期的鼠标坐标位移到当前鼠标坐标的过程中,矢量地图绘制装置无需即时计算、绘制矢量地图,直接从缓存中预绘区域的矢量地图中提取本周期的待显示区域的矢量地图进行显示,节省了计算、绘制矢量地图的时间,避免出现矢量地图显示迟缓而导致闪烁的问题。
之后,矢量地图绘制装置进行下一个周期的刷新显示矢量地图。
当用户松开鼠标左键时,矢量地图绘制装置确认接收到鼠标拖拽结束指令,并结束周期性地刷新显示矢量地图。之后,矢量地图绘制装置更新第一缓存中绘制区域的矢量地图的方法的流程如图4所示,包括如下步骤:
S401:矢量地图绘制装置根据显示屏幕上当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围。
具体地,矢量地图绘制装置确定出显示屏幕上当前显示的区域的经纬度范围;根据接收到鼠标拖曳指令之前(即周期性刷新显示矢量地图之前),显示屏幕上显示的矢量地图的显示区域的经纬度范围,确定出当前显示的区域与鼠标拖曳之前的显示区域之间的位移后,与鼠标拖曳之前的绘制区域的经纬度范围一起重新确定出预绘区域的当前的经纬度范围。
例如,显示屏幕中显示矢量地图中当前显示的区域为矩形区域,其四个顶点的经纬度可以分别为(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2);则可以重新确定出预绘区域的四个顶点的经纬度分别为(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1)。其中,x1、x2分别表示矢量地图中当前显示的区域的最小经度、最大经度,y1、y2分别表示矢量地图中当前显示的区域的最小纬度、最大纬度。
S402:矢量地图绘制装置绘制重新确定的预绘区域中的矢量地图后,对存储于第一缓存中的矢量地图进行更新。
具体地,矢量地图绘制装置根据重新确定出的预绘区域的经纬度范围,绘制重新确定出的预绘区域的矢量地图;对于已确定经纬度范围的预绘区域,如何绘制出预绘区域的矢量地图可采用现有技术的方法,为本领域技术人员所熟知,此处不再赘述。之后,将重新绘制的预绘区域的矢量地图,覆盖已 存储于第一缓存中的矢量地图。
较佳地,矢量地图绘制装置可以将预绘区域划分为多个子区域后,并行绘制各子区域的矢量地图。
显然,第二缓存中储存有显示屏幕上当前显示的区域的矢量地图,矢量地图绘制装置更新第一缓存中的绘制区域的矢量地图,对第二缓存中的数据无影响,因此不影响显示屏幕上当前显示的矢量地图;也就是说,在矢量地图绘制装置更新第一缓存中的绘制区域的矢量地图过程中,显示在显示屏幕上的矢量地图保持不变,不会产生闪烁。
在实际操作中,矢量地图绘制装置可以在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新。当接收到下一个鼠标拖拽指令时,矢量地图绘制装置将重复步骤S301-S302、以及步骤S401-S402的流程步骤,使得显示屏幕可以连续、不闪烁地显示的矢量地图。
基于上述绘制矢量地图的方法,本发明实施例的矢量地图绘制装置的内部结构框架示意图如图5所示,包括:指令解析模块501、待显示区域确定模块502、缓存更新模块503、预绘区域更新模块504和矢量地图显示模块505。
指令解析模块501用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出鼠标拖拽指令所涉及的经纬度信息后输出。
待显示区域确定模块502用于根据指令解析模块501输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知。
缓存更新模块503用于接收到待显示区域确定模块502发送的缓存更新通知后,根据待显示区域确定模块502确定的待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更新通知。
预绘区域更新模块504用于在矢量地图绘制装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将该显示区域的矢量地图存储于第二缓存中;并且,预绘区域更新模块504在接收到缓存更新模块503发送的区域更新通知后,根据显示屏幕上当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于第一缓存中的矢量地图进行更新。预绘区域更新模块504具体用于根据显示屏幕上当前显示的区域的四个顶点的经纬度(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2),重新确定出预绘区域的四 个顶点的经纬度(2x1-x2,2y1-y2)、(2x1-x2,2y2-y1)、(2x2-x1,2y1-y2)、(2x2-x1,2y2-y1);其中,x1、x2分别表示显示屏幕上当前显示的区域的矢量地图的最小经度、最大经度,y1、y2分别表示显示屏幕上当前显示的区域的矢量地图的最小纬度、最大纬度。
矢量地图显示模块505用于根据第二缓存中的矢量地图在显示屏幕进行显示。
由上述技术方案可知,鼠标在显示屏幕上一次拖曳过程中的待显示区域,均落入本发明的预绘区域的范围内;且矢量地图绘制装置预先绘制出预绘区域的矢量地图;使得鼠标拖曳过程中,矢量地图绘制装置可以周期性提取出待显示区域的矢量地图进行显示;并在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新;从而可以使得显示屏幕中连续、不闪烁地显示矢量地图,可以提高用户的体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

矢量地图绘制方法和装置.pdf_第1页
第1页 / 共15页
矢量地图绘制方法和装置.pdf_第2页
第2页 / 共15页
矢量地图绘制方法和装置.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《矢量地图绘制方法和装置.pdf》由会员分享,可在线阅读,更多相关《矢量地图绘制方法和装置.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104063158A43申请公布日20140924CN104063158A21申请号201410247332X22申请日20140605G06F3/0487201301G06F3/048620130171申请人北京东进航空科技股份有限公司地址100089北京市海淀区北洼西里33号院7号楼三层72发明人刘红锁张家骥张毅张云英74专利代理机构北京市京大律师事务所11321代理人张璐方晓明54发明名称矢量地图绘制方法和装置57摘要本发明公开了一种矢量地图绘制方法和装置,所述方法包括在显示屏幕上显示矢量地图后,若接收到鼠标拖拽指令则周期性地刷新矢量地图;在一个周期内刷新矢量地图的过程。

2、为根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图进行显示;在接收到鼠标拖拽结束指令后,根据当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围,并绘制重新确定的预绘区域的矢量地图后更新第一缓存中的矢量地图。本发明的技术方案中,当鼠标拖曳地图时,对预绘区域的矢量地图进行提取,即可连续、不闪烁地显示矢量地图。51INTCL权利要求书2页说明书7页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图5页10申请公布号CN104063158AC。

3、N104063158A1/2页21一种矢量地图绘制方法,其特征在于,包括在显示屏幕上显示矢量地图后,若接收到所述矢量地图中的鼠标拖拽指令,则周期性地在显示屏幕上刷新矢量地图;其中,在一个周期内刷新矢量地图的过程为根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图在所述显示屏幕进行显示;在接收到鼠标拖拽结束指令后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量。

4、地图进行更新。2如权利要求1所述的方法,其特征在于,所述显示屏幕上当前显示的区域具体为矩形区域。3如权利要求2所述的方法,其特征在于,所述根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,具体包括根据所述显示屏幕上当前显示的区域的四个顶点的经纬度X1,Y1、X1,Y2、X2,Y1、X2,Y2,重新确定出所述预绘区域的四个顶点的经纬度2X1X2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y2Y1;其中,X1、X2分别表示所述当前显示的区域的最小经度、最大经度,Y1、Y2分别表示所述当前显示的区域的最小纬度、最大纬度。4如权利要求13任。

5、一所述的方法,其特征在于,在所述显示屏幕上显示矢量地图之前,还包括根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。5如权利要求13任一所述的方法,其特征在于,根据当前鼠标坐标确定出待显示区域的经纬度范围,具体包括确定出上个周期鼠标坐标与当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;将确定出的经度差、纬度差分别作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,。

6、以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。6一种矢量地图绘制装置,其特征在于,包括指令解析模块,用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出所述鼠标拖拽指令所涉及的经纬度信息后输出;待显示区域确定模块,用于根据所述指令解析模块输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知;缓存更新模块,用于接收到所述缓存更新通知后,根据所述待显示区域确定模块确定的所述待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更权利要求书CN104063。

7、158A2/2页3新通知;预绘区域更新模块,用于接收到所述区域更新通知后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新;矢量地图显示模块,用于根据第二缓存中的矢量地图在所述显示屏幕进行显示。7如权利要求6所述的装置,其特征在于,所述显示屏幕上当前显示的区域具体为矩形区域。8如权利要求7所述的装置,其特征在于,所述预绘区域更新模块具体用于根据所述显示屏幕上当前显示的区域的四个顶点的经纬度X1,Y1、X1,Y2、X2,Y1、X2,Y2,重新确定出所述预绘区域的四个顶点的经纬度2X1X。

8、2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y2Y1;其中,X1、X2分别表示所述当前显示的区域的最小经度、最大经度,Y1、Y2分别表示所述当前显示的区域的最小纬度、最大纬度。9如权利要求68任一所述的装置,其特征在于,还包括预绘区域更新模块还用于在所述装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。权利要求书CN104063158A1/7页4矢量地图绘制方法和装置技术领域0001本发明涉及软件技术,尤其涉及一。

9、种矢量地图绘制方法和装置。背景技术0002矢量地图已经广泛应用于GISGEOGRAPHICINFORMATIONSYSTEM,地理信息系统、定位系统、导航系统等系统中。0003当用户利用鼠标拖拽显示在屏幕上的矢量地图时,根据用户鼠标的拖拽轨迹,绘制矢量地图的一种方法包括根据鼠标在屏幕中拖拽即按住左键到松开左键的位移,以及屏幕与矢量地图之间的比例尺,确定出矢量地图的经纬度变化量;根据确定出的经纬度变化量和拖拽前的矢量地图的经纬度范围,确定出拖拽后的矢量地图的经纬度范围;根据确定出的经纬度范围内的地图数据,绘制出拖拽后的矢量地图并进行显示。0004例如屏幕上显示如图1所示的矢量地图,用户按住鼠标左。

10、键向屏幕右下方如图1中的箭头线所示拖拽该矢量地图,在用户松开鼠标左键之前,屏幕上方和左方的区域暂不显示矢量地图;用户松开鼠标后,通常需要等待一段时间例如几毫秒才显示拖拽后的矢量地图;容易导致用户产生屏幕停顿、闪烁或者不流畅的感觉,用户的体验不佳。0005根据用户鼠标的拖拽轨迹,绘制矢量地图的另一种方法为当鼠标处于拖拽过程中即按住左键不释放,周期性地绘制矢量地图。具体地,本周期开始时,根据鼠标在屏幕中的位置,以及屏幕与矢量地图之间的比例尺,确定出本周期的矢量地图的经纬度变化量;根据确定出的本周期的经纬度变化量和上个周期的矢量地图的经纬度范围,确定出本周期的矢量地图的经纬度范围;根据本周期的矢量地。

11、图的经纬度范围内的地图数据,绘制出本周期的矢量地图并进行显示。显然,本方法需要频繁刷新矢量地图中的各元素,很容易导致矢量地图产生闪烁。此外,本方法运算量较大,当系统资源紧张时,无法及时绘制出每个周期的矢量地图,也很容易导致用户产生屏幕停顿、闪烁或者不流畅的感觉,用户的体验不佳。0006因此,有必要提供一种在鼠标拖拽过程中,可连续、无闪烁地显示矢量地图的矢量地图绘制方法,以提高用户的体验。发明内容0007本发明实施例提供了一种矢量地图绘制方法和装置,以实现在屏幕上拖拽矢量地图的过程中,连续、无闪烁的显示矢量地图。0008根据本发明的一个方面,提供了一种矢量地图绘制方法,包括0009在显示屏幕上显。

12、示矢量地图后,若接收到所述矢量地图中的鼠标拖拽指令,则周期性地在显示屏幕上刷新矢量地图;其中,在一个周期内刷新矢量地图的过程为根据当前鼠标坐标确定出待显示区域的经纬度范围;并从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并根据第二缓存中的矢量地图在所述显示屏幕进行显示;说明书CN104063158A2/7页50010在接收到鼠标拖拽结束指令后,根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新。0011较佳地,所述显示。

13、屏幕上当前显示的区域具体为矩形区域。0012较佳地,所述根据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,具体包括0013根据所述显示屏幕上当前显示的区域的四个顶点的经纬度X1,Y1、X1,Y2、X2,Y1、X2,Y2,重新确定出所述预绘区域的四个顶点的经纬度2X1X2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y2Y1;0014其中,X1、X2分别表示所述当前显示的区域的最小经度、最大经度,Y1、Y2分别表示所述当前显示的区域的最小纬度、最大纬度。0015进一步,在所述显示屏幕上显示矢量地图之前,还包括0016根据显示屏幕中即将显。

14、示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。0017较佳地,根据当前鼠标坐标确定出待显示区域的经纬度范围,具体包括0018确定出上个周期鼠标坐标与当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;0019将确定出的经度差、纬度差分别作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;0020根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。0021根据本发。

15、明的另一个方面,还提供了一种矢量地图绘制装置,包括0022指令解析模块,用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出所述鼠标拖拽指令所涉及的经纬度信息后输出;0023待显示区域确定模块,用于根据所述指令解析模块输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知;0024缓存更新模块,用于接收到所述缓存更新通知后,根据所述待显示区域确定模块确定的所述待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更新通知;0025预绘区域更新模块,用于接收到所述区域更新通知后,根。

16、据所述显示屏幕上当前显示的区域的经纬度范围,重新确定所述预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于所述第一缓存中的矢量地图进行更新;0026矢量地图显示模块,用于根据第二缓存中的矢量地图在所述显示屏幕进行显示。0027较佳地,所述显示屏幕上当前显示的区域具体为矩形区域。0028较佳地,所述预绘区域更新模块具体用于根据所述显示屏幕上当前显示的区域的四个顶点的经纬度X1,Y1、X1,Y2、X2,Y1、X2,Y2,重新确定出所述预绘区域的四个顶点的经纬度2X1X2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y2Y1;其中,X1、说明书CN1。

17、04063158A3/7页6X2分别表示所述当前显示的区域的最小经度、最大经度,Y1、Y2分别表示所述当前显示的区域的最小纬度、最大纬度。0029进一步,所述矢量地图绘制装置,还包括0030预绘区域更新模块还用于在所述装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将绘制出的预绘区域的矢量地图存储于第一缓存中;将所述显示区域的矢量地图存储于第二缓存中。0031本发明实施例的技术方案中,鼠标在显示屏幕上一次拖曳过程中的待显示区域,均落入本发明的预绘区域的范围内;且矢量地图绘制装置预先绘制出预绘区域的矢量地图;使得鼠标拖曳过程中,矢量。

18、地图绘制装置可以周期性提取出待显示区域的矢量地图进行显示;并在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新;从而可以使得显示屏幕中连续、不闪烁地显示矢量地图,可以提高用户的体验。附图说明0032图1为现有的矢量地图示意图;0033图2A为本发明实施例的矢量地图绘制装置预先绘制出预绘区域的矢量地图存储在缓存中的方法的流程图;0034图2B为本发明实施例的矩形的显示区域和预绘区域的示意图;0035图3A为本发明实施例的矢量地图绘制装置可以周期性地显示刷新矢量地图的方法的流程图;0036图3B、图3C、图3D分别为在本发明实施例的上个周期的显示区域中,鼠标分别进行水平。

19、拖拽、垂直拖拽和沿矩形显示区域对角线拖拽的示意图;0037图4为本发明实施例的矢量地图绘制装置更新第一缓存中绘制区域的矢量地图的方法的流程图;0038图5为本发明实施例的矢量地图绘制装置的内部结构框架示意图。具体实施方式0039为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。0040本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中。

20、的软件。例如,模块可以是,但并不仅限于处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内。0041本发明的发明人考虑到,可以在缓存中预先存储包括显示区域在内的整个预绘区域的矢量地图;例如,这个预绘区域的大小可以是显示区域大小的9倍。当用户拖拽当前显示的区域中的矢量地图时,就不必临时计算、绘制当前显示的区域之外的矢量地图,而直接说明书CN104063158A4/7页7从缓存的预绘区域的矢量地图中进行提取、显示。这样,在矢量地图的鼠标拖拽过程中,就不会出现因为计算。

21、量大而导致的矢量地图显示迟缓而导致的闪烁的问题。从而,在矢量地图的鼠标拖拽过程中,给用户的直观感觉是,地图被拖拽出来的部分可以连续、无闪烁地进行显示。0042而且,在本次鼠标拖曳结束后,及时重新绘制包括当前显示的区域在内的整个预绘区域的矢量地图,并更新到缓存中,以在下一次鼠标拖拽过程中直接进行显示。0043下面结合附图详细说明本发明的技术方案。0044本发明实施例的矢量地图绘制装置即矢量地图绘制软件运行后,在显示屏幕上显示矢量地图之前,可以预先绘制出预绘区域的矢量地图存储在缓存中,具体流程如图2A所示,包括如下步骤0045S201矢量地图绘制装置根据显示屏幕中即将显示矢量地图的显示区域的经纬度。

22、信息,确定出预绘区域。0046具体地,矢量地图绘制装置在确定出显示屏幕中即将显示矢量地图的显示区域的经纬度信息后,根据显示区域确定预绘区域。其中,预绘区域可以包括显示区域,以及显示区域周边的扩展区域。0047通常,在显示屏幕中显示矢量地图的显示区域为矩形区域;如图2B所示,若矩形的显示区域的四个顶点的经纬度分别为U1,V1、U1,V2、U2,V1、U2,V2,则可以根据显示区域的经纬度信息,确定出矩形的预绘区域的四个顶点的经纬度分别为2U1U2,2V1V2、2U1U2,2V2V1、2U2U1,2V1V2、2U2U1,2V2V1。其中,U1、U2分别表示矩形的显示区域的最小经度、最大经度,V1、。

23、V2分别表示矩形的显示区域的最小纬度、最大纬度。当然,本领域技术人员也可以采用其它方法设置显示区域与预绘区域之间的关系,比如,也可设置显示区域为预绘区域中央位置,显示区域与预绘区域的面积比值为1N,其中,N为大于等于9的自然数。0048S202矢量地图绘制装置绘制出预绘区域的矢量地图,并将绘制出的预绘区域的矢量地图存储于第一缓存中。0049具体地,对于已确定经纬度范围的预绘区域,如何绘制出预绘区域的矢量地图可采用现有技术的方法,为本领域技术人员所熟知,此处不再赘述。0050S203矢量地图绘制装置将预绘区域中的显示区域的矢量地图在显示屏幕上进行显示。0051具体地,矢量地图绘制装置将预绘区域中。

24、的显示区域的矢量地图存储于第二缓存中,并根据第二缓存中的矢量地图进行显示。0052在显示屏幕上显示矢量地图后,若用户在显示的矢量地图中按住鼠标左键,则矢量地图绘制装置确认接收到矢量地图中的鼠标拖拽指令;在鼠标左键松开之前,矢量地图绘制装置可以周期性地比如每1/60S,即频率60HZ、不断显示刷新矢量地图;在一个周期内,刷新显示矢量地图的方法的流程如图3A所示,包括如下步骤0053S301矢量地图绘制装置根据当前鼠标坐标确定出待显示区域的经纬度范围。0054具体地,矢量地图绘制装置确定出当前鼠标坐标在矢量地图中的经纬度信息;并根据上个周期鼠标坐标在矢量地图中的经纬度信息,确定出上个周期鼠标坐标与。

25、当前鼠标坐标所对应的矢量地图中的地点之间的经度差和纬度差;将确定出的经度差、纬度差分别说明书CN104063158A5/7页8作为矢量地图在上个周期的显示区域与本周期的待显示区域之间的经度差、纬度差;之后,根据上个周期的显示区域与本周期的待显示区域之间的经度差和纬度差,以及上个周期的显示区域的经纬度范围,确定出本周期的待显示区域的经纬度范围。其中,本周期的待显示区域的比例尺寸、形状,分别与上个周期的显示区域的比例尺寸、形状相同。换句话说,本周期的待显示区域可以由上个周期的显示区域通过位移得到,该位移与鼠标坐标在本周期内的位移相对应。0055以如图2B所示的预绘区域为例,为方便描述,将预绘区域的。

26、扩展区域中的八个矩形的子区域,分别标记为18号区域。图3B3D分别表示鼠标在显示屏幕显示矢量地图的上个周期的显示区域中,分别进行水平拖拽、垂直拖拽和沿矩形的显示区域的对角线拖拽。如图3B所示,若鼠标从矢量地图上个周期的显示区域的右边缘向左边缘拖拽,则可以确定出本周期的待显示区域的经纬度范围落在上个周期的显示区域和5号区域的经纬度范围内。如图3C所示,若鼠标从矢量地图上个周期的显示区域的上边缘向下边缘拖拽,则可以确定出本周期的待显示区域的经纬度范围落在上个周期的显示区域和2号区域的经纬度范围内。如图3D所示,若鼠标从矢量地图上个周期的显示区域的右上角向左下角拖拽,则可以确定出本周期的待显示区域的。

27、经纬度范围落在上个周期的显示区域、2号区域、3号区域和5号区域的经纬度范围内。0056S302矢量地图绘制装置从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后在显示屏幕进行显示。0057具体地,矢量地图绘制装置从存储于第一缓存中的预绘区域的矢量地图中,提取出步骤S301中确定出的本周期的待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中已储存的矢量地图,并根据第二缓存中的矢量地图在显示屏幕进行显示。0058如图2B所示,鼠标拖拽例如,从按下鼠标左键移动到松开鼠标左键的过程之前的矩形的显示区域位于矩形的预绘区域的中央;且对于预绘区域中的每个对角线,将该对角线划分成长度相。

28、等的三等份,位于该对角线中间的一个等份即为鼠标拖拽之前的显示区域的一个对角线。而鼠标拖拽之前的显示区域的对角线的长度,即为鼠标在该显示区域内可以拖拽的最大距离;显然,在一次鼠标拖拽过程中,待显示区域不会超出预绘区域的范围。0059显然,从上个周期的鼠标坐标位移到当前鼠标坐标的过程中,矢量地图绘制装置无需即时计算、绘制矢量地图,直接从缓存中预绘区域的矢量地图中提取本周期的待显示区域的矢量地图进行显示,节省了计算、绘制矢量地图的时间,避免出现矢量地图显示迟缓而导致闪烁的问题。0060之后,矢量地图绘制装置进行下一个周期的刷新显示矢量地图。0061当用户松开鼠标左键时,矢量地图绘制装置确认接收到鼠标。

29、拖拽结束指令,并结束周期性地刷新显示矢量地图。之后,矢量地图绘制装置更新第一缓存中绘制区域的矢量地图的方法的流程如图4所示,包括如下步骤0062S401矢量地图绘制装置根据显示屏幕上当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围。0063具体地,矢量地图绘制装置确定出显示屏幕上当前显示的区域的经纬度范围;根据接收到鼠标拖曳指令之前即周期性刷新显示矢量地图之前,显示屏幕上显示的矢量说明书CN104063158A6/7页9地图的显示区域的经纬度范围,确定出当前显示的区域与鼠标拖曳之前的显示区域之间的位移后,与鼠标拖曳之前的绘制区域的经纬度范围一起重新确定出预绘区域的当前的经纬度范围。00。

30、64例如,显示屏幕中显示矢量地图中当前显示的区域为矩形区域,其四个顶点的经纬度可以分别为X1,Y1、X1,Y2、X2,Y1、X2,Y2;则可以重新确定出预绘区域的四个顶点的经纬度分别为2X1X2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y2Y1。其中,X1、X2分别表示矢量地图中当前显示的区域的最小经度、最大经度,Y1、Y2分别表示矢量地图中当前显示的区域的最小纬度、最大纬度。0065S402矢量地图绘制装置绘制重新确定的预绘区域中的矢量地图后,对存储于第一缓存中的矢量地图进行更新。0066具体地,矢量地图绘制装置根据重新确定出的预绘区域的经纬度范围,绘制重新。

31、确定出的预绘区域的矢量地图;对于已确定经纬度范围的预绘区域,如何绘制出预绘区域的矢量地图可采用现有技术的方法,为本领域技术人员所熟知,此处不再赘述。之后,将重新绘制的预绘区域的矢量地图,覆盖已存储于第一缓存中的矢量地图。0067较佳地,矢量地图绘制装置可以将预绘区域划分为多个子区域后,并行绘制各子区域的矢量地图。0068显然,第二缓存中储存有显示屏幕上当前显示的区域的矢量地图,矢量地图绘制装置更新第一缓存中的绘制区域的矢量地图,对第二缓存中的数据无影响,因此不影响显示屏幕上当前显示的矢量地图;也就是说,在矢量地图绘制装置更新第一缓存中的绘制区域的矢量地图过程中,显示在显示屏幕上的矢量地图保持不。

32、变,不会产生闪烁。0069在实际操作中,矢量地图绘制装置可以在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新。当接收到下一个鼠标拖拽指令时,矢量地图绘制装置将重复步骤S301S302、以及步骤S401S402的流程步骤,使得显示屏幕可以连续、不闪烁地显示的矢量地图。0070基于上述绘制矢量地图的方法,本发明实施例的矢量地图绘制装置的内部结构框架示意图如图5所示,包括指令解析模块501、待显示区域确定模块502、缓存更新模块503、预绘区域更新模块504和矢量地图显示模块505。0071指令解析模块501用于在接收到显示屏幕上所显示的矢量地图中鼠标拖拽指令后,确定出。

33、鼠标拖拽指令所涉及的经纬度信息后输出。0072待显示区域确定模块502用于根据指令解析模块501输出的经纬度信息,确定出待显示区域的经纬度范围后,发送缓存更新通知。0073缓存更新模块503用于接收到待显示区域确定模块502发送的缓存更新通知后,根据待显示区域确定模块502确定的待显示区域的经纬度范围,从存储于第一缓存中的预绘区域的矢量地图中提取出待显示区域的矢量地图后,将提取出的矢量地图覆盖第二缓存中的矢量地图,并发送区域更新通知。0074预绘区域更新模块504用于在矢量地图绘制装置启动时,根据显示屏幕中即将显示矢量地图的显示区域的经纬度信息,确定出预绘区域后,绘制出预绘区域的矢量地图;并将。

34、绘制出的预绘区域的矢量地图存储于第一缓存中;将该显示区域的矢量地图存储于第二缓存中;并且,预绘区域更新模块504在接收到缓存更新模块503发送的区域更新通知说明书CN104063158A7/7页10后,根据显示屏幕上当前显示的区域的经纬度范围,重新确定预绘区域的经纬度范围,并绘制重新确定的预绘区域中的矢量地图后,对存储于第一缓存中的矢量地图进行更新。预绘区域更新模块504具体用于根据显示屏幕上当前显示的区域的四个顶点的经纬度X1,Y1、X1,Y2、X2,Y1、X2,Y2,重新确定出预绘区域的四个顶点的经纬度2X1X2,2Y1Y2、2X1X2,2Y2Y1、2X2X1,2Y1Y2、2X2X1,2Y。

35、2Y1;其中,X1、X2分别表示显示屏幕上当前显示的区域的矢量地图的最小经度、最大经度,Y1、Y2分别表示显示屏幕上当前显示的区域的矢量地图的最小纬度、最大纬度。0075矢量地图显示模块505用于根据第二缓存中的矢量地图在显示屏幕进行显示。0076由上述技术方案可知,鼠标在显示屏幕上一次拖曳过程中的待显示区域,均落入本发明的预绘区域的范围内;且矢量地图绘制装置预先绘制出预绘区域的矢量地图;使得鼠标拖曳过程中,矢量地图绘制装置可以周期性提取出待显示区域的矢量地图进行显示;并在接收到下一个鼠标拖拽指令之前,及时完成对第一缓存中的预绘区域的矢量地图的更新;从而可以使得显示屏幕中连续、不闪烁地显示矢量。

36、地图,可以提高用户的体验。0077本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如ROM/RAM、磁碟、光盘等。0078以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。说明书CN104063158A101/5页11图1图2A说明书附图CN104063158A112/5页12图2B图3A说明书附图CN104063158A123/5页13图3B图3C说明书附图CN104063158A134/5页14图3D图4说明书附图CN104063158A145/5页15图5说明书附图CN104063158A15。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1