掌桥专利:专业的专利平台
掌桥专利
首页

一种基于多层缓存的矢量瓦片实时切片和更新方法

文献发布时间:2023-06-19 19:27:02



技术领域

本发明涉及空间信息进行分析和处理技术领域,具体涉及一种基于多层缓存的矢量瓦片实时切片和更新方法。

背景技术

随着计算机技术、网络技术、地图制图技术的快速发展,电子地图的表达方式越来越多样化。电子地图的应用已经不仅仅局限于地图浏览、缩放、查询等,各机关、企事业单位、社会公众对海量数据的快速显示、动态更新、样式可定制等方面的需求也越来越丰富。作为对栅格瓦片的扩展,矢量瓦片直接存储矢量要素的空间与属性信息,且瓦片数据量小、渲染速度快,能较好地满足用户的动态交互需求,为电子地图的应用提供了一个新的解决思路。

但是现有技术存在以下的技术问题:

1)栅格瓦片更新效率低。数据或样式发生改变时,栅格瓦片需要更改地图配图方案重新切片,且每次切片耗时较长。整个处理过程消耗至少48小时以上。

2)栅格瓦片占用存储空间大。数据经切片后存储大幅增长。一份3.3GB的全国范围河流数据经切片16级后产生的瓦片数据量约54GB。

3)栅格瓦片交互能力不足。栅格瓦片本质是图片,客户端依据瓦片无法进行查询分析,实时查询需要反复地向服务器发送请求。

4)矢量地图服务客户端效率低下。矢量地图服务的加载方式和渲染方式使得客户端浏览效率低、渲染延迟。

在数据整合、融合的背景下,水利部数据类别越来越丰富、数据体量越来越大,传统栅格瓦片服务已经不能很好地满足服务快速更新、前端实时交互的需求,矢量地图服务的浏览效率等技术瓶颈也实现不了良好的用户体验,为此亟须开展数据服务更新、前端交互技术的方法探索,提高数据应用服务效率,优化用户体验。

发明内容

针对现有技术的不足,本发明的目的是提供一种基于多层缓存的矢量瓦片实时切片和更新方法,在矢量瓦片的存储与提取上,采用基于内存数据和非关系型数据的多层缓存机制,以解决大数据量的矢量瓦片更新效率低,操作复杂,无法即时发布的问题。

具体的技术方案:

一种基于多层缓存的矢量瓦片实时切片和更新方法,包括以下步骤:

S1、根据输入的地图范围在空间数据库中进行检索,判断其中是否涉及数据更新,并将更新数据的完整几何形状返回最小外包矩形,生成相应矢量瓦片;

S2、根据生成矢量瓦片的请求范围建立检索标识,并通过检索标识检索内存数据库,若存在该检索标识对应的矢量瓦片数据则返回检索结果,若不存在则检索非关系数据库;若在非关系数据库中存在则将其载入缓存并返回检索结果,否则进入步骤S3;

S3、当内存数据库与非关系数据库皆不存在检索标识对应的矢量瓦片数据时,调用矢量瓦片切片工具实时生成矢量瓦片,将生成的矢量瓦片存入内存数据库或非关系数据库中,并建立文件索引,同时返回矢量瓦片。

进一步的,步骤S1中所述生成矢量瓦片的具体步骤如下:

S11、输入地图范围;

S12、利用输入的地图范围在空间数据库中进行检索;

S13、判断空间数据库中是否存在数据更新的区域,若有更新则进入S14,否则进入S15;

S14、生成更新数据完整几何形状的最小外包矩形;

S15、利用各次循环后得到的坐标范围,计算对应的矢量瓦片编码集合,生成相应的矢量瓦片。

优选的,步骤S15中矢量瓦片编号与经纬度的对应转换公式如下:

其中,tileX、tileY分别为矢量瓦片的行数和列数,Level为层数,log为经度,lat为维度。

本发明具有的技术效果:

1、本发明设计了矢量数据的局部更新方案,针对搜索区域的数据按需局部更新矢量瓦片,并采用最小外包矩形最大限度的减小更新代价,避免了全范围内矢量地图的重新切片,减少了工作量。考虑数据中断问题的矢量瓦片局部更新方法,实现了对局部区域矢量数据的快速生成;

2、基于内存数据库和非关系型数据库设计多层缓存机制存储矢量瓦片,极大地提高了瓦片的发布效率,进而提高系统的性能与地图的发布速率,实现瓦片数据的实时切片和更新;

3、本发明能提高矢量瓦片的存取效率。利用内存数据库取代传统的关系数据库,内存数据库相比传统的关系数据库的优点在于它的高并发以及高效率。矢量瓦片直接存在内存数据库之中,降低了瓦片数据的读写和存储时间,提高了系统的效率;

具体实施方式

结合实施例说明本发明的具体技术方案。

一种基于多层缓存的矢量瓦片实时切片和更新方法,包括以下步骤:

S1、根据输入的地图范围在空间数据库中进行检索,判断其中是否涉及数据更新,并将更新数据的完整几何形状返回最小外包矩形,生成相应矢量瓦片;

S2、根据生成矢量瓦片的请求范围建立检索标识,并通过检索标识检索内存数据库,若存在该检索标识对应的矢量瓦片数据则返回检索结果,若不存在则检索非关系数据库;若在非关系数据库中存在则将其载入缓存并返回检索结果,否则进入步骤S3;

S3、当内存数据库与非关系数据库皆不存在检索标识对应的矢量瓦片数据时,调用矢量瓦片切片工具实时生成矢量瓦片,将生成的矢量瓦片存入内存数据库或非关系数据库中,并建立文件索引,同时返回矢量瓦片。

进一步的,步骤S1中所述生成矢量瓦片的具体步骤如下:

S11、输入地图范围;

S12、利用输入的地图范围在空间数据库中进行检索;

S13、判断空间数据库中是否存在数据更新的区域,若有更新则进入S14,否则进入S15;

S14、生成更新数据完整几何形状的最小外包矩形;

S15、利用各次循环后得到的坐标范围,计算对应的矢量瓦片编码集合,生成相应的矢量瓦片。

优选的,步骤S15中矢量瓦片编号与经纬度的对应转换公式如下:

其中,tileX、tileY分别为矢量瓦片的行数和列数,Level为层数,log为经度,lat为维度。

利用上面的方法,通过开发程序实现数据的更新。在数据更新后,根据更新标识检索并提取更新数据,这时获取的数据仅为更新的数据,利用这些数据计算数据的空间范围,在这个范围内进行多层级缓存的数据切片与更新。

在系统运行过程中,数据会经常更新。一般在大数据量的情况下,为了提高数据使用效率会在数据层进行优化形成数据缓存,在数据更新后也需要同步更新各种缓存数据。在数据库管理上会采用ETL来实现,但在地图缓存数据则无法使用ETL来更新,可以通过本发明来实现地图数据的快速更新,证业务数据的实时更新。

以河流服务为例,利用本发明实现矢量瓦片服务的实时切片和更新。

利用一个监控程序,利用数据更新时间戳发现河流的更新数据。

将更新后的空间数据根据制图分级要求提取到不同的数据集中。

用代码实现本发明内容,通过更新的数据情况自动计算影响的数据范围,并根据项目实际情况配置缓存输出路径,运行程序实现切图功能。

通常数据更新在夜间完成,程序运行完成即可实现矢量瓦片的多层级缓存更新。

相关技术
  • 一种基于ID缓存的数据批量插入更新实现方法
  • 一种基于矢量路网融合与高分遥感影像验证的道路网自动更新方法
  • 一种基于多层缓存的矢量瓦片实时切片和更新方法
  • 一种基于多层缓存的矢量瓦片实时切片和更新方法
技术分类

06120115918928