CN109977192A - 无人机瓦片地图快速加载方法、系统、设备及存储介质 - Google Patents
无人机瓦片地图快速加载方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN109977192A CN109977192A CN201910263143.4A CN201910263143A CN109977192A CN 109977192 A CN109977192 A CN 109977192A CN 201910263143 A CN201910263143 A CN 201910263143A CN 109977192 A CN109977192 A CN 109977192A
- Authority
- CN
- China
- Prior art keywords
- tile
- map
- tile map
- loaded
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本公开公开了无人机瓦片地图快速加载方法、系统、设备及存储介质,通过无人机采集目标区域的遥感数据;将采集到的无人机原始图片用Pix4DMapper工具拼接成全景图;基于瓦片金字塔技术,调用Mapnik库在服务器端生成不同级别的无人机瓦片地图,基于Hilbert编码算法对生成的不同级别的瓦片进行编码,并建立索引存储到HBase中;配置Redis作为缓存数据库,从广度、深度两个维度对瓦片进行预取并写入Redis缓存中;采用基于事件驱动的Node.js完成服务器端开发;利用开源JavaScript地图库OpenLayers完成浏览器端加载显示。本公开广泛应用于无人机瓦片地图生成和高效加载中。
Description
技术领域
本公开涉及瓦片地图技术领域,特别是涉及无人机瓦片地图快速加载方法、系统、设备及存储介质。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
目前,随着遥感技术的发展,无人机因其机动灵活和不受云层遮挡等优点成为传统卫星遥感和普通航空遥感的重要补充,并被广泛地应用于灾害应急处理、土地利用调查和农业保育等多个方面。为了方便查询和分析无人机数据,常常需要通过互联网技术在浏览器端对无人机图像进行加载显示,实现数据的共享和互操作。在基于Web的无人机地图应用中,将一张完整的地图切分成更小的矩形瓦片是提高地图加载效率的主要手段之一。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
传统的数据读取因需要频繁地访问机械式磁盘,寻址速度非常慢,并不能保证用户能流畅地浏览地图。此外,对于多维遥感数据来说,为方便寻址,需找到一种从多维映射到一维的方法来尽可能确定数据在磁盘上的位置。传统按行扫描建立索引的方式,并不能很好地保持多维数据的空间位置关系,数据查询效率较低,已不能满足人们对响应速度的需求。
发明内容
为了解决现有技术的不足,本公开提供了无人机瓦片地图快速加载方法、系统、设备及存储介质,其采用Hilbert算法对生成的瓦片金字塔编码,建立索引存储在HBase中,并设计基于内存数据库Redis的邻域预取缓存策略,从而提高无人机瓦片地图加载效率;
第一方面,本公开提供了无人机瓦片地图快速加载方法;
无人机瓦片地图快速加载方法,包括:
获取由无人机采集的目标区域的原始图像;
将采集到的原始图像拼接成全景图;
基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
第二方面,本公开还提供了无人机瓦片地图快速加载系统;
无人机瓦片地图快速加载系统,包括:
图像获取模块:获取由无人机采集的目标区域的原始图像;
图像拼接模块:将采集到的原始图像拼接成全景图;
瓦片地图生成模块:基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
编码模块:采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
缓存模块:配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图;先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的数据,直接返回到浏览器进行显示;若未命中缓存,再从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述方法的步骤。
与现有技术相比,本公开的有益效果是:
1、根据Hilbert编码算法将每一层级瓦片编码并建立索引,较好地保证了相关性高的数据能够在物理空间上连续存储,由此减少了I/O时间,数据读取效率得到提高。
2、非关系型数据库HBase作为存储数据库,将“层级+Hilbert编码”作为rowkey,并通过键对值(key-value)进行访问,拥有高效的查找效率和较高的读写性能。
3、使用Redis内存数据库来建立高性能的缓存机制,设计邻域预取的缓存策略。除了将低层级的瓦片优先存储到Redis中,在响应用户浏览地图请求时,还将显示区域一定邻域内的影像瓦片预先缓存。这种缓存策略可以有效提高缓存命中率,从而减少对HBase数据库的访问频率,加快地图浏览的响应速度。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本公开提高无人机瓦片地图加载效率的方法中的总体设计;
图2为本公开提高无人机瓦片地图加载效率的方法中缓存策略总体流程;
图3为本公开提高无人机瓦片地图加载效率的方法中邻域预取缓存广度、深度策略模型。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释部分:
Pix4DMapper是一种能够快速进行无人机数据和航空影像处理的全自动软件,由瑞士Pix4D公司研发。该工具可快速地将数千张影像制作成高精度的、带地理坐标的二维地图或三维模型,且该过程无需人工干预。
瓦片金字塔是一种影像分辨率从高(底层)到低(顶层)的多层次组织模型。即在表示相同区域范围的情况下,影像分辨率随着金字塔层级的增加而降低。在瓦片金字塔中,瓦片的层级不同,显示的图像细节不同。瓦片金字塔预生成技术在WebGIS中常用于地图加载,以增强Web地图用户体验。
Hilbert编码,即依据Hilbert填充曲线的空间特性,通过线性排序以及编码的方式,使得高维空间中的数据在映射到一维空间时,尽可能保证相邻的对象在一维空间上邻近存储。
Mapnik库是一个应用于地理信息系统的工具包,通过C++共享库将数据形式的地图渲染成位图格式,实现空间数据访问和可视化功能。Mapnik库具有处理图像生成瓦片的功能,主要面向GIS服务的Web应用开发。
HBase是一种基于NoSQL的存储模型,具有分布式架构的开源数据库,对数据进行存储。HBase可以建立在服务器集群上,实现横向扩展。
Redis是一种基于BSD协议的高性能开源数据库,它将数据存储在内存中管理。与磁盘相比,内存数据库的数据读写速度具有明显优势,能够显著提高系统性能。
OpenLayers是一个开源的JavaScript地图库,专为WebGIS客户端开发提供支持。OpenLayers由MetaCarta公司开发,其开源方式使得精通JavaScript的开发人员能够自主添加相应功能。
实施例一:本实施例提供了无人机瓦片地图快速加载方法;
如图1所示,无人机瓦片地图快速加载方法,包括:
获取由无人机采集的目标区域的原始图像;
将采集到的原始图像拼接成全景图;
基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
进一步地,所述将采集到的原始图像拼接成全景图,具体是指:
将采集到的原始图像通过Pix4DMapper工具拼接成全景图。
进一步地,基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图,具体是指:
获取全景图最小外接矩形左上角和右下角位置处的经纬度;
设置每张瓦片地图的像素大小为m*m,以及设置生成瓦片的层级范围为第M层至第N层;
基于墨卡托投影,为每个层级建立瓦片坐标系;
根据全景图最小外接矩形左上角和右下角位置处的经纬度,计算出每层级的起始瓦片(左上角瓦片)和结束瓦片(右下角瓦片)在所属层级的瓦片坐标系下的横坐标X和纵坐标Y;
根据设置的每张瓦片地图的像素大小、层级、每层起始瓦片和每层结束瓦片的坐标值,切分成第M层至第N层的若干瓦片,同时根据与每层起始瓦片的相对位置,得到每张瓦片地图在瓦片坐标系下的坐标值。
进一步地,计算出每层级的起始瓦片(左上角瓦片)和结束瓦片(右下角瓦片)在所属层级的瓦片坐标系下的横坐标X和纵坐标Y,计算公式为:
其中,Z表示瓦片地图的层级,lng表示全景图中某一点的经度;lat表示全景图中某一点的纬度,表示向下取整。
进一步地,基于墨卡托投影,为每个层级建立瓦片坐标系的具体步骤,包括:
墨卡托投影将地球在维度(85.05°N,85.05°S)部分映射到二维平面上,使得投影后的平面地图垂直方向和水平方向长度相同;
将墨卡托投影地图的左上角作为瓦片坐标系的零点,瓦片坐标系的X轴与北纬85.05°重合,且向右为正方向;瓦片坐标系的Y轴与东经180°重合且向下为正方向。
进一步地,采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中,具体步骤包括:
采用Hilbert编码算法对每个层级的每张瓦片地图进行编码;
将“层级+Hilbert编码”作为HBase数据库的row key建立索引;
以“层级+Hilbert编码”为索引的瓦片地图作为HBase数据库的value,且瓦片地图是以二进制的形式进行存储;
根据“层级+Hilbert编码”索引的字典序对瓦片地图排序,依次存储到HBase数据库中。
上述技术方案的有益效果:Hilbert编码对每个瓦片地图进行编码并建立索引,较好保证了二维空间的瓦片在一维的磁盘上存储时的位置关系,即二维空间中相邻的瓦片在一维空间上也尽可能相邻;基于内存的Redis作为缓存数据库,建立缓存机制;都是为了减少瓦片的加载时间,使用户更快地浏览地图。
进一步地,配置最低L层的瓦片数据在Redis数据库中优先存储;L根据配置的内存最大占用空间设置,例如,如果内存最大占用空间为1.2G,则L取值为4。
用户先在低层级浏览图像以寻找感兴趣的目标区域,然后在小范围内对图像反复放缩或平移,观察图像的具体信息。为了提高最低几层图像的响应速度,在Redis数据库中优先存储最低四层(15-18层级)的数据。
上述技术方案的有益效果,最低L层的瓦片数据在Redis数据库中优先存储,以此加快最低L层图像的响应速度。
进一步地,当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;具体步骤包括:
根据用户的地图查阅请求,JavaScript地图库OpenLayers从当前可视窗口中获取待加载瓦片地图的URL;
如图2所示,由URL地址分析得出待加载瓦片的坐标(X,Y,Z),X表示待加载瓦片地图在所属瓦片坐标系中的横坐标,Y表示待加载瓦片地图在所述瓦片坐标系中的纵坐标,Z表示待加载瓦片地图所属层级;然后根据坐标信息,在Redis缓存数据库中查询所请求的数据;
若在Redis缓存数据库中查找到所请求的数据,就返回数据并显示;
若在Redis缓存数据库中未查找到所请求的数据,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,将预选取的瓦片地图写入缓存数据库中,同时返回用户当前浏览窗口需要加载的数据并显示。
作为一个实施例,所述从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度方向的邻接瓦片地图,具体是指:
JavaScript地图库OpenLayers获取用户当前查阅的瓦片坐标(currentX,currentY,currentZ);
设定预取扩展系数ΔX和ΔY;
计算预取的瓦片坐标范围(ExtentX,ExtentY,ExtentZ);
ExtentX=currentX±ΔX;
ExtentY=currentY±ΔY;
ExtentZ=currentZ;
根据计算得到的预取的瓦片坐标范围(ExtentX,ExtentY,ExtentZ);从HBase数据库中提取瓦片坐标范围(ExtentX,ExtentY,ExtentZ)的所有瓦片地图,存储到缓存数据库中,并根据用户的浏览指令进行显示。
所述从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的深度方向的邻接瓦片地图,具体是指:
JavaScript地图库OpenLayers获取用户当前查阅的瓦片坐标(currentX,currentY,currentZ);
设定预取扩展系数ΔX和ΔY;
计算预取的瓦片坐标范围(DepthX,DepthY,DepthZ);
DepthX=currentX×2±ΔX;
DepthY=currentY×2±ΔY;
DepthZ=currentZ+1;
根据计算得到的预取的瓦片坐标范围(DepthX,DepthY,DepthZ);从HBase数据库中提取瓦片坐标范围(DepthX,DepthY,DepthZ)的所有瓦片地图,存储到缓存数据库中,并根据用户浏览指令进行显示。
所述用户浏览指令,包括放大、缩小或平移,如图3所示。
同一层级的广度方向预取策略中,图中预取扩展系数取为1。深色圆圈区域表示影像瓦片在当前屏幕窗口中的显示范围,浅色圆圈区域代表接下来可能被用户访问到的瓦片,即需要预先缓存到Redis中的瓦片。根据URL地址分析出需要加载的瓦片坐标(currentX,currentY,currentZ),预取扩展系数分别设置为ΔX和ΔY,即广度策略下需预取的瓦片坐标范围(ExtentX,ExtentY,ExtentZ)。
相邻层级的深度方向预取策略中,图中取ΔX、ΔY为0。黑色部分代表接下来可能被用户访问到的瓦片。根据瓦片金字塔组织模型,相邻层级瓦片分辨率缩小系数为1/2,由如下公式可以得到深度策略下需要预取的瓦片坐标范围(DepthX,DepthY,DepthZ)。
当用户浏览地图时,当前窗口需要加载瓦片的URL地址由客户端JavaScript地图库OpenLayers获取,以http://localhost:port/{z}/{x}/{y}.png形式表示。
将该URL地址通过Ajax异步请求方式向Web服务器发送;
Web应用服务器(基于事件驱动的Node.js)接收到请求后解析URL地址,并将所需瓦片在缓存(Redis)中根据索引进行查询;
若在缓存数据库中查询到相关瓦片数据,则Web服务器可直接返回给浏览器端,进行加载显示;若没有查询到数据,转到HBase数据库中继续查询;
根据缓存策略,查询到相关的数据。Web服务器将需要加载的数据返回到浏览器端完成显示。同时,将查询到的数据写入Redis缓存中,以便下一次查询。
上述技术方案的有益效果,“层级数+Hilbert编码”作为HBase的rowkey建立索引,且根据索引的字典序对瓦片地图排序,遥感影像瓦片数据在HBase数据库中以二进制形式存储。地图放大、缩小所呈现的不同分辨率的地图,实际就是不同层级下的地图。层级数作为索引一部分,保证了同一层级的数据可以连续存储。
上述技术方案的有益效果,将Hilbert编码作为索引的一部分,可以较好地保证同一层级相邻瓦片和相邻层级的相邻瓦片的数据在物理空间上连续存储,使数据具有良好的局部性特点。
综上所述,本公开提供的提高无人机瓦片地图加载效率的方法先是根据瓦片金字塔模型,生成不同层级的瓦片。接着对生成的瓦片进行Hilbert编码,并建立索引存储到NoSQL型数据库HBase中。然后根据基于Redis的邻域预取缓存策略完成数据读取,最后加载显示。
实施例二,本实施例还提供了无人机瓦片地图快速加载系统;
无人机瓦片地图快速加载系统,包括:
图像获取模块:获取由无人机采集的目标区域的原始图像;
图像拼接模块:将采集到的原始图像拼接成全景图;
瓦片地图生成模块:基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
编码模块:采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
缓存模块:配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
实施例三:本实施例还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成方法中的各个操作,为了简洁,在此不再赘述。
所述电子设备可以是移动终端以及非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(Smart Phone,如Android手机、IOS手机等)、智能眼镜、智能手表、智能手环、平板电脑、笔记本电脑、个人数字助理等可以进行无线通信的移动互联网设备。
应理解,在本公开中,该处理器可以是中央处理单元CPU,该处理器还算可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外一点,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例四,本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一实施例所述方法的步骤。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.无人机瓦片地图快速加载方法,其特征是,包括:
获取由无人机采集的目标区域的原始图像;
将采集到的原始图像拼接成全景图;
基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
2.如权利要求1所述的方法,其特征是,所述将采集到的原始图像拼接成全景图,具体是指:
将采集到的原始图像通过Pix4DMapper工具拼接成全景图。
3.如权利要求1所述的方法,其特征是,基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图,具体是指:
获取全景图最小外接矩形左上角和右下角位置处的经纬度;
设置每张瓦片地图的像素大小为m*m,以及设置生成瓦片的层级范围为第M层至第N层;
基于墨卡托投影,为每个层级建立瓦片坐标系;
根据全景图最小外接矩形左上角和右下角位置处的经纬度,计算出每层级的起始瓦片和结束瓦片在所属层级的瓦片坐标系下的横坐标X和纵坐标Y;所述起始瓦片为左上角瓦片,所述结束瓦片为右下角瓦片;
根据设置的每张瓦片地图的像素大小、层级、每层起始瓦片和每层结束瓦片的坐标值,切分成第M层至第N层的若干瓦片,同时根据与每层起始瓦片的相对位置,得到每张瓦片地图在瓦片坐标系下的坐标值。
4.如权利要求1所述的方法,其特征是,采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中,具体步骤包括:
采用Hilbert编码算法对每个层级的每张瓦片地图进行编码;
将“层级+Hilbert编码”作为HBase数据库的row key建立索引;
以“层级+Hilbert编码”为索引的瓦片地图作为HBase数据库的value,且瓦片地图是以二进制的形式进行存储;
根据“层级+Hilbert编码”索引的字典序对瓦片地图排序,依次存储到HBase数据库中。
5.如权利要求1所述的方法,其特征是,当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图,先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的瓦片地图,直接返回到浏览器进行显示;若未查找到需要的瓦片地图,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;具体步骤包括:
根据用户的地图查阅请求,JavaScript地图库OpenLayers从当前可视窗口中获取待加载瓦片地图的URL;
由URL地址分析得出待加载瓦片的坐标(X,Y,Z),X表示待加载瓦片地图在所属瓦片坐标系中的横坐标,Y表示待加载瓦片地图在所述瓦片坐标系中的纵坐标,Z表示待加载瓦片地图所属层级;然后根据坐标信息,在Redis缓存数据库中查询所请求的数据;
若在Redis缓存数据库中查找到所请求的数据,就返回数据并显示;
若在Redis缓存数据库中未查找到所请求的数据,则从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,将预选取的瓦片地图写入缓存数据库中,同时返回用户当前浏览窗口需要加载的数据并显示。
6.如权利要求5所述的方法,其特征是,从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度方向的邻接瓦片地图,具体是指:
JavaScript地图库OpenLayers获取用户当前查阅的瓦片坐标(currentX,currentY,currentZ);
设定预取扩展系数ΔX和ΔY;
计算预取的瓦片坐标范围(ExtentX,ExtentY,ExtentZ);
ExtentX=currentX±ΔX;
ExtentY=currentY±ΔY;
ExtentZ=currentZ;
根据计算得到的预取的瓦片坐标范围(ExtentX,ExtentY,ExtentZ);从HBase数据库中提取瓦片坐标范围(ExtentX,ExtentY,ExtentZ)的所有瓦片地图,存储到缓存数据库中,并根据用户的浏览指令进行显示。
7.如权利要求5所述的方法,其特征是,从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的深度方向的邻接瓦片地图,具体是指:
JavaScript地图库OpenLayers获取用户当前查阅的瓦片坐标(currentX,currentY,currentZ);
设定预取扩展系数ΔX和ΔY;
计算预取的瓦片坐标范围(DepthX,DepthY,DepthZ);
DepthX=currentX×2±ΔX;
DepthY=currentY×2±ΔY;
DepthZ=currentZ+1;
根据计算得到的预取的瓦片坐标范围(DepthX,DepthY,DepthZ);从HBase数据库中提取瓦片坐标范围(DepthX,DepthY,DepthZ)的所有瓦片地图,存储到缓存数据库中,并根据用户浏览指令进行显示。
8.无人机瓦片地图快速加载系统,其特征是,包括:
图像获取模块:获取由无人机采集的目标区域的原始图像;
图像拼接模块:将采集到的原始图像拼接成全景图;
瓦片地图生成模块:基于瓦片金字塔模型,将全景图切分成不同层级的瓦片地图;每一层级包括若干个瓦片地图;
编码模块:采用Hilbert编码算法对每个瓦片地图进行编码,按照“层级+Hilbert编码”的形式为每个瓦片地图建立索引,并将每个瓦片地图、索引和每个瓦片地图与索引之间的一一对应关系均存储到HBase数据库中;
缓存模块:配置Redis数据库作为缓存数据库;当用户浏览地图时,根据用户当前浏览窗口所需要加载的瓦片地图;先从Redis缓存数据库中查找需要加载的瓦片地图,如果查找到需要的数据,直接返回到浏览器进行显示;若未命中缓存,再从HBase数据库中预选取与当前浏览窗口所需要加载的瓦片地图的广度和深度方向的邻接瓦片地图,并将预选取的瓦片地图写入缓存数据库中;同时返回用户当前浏览窗口需要加载的数据并显示。
9.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项方法所述的步骤。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910263143.4A CN109977192B (zh) | 2019-04-02 | 2019-04-02 | 无人机瓦片地图快速加载方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910263143.4A CN109977192B (zh) | 2019-04-02 | 2019-04-02 | 无人机瓦片地图快速加载方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977192A true CN109977192A (zh) | 2019-07-05 |
CN109977192B CN109977192B (zh) | 2023-04-07 |
Family
ID=67082567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910263143.4A Active CN109977192B (zh) | 2019-04-02 | 2019-04-02 | 无人机瓦片地图快速加载方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977192B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442393A (zh) * | 2019-07-17 | 2019-11-12 | 高新兴科技集团股份有限公司 | 地图动态加载方法、计算机存储介质及电子设备 |
CN110555119A (zh) * | 2019-08-27 | 2019-12-10 | 成都数之联科技有限公司 | 一种实时场景下无人机遥感影像切片方法及系统 |
CN110928877A (zh) * | 2019-11-19 | 2020-03-27 | 武汉光谷信息技术股份有限公司 | 基于Hbase的影像瓦片存储方法、装置、设备及介质 |
CN111078817A (zh) * | 2019-12-26 | 2020-04-28 | 中科星图股份有限公司 | 一种基于Redis和PostgreSQL的瓦片地图服务集群系统和方法 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
CN111858823A (zh) * | 2020-07-28 | 2020-10-30 | 江苏物联网研究发展中心 | 基于HBase的瓦片数据存储和建立索引的方法、读取方法和存取装置 |
CN111898276A (zh) * | 2020-08-04 | 2020-11-06 | 中国南方电网有限责任公司 | 架空线路的模型处理方法、装置、计算机设备和介质 |
CN112488901A (zh) * | 2020-12-18 | 2021-03-12 | 创意信息技术股份有限公司 | 一种地理信息系统无感加载方法、装置、终端及存储介质 |
CN112800470A (zh) * | 2021-02-20 | 2021-05-14 | 和芯星通科技(北京)有限公司 | 一种差分数据的管理方法和系统以及服务器和客户端 |
CN112908146A (zh) * | 2020-12-26 | 2021-06-04 | 云景文旅科技有限公司 | 一种手绘地图切割呈现方法以及智慧导游导览系统 |
CN113495881A (zh) * | 2020-03-19 | 2021-10-12 | 中科星图股份有限公司 | 一种海量瓦片数据迁移及格式转换的方法和系统 |
CN114238538A (zh) * | 2021-12-22 | 2022-03-25 | 国汽大有时空科技(安庆)有限公司 | 一种基于高精地图的数据存储系统及方法 |
CN114238528A (zh) * | 2021-11-09 | 2022-03-25 | 深圳云天励飞技术股份有限公司 | 一种地图加载方法、装置、电子设备及存储介质 |
CN114928652A (zh) * | 2022-04-29 | 2022-08-19 | 高德软件有限公司 | 地图数据传输方法、装置、电子设备、存储介质和程序 |
CN115290070A (zh) * | 2022-07-29 | 2022-11-04 | 中汽创智科技有限公司 | 一种局部地图构建方法、装置、车载终端及存储介质 |
CN115344740A (zh) * | 2022-10-15 | 2022-11-15 | 深圳安德空间技术有限公司 | 一种基于三维探地雷达数据的全时空检索方法及系统 |
CN115658838A (zh) * | 2022-11-18 | 2023-01-31 | 山东省地图院 | 地图集数据生成方法和装置、电子设备和存储介质 |
CN116149561A (zh) * | 2023-02-22 | 2023-05-23 | 中科星图数字地球合肥有限公司 | 一种瓦片数据传输方法、装置、电子设备和存储介质 |
CN116994721A (zh) * | 2023-08-09 | 2023-11-03 | 北京透彻未来科技有限公司 | 一种数字病理切片图的快速处理系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488736A (zh) * | 2013-09-18 | 2014-01-01 | 中国科学技术大学 | 一种多源地理空间信息关联模型的构建方法及系统 |
CN105608191A (zh) * | 2015-12-23 | 2016-05-25 | 云南电网有限责任公司 | 一种基于EnersunWebCache动态生成缓存电网地图瓦片的方法 |
CN108932303A (zh) * | 2018-06-12 | 2018-12-04 | 中国电子科技集团公司第二十八研究所 | 一种分布式可见光遥感影像动态目标检测与分析系统 |
-
2019
- 2019-04-02 CN CN201910263143.4A patent/CN109977192B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488736A (zh) * | 2013-09-18 | 2014-01-01 | 中国科学技术大学 | 一种多源地理空间信息关联模型的构建方法及系统 |
CN105608191A (zh) * | 2015-12-23 | 2016-05-25 | 云南电网有限责任公司 | 一种基于EnersunWebCache动态生成缓存电网地图瓦片的方法 |
CN108932303A (zh) * | 2018-06-12 | 2018-12-04 | 中国电子科技集团公司第二十八研究所 | 一种分布式可见光遥感影像动态目标检测与分析系统 |
Non-Patent Citations (2)
Title |
---|
DANDAN GUO 等: "Framework Design of Storage and Visualization System for Massive Unmanned Aerial Vehicle (UAV) Remote Sensing Data", 《IEEE》 * |
傅焜: "基于云计算的大规模无人机遥感数据处理的优化研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442393A (zh) * | 2019-07-17 | 2019-11-12 | 高新兴科技集团股份有限公司 | 地图动态加载方法、计算机存储介质及电子设备 |
CN110442393B (zh) * | 2019-07-17 | 2023-04-07 | 高新兴科技集团股份有限公司 | 地图动态加载方法、计算机存储介质及电子设备 |
CN110555119A (zh) * | 2019-08-27 | 2019-12-10 | 成都数之联科技有限公司 | 一种实时场景下无人机遥感影像切片方法及系统 |
CN110555119B (zh) * | 2019-08-27 | 2022-05-13 | 成都数之联科技股份有限公司 | 一种实时场景下无人机遥感影像切片方法及系统 |
CN110928877A (zh) * | 2019-11-19 | 2020-03-27 | 武汉光谷信息技术股份有限公司 | 基于Hbase的影像瓦片存储方法、装置、设备及介质 |
CN111078817A (zh) * | 2019-12-26 | 2020-04-28 | 中科星图股份有限公司 | 一种基于Redis和PostgreSQL的瓦片地图服务集群系统和方法 |
CN113495881A (zh) * | 2020-03-19 | 2021-10-12 | 中科星图股份有限公司 | 一种海量瓦片数据迁移及格式转换的方法和系统 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
CN111858823A (zh) * | 2020-07-28 | 2020-10-30 | 江苏物联网研究发展中心 | 基于HBase的瓦片数据存储和建立索引的方法、读取方法和存取装置 |
CN111858823B (zh) * | 2020-07-28 | 2024-05-03 | 江苏物联网研究发展中心 | 基于HBase的瓦片数据存储和建立索引的方法、读取方法和存取装置 |
CN111898276A (zh) * | 2020-08-04 | 2020-11-06 | 中国南方电网有限责任公司 | 架空线路的模型处理方法、装置、计算机设备和介质 |
CN112488901A (zh) * | 2020-12-18 | 2021-03-12 | 创意信息技术股份有限公司 | 一种地理信息系统无感加载方法、装置、终端及存储介质 |
CN112488901B (zh) * | 2020-12-18 | 2024-05-07 | 创意信息技术股份有限公司 | 一种地理信息系统无感加载方法、装置、终端及存储介质 |
CN112908146A (zh) * | 2020-12-26 | 2021-06-04 | 云景文旅科技有限公司 | 一种手绘地图切割呈现方法以及智慧导游导览系统 |
CN112800470A (zh) * | 2021-02-20 | 2021-05-14 | 和芯星通科技(北京)有限公司 | 一种差分数据的管理方法和系统以及服务器和客户端 |
CN114238528A (zh) * | 2021-11-09 | 2022-03-25 | 深圳云天励飞技术股份有限公司 | 一种地图加载方法、装置、电子设备及存储介质 |
CN114238538A (zh) * | 2021-12-22 | 2022-03-25 | 国汽大有时空科技(安庆)有限公司 | 一种基于高精地图的数据存储系统及方法 |
CN114928652A (zh) * | 2022-04-29 | 2022-08-19 | 高德软件有限公司 | 地图数据传输方法、装置、电子设备、存储介质和程序 |
CN115290070A (zh) * | 2022-07-29 | 2022-11-04 | 中汽创智科技有限公司 | 一种局部地图构建方法、装置、车载终端及存储介质 |
CN115344740A (zh) * | 2022-10-15 | 2022-11-15 | 深圳安德空间技术有限公司 | 一种基于三维探地雷达数据的全时空检索方法及系统 |
CN115658838A (zh) * | 2022-11-18 | 2023-01-31 | 山东省地图院 | 地图集数据生成方法和装置、电子设备和存储介质 |
CN116149561B (zh) * | 2023-02-22 | 2024-03-12 | 中科星图数字地球合肥有限公司 | 一种瓦片数据传输方法、装置、电子设备和存储介质 |
CN116149561A (zh) * | 2023-02-22 | 2023-05-23 | 中科星图数字地球合肥有限公司 | 一种瓦片数据传输方法、装置、电子设备和存储介质 |
CN116994721A (zh) * | 2023-08-09 | 2023-11-03 | 北京透彻未来科技有限公司 | 一种数字病理切片图的快速处理系统 |
CN116994721B (zh) * | 2023-08-09 | 2024-06-18 | 北京透彻未来科技有限公司 | 一种数字病理切片图的快速处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109977192B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977192A (zh) | 无人机瓦片地图快速加载方法、系统、设备及存储介质 | |
US10089331B2 (en) | System and method for storing a dataset of image tiles | |
CN103455624B (zh) | 一种轻量级全球多维遥感影像网络地图服务实现方法 | |
CN104657436B (zh) | 基于MapReduce的静态瓦片金字塔并行构建方法 | |
CA2436312C (en) | Close-packed, uniformly adjacent, multiresolutional, overlapping spatial data ordering | |
CN105786942B (zh) | 一种基于云平台的地理信息存储系统 | |
CN102819530A (zh) | 电子地图的显示方法及装置 | |
Zhou et al. | A virtual globe-based vector data model: quaternary quadrangle vector tile model | |
Li et al. | Integration and management of massive remote-sensing data based on GeoSOT subdivision model | |
Guo et al. | A spatially adaptive decomposition approach for parallel vector data visualization of polylines and polygons | |
Wu et al. | 3D terrain real-time rendering method based on CUDA-OpenGL interoperability | |
Sherlock et al. | Interactive data styling and multifocal visualization for a multigrid web-based Digital Earth | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
CN113157988B (zh) | 由ofd格式文件表示地理信息的方法和装置 | |
Liang et al. | Precise hexagonal pixel modeling and an easy-sharing storage scheme for remote sensing images based on discrete global grid system | |
CN111125237A (zh) | 一种基于NoSql数据库的气象数值预报产品动态成图方法 | |
Rueda-Ruiz et al. | SPSLiDAR: towards a multi-purpose repository for large scale LiDAR datasets | |
Li et al. | Bringing geospatial data closer to mobile users: A caching approach based on vector tiles for wireless multihop scenarios | |
Zhao et al. | A crowdsourcing-based platform for labelling remote sensing images | |
Hu et al. | Geospatial web service for remote sensing data visualization | |
XIAO et al. | Integration method of TINs and Grids for multi-resolution surface modeling | |
Wang | A large-scale dynamic vector and raster data visualization geographic information system based on parallel map tiling | |
Yang et al. | Three-dimension visualization of environmental scalar data based on GeoSOT-3D Grids | |
Chen et al. | A fast scheduling method for massive oblique photography 3D models | |
Prasher et al. | Efficient Update and Retrieval of objects in a multiresolution geospatial database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |