[发明专利]一种基于瓦片的矢量地图渲染方法在审
申请号: | 201710791249.2 | 申请日: | 2017-09-05 |
公开(公告)号: | CN107590226A | 公开(公告)日: | 2018-01-16 |
发明(设计)人: | 张一鸣;陈佰权;李坪泽;丁茜 | 申请(专利权)人: | 中国电子科技集团公司第二十八研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06T17/05 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 常虹 |
地址: | 210003 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 瓦片 矢量 地图 渲染 方法 | ||
技术领域
本发明属于地理信息系统领域,具体涉及一种瓦片地图的渲染方法。
背景技术
随着卫星遥感、移动互联网、无人机等一系列新技术的发展,地理信息系统(以下简称GIS)应用范围越来越广,数字地图的显示是地理信息系统最基本,也是最重要的功能,空间数据的不断膨胀,使地图信息量更加丰富的同时,也对地图的显示速度、精度和准确度提出更高的要求。
瓦片地图技术是目前常用的互联网地图技术,它通过多尺度分级切割,将大尺寸的地图分割为数量众多的小尺寸图片,构建金字塔模型。如图1所示,瓦片金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。图1中,每一层的地图瓦片构成一个瓦片矩阵,通过瓦片的层号和行列号可以唯一确定一个瓦片。
Google地图采用的瓦片地图策略是将矢量地图提前渲染,按一定规则进行切片后进行显示。采用这种技术,客户端仅需根据当前场景向服务器请求瓦片数据后拼接显示即可,瓦片数据也便于缓存,因此大大提高了地图的显示效率。由于瓦片地图是提前渲染好的,当地图数据发生更新时,瓦片往往需要重新制作。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供了一种基于瓦片的矢量地图渲染方法,该方法可以实时渲染地图瓦片,动态缓存瓦片数据。
技术方案:本发明采用如下技术方案:一种基于瓦片的矢量地图渲染方法,包括如下步骤:
(1)根据当前视图计算所需的地图瓦片,遍历每一块所需瓦片,检查缓存中是否有对应瓦片,如果缓存中没有对应瓦片,则根据矢量数据渲染该瓦片,瓦片数据时间戳记录为所述矢量数据的时间戳,形成瓦片后放入缓存中,并将该瓦片绘制到地图上;
(2)如果缓存中有对应瓦片,且缓存中的瓦片数据时间戳与该瓦片对应的矢量数据的时间戳一致,则将该瓦片绘制到地图上;如果缓存中的瓦片数据时间戳与该瓦片对应的矢量数据的时间戳不一致,则根据矢量数据渲染该瓦片,瓦片数据时间戳更新为所述矢量数据的时间戳,形成瓦片后放入缓存中,并将该瓦片绘制到地图上。
为了提高缓存效率,本发明采用二级缓存,所述缓存包括内存缓存和本地缓存;步骤(1)中首先检查内存缓存中是否有对应瓦片,如没有,再检查本地缓存中是否有对应瓦片;新生成的瓦片放入内存缓存;
步骤(2)中如果所需瓦片存放于本地缓存,且所述瓦片数据时间戳与该瓦片对应的矢量数据的时间戳一致,则将该瓦片从本地缓存移至内存缓存;新生成的瓦片放入内存缓存。
所述本地缓存为本地数据库缓存或本地文件缓存。
为了加快地图绘制,便于并行处理,还包括建立瓦片请求队列,地图场景改变时,所述瓦片请求队列清空;如果内存缓存中没有所需地图瓦片,生成一个瓦片请求插入到瓦片请求队列的队尾;工作线程从所述瓦片请求队列的队头出队瓦片请求来检查本地缓存中是否有对应瓦片。
进一步地,为了提高多个工作线程并行处理瓦片请求队列,所述瓦片请求队列为无锁队列。
为了充分利用内存缓存,还包括如下步骤:计算内存缓存的占用量或占用率,当占用量或占用率达到占用阈值时,将内存缓存中使用可能性较小的瓦片缓存移至本地缓存,并释放对应内存。
内存缓存中瓦片的使用可能性计算步骤为:
(1)记录内存缓存中每个瓦片的最近使用时间,如果是新生成的瓦片,其最近使用时间为瓦片生成的时间;
(2)按瓦片的最近使用时间对瓦片进行排序;最近使用时间距当前时间近的瓦片使用可能性大,距当前时间远的瓦片使用可能性小。
内存缓存中瓦片的使用可能性的另一种计算步骤为:
(1)计算内存缓存中每个瓦片所表示区域的中心点与屏幕中当前视图的中心点之间的距离;
(2)按瓦片所表示区域的中心点与屏幕中当前视图的中心点之间的距离对瓦片进行排序;所述距离小的瓦片使用可能性大,所述距离大的瓦片使用可能性小。
缓存中的瓦片根据层、行、列号生成唯一标识号。
有益效果:与现有技术相比,本发明公开的基于瓦片的矢量地图渲染方法具有如下优点:1、在绘制地图过程中实时渲染地图瓦片,避免了地图原始数据发生更新导致的地图显示不准确;2、瓦片采用动态生成和管理,通过二级缓存技术提高了地图的绘制效率。
附图说明
图1是瓦片金字塔模型的示意图;
图2是本发明公开的基于瓦片的矢量地图渲染方法的流程图;
图3是实施例中瓦片请求模块的流程图;
图4是实施例中缓存管理模块的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第二十八研究所,未经中国电子科技集团公司第二十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710791249.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种胶管钢丝编织机的放线装置
- 下一篇:一种安全网罩焊接固定架