一种三维地图海量POI显示方法、终端设备及存储介质技术

技术编号:39304572 阅读:7 留言:0更新日期:2023-11-12 15:53
本发明专利技术涉及一种三维地图海量POI显示方法、终端设备及存储介质,该方法中包括:对三维地图进行分层,并设置每一层的分幅网格大小;获取POI数据信息,计算POI对应的分幅网格坐标和分幅网格的网格中心点经纬度;对分幅网格中的POI进行聚合,得到聚合数据信息;构建分幅网格信息表、分幅网格关联POI信息表和聚合点信息表并存储;根据屏幕显示三维地图区域的高度和经纬度范围,计算对应的层级和对应的分幅网格坐标范围;从三个信息表中查询POI,并将查询结果在三维地图上进行显示。本发明专利技术解决了三维地图客户端加载时随着POI信息增加所导致的显示慢或者内存大幅度增加的问题。示慢或者内存大幅度增加的问题。示慢或者内存大幅度增加的问题。

【技术实现步骤摘要】
一种三维地图海量POI显示方法、终端设备及存储介质


[0001]本专利技术涉及地图显示领域,尤其涉及一种三维地图海量POI显示方法、终端设备及存储介质。

技术介绍

[0002]现在有技术中主要将POI(PointofInformation,信息点)传递给三维地图客户端来进行聚合和显示。随着三维地图越来越成熟,在三维地图上显示POI要素也越来越多,但随着POI数量的增加三维地图加载速度也越来越慢。

技术实现思路

[0003]为了解决上述问题,本专利技术提出了一种三维地图海量POI显示方法、终端设备及存储介质。
[0004]具体方案如下:
[0005]一种三维地图海量POI显示方法,包括以下步骤:
[0006]S1:根据高度值对三维地图进行分层,并根据层级设置每一层对应的分幅网格大小;
[0007]S2:获取POI数据信息,并计算每个POI对应各层的分幅网格坐标和分幅网格对应的网格中心点经纬度;
[0008]S3:遍历每个层级的每个分幅网格,根据每个POI对应各层的分幅网格坐标,对分幅网格中包含的POI进行聚合,得到聚合数据信息;
[0009]S4:基于所有POI的数据信息、分幅网格坐标、网格中心点经纬度和聚合数据信息,构建每个分幅网格对应的分幅网格信息表、每个POI对应的分幅网格关联POI信息表和每个聚合点对应的聚合点信息表并存储;
[0010]S5:根据屏幕显示三维地图区域的高度和经纬度范围,计算对应的层级和对应的分幅网格坐标范围;
[0011]S6:基于计算得到的层级和分幅网格坐标范围,从三个信息表中查询POI,并将查询结果在三维地图上进行显示。
[0012]进一步的,分层时层级按照以下公式进行划分:
[0013]levelMaxHeight
level
=2
(level

1)
*100
[0014]其中,level表示层级,levelMaxHeight
level
表示level层对应的最大高度。
[0015]进一步的,每一层对应的分幅网格大小按照以下公式进行设置:
[0016]gridLevelLength=gridMinLength*2
(level

1)
[0017]gridLevelWidth=gridMinWidth*2
(level

1)
[0018]其中,gridLevelLength表示分幅网格长度,gridMinLength表示最小分幅网格长度,gridLevelWidth表示分幅网格宽度,gridMinWidth表示最小分幅网格宽度,level表示层级。
[0019]进一步的,POI对应某一层的分幅网格坐标的计算公式为:
[0020][0021][0022]其中,x表示POI处于地图的长度方向上的第x个分幅网格,y表示POI处于地图的宽度方向上的第x个分幅网格,lon表示POI的经度,lat表示POI的纬度,minlon表示地图的最小经度,minlat表示地图的最小纬度;
[0023]POI对应某一层的分幅网格的网格中心点经纬度的计算公式为:
[0024]centerLon=minlon+(x+0.5)*gridLevelLength
[0025]centerLat=minlat+(y+0.5)*gridLevelWidth
[0026]其中,centerLon表示网格中心点经度,centerLat表示网格中心点纬度,minlon。
[0027]进一步的,对某个分幅网格中包含的POI进行聚合的过程包括以下步骤:
[0028]S301:判断分幅网格对应的层级是否大于预设的最大层级,如果是,判定不进行聚合,结束;否则,进入S302;
[0029]S302:判断分幅网格的关联数据量是否大于预设的最小数据量,如果是,进入S303;否则,不进行聚合,结束;
[0030]S303:将分幅网格包含的所有POI两两组成POI组,计算每个POI组中两个POI之间的距离;
[0031]S304:计算分幅网格对应的最小聚合距离gridLevelMinDist:gridLevelMinDist=(gridLevelWidth/showNum)2+(gridLevelHeight/showNum)2[0032]其中,showNum表示分幅网格POI最大显示数量;gridLevelWidth表示分幅网格的宽度;gridLevelHeight表示分幅网格的高度;
[0033]S305:将距离小于或等于最小聚合距离的每个POI组提取出来作为一个待聚合组;
[0034]S306:遍历所有待聚合数据组以对其包含的所有POI进行分组处理,得到多个聚合组,以使不同聚合组中的POI之间的距离大于最小聚合距离;
[0035]S307:遍历每个聚合组进行去重处理;
[0036]S308:计算每个聚合组对应的中心点坐标。
[0037]进一步的,聚合组对应的中心点坐标的计算公式为:
[0038]ggCenterLon=(aggMaxLon

aggMinLon)/2+aggMinLon
[0039]aggCenterLat=(aggMaxLon

aggMinLat)/2+aggMinLat
[0040]其中,ggCenterLon表示聚合组对应的中心点的经度,aggCenterLat表示聚合组对应的中心点的纬度,aggMaxLon、aggMinLon分别表示聚合组的所有POI中的最大经度和最小经度,aggMaxLat、aggMinLat分别表示聚合组的所有POI中的最大纬度和最小纬度。
[0041]进一步的,步骤S6中根据POI包含的数据类型的个数,采用对应数目的线程进行查询,每个线程查询一种数据类型。
[0042]进一步的,查询结果的内容包括点位类型,根据查询结果所属的信息表的不同,点位类型包括网格中心点、数据点和聚合点,当在三维地图上显示时,当点位类型为数据点
时,根据数据类型进行显示。
[0043]一种三维地图海量POI显示终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本专利技术实施例上述的方法的步骤。
[0044]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术实施例上述的方法的步骤。
[0045]本专利技术采用如上技术方案,通过对POI数据的分幅和聚合,降低了三维显示屏幕显示的要素点信息,解决了三维地图客户端加载时随着POI信息增加所导致的显示慢或者内存大幅度增加的问题。
附图说明
[0046]图1所示为本专利技术实施例一的流程图。
具体实施方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维地图海量POI显示方法,其特征在于,包括以下步骤:S1:根据高度值对三维地图进行分层,并根据层级设置每一层对应的分幅网格大小;S2:获取POI数据信息,并计算每个POI对应各层的分幅网格坐标和分幅网格对应的网格中心点经纬度;S3:遍历每个层级的每个分幅网格,根据每个POI对应各层的分幅网格坐标,对分幅网格中包含的POI进行聚合,得到聚合数据信息;S4:基于所有POI的数据信息、分幅网格坐标、网格中心点经纬度和聚合数据信息,构建每个分幅网格对应的分幅网格信息表、每个POI对应的分幅网格关联POI信息表和每个聚合点对应的聚合点信息表并存储;S5:根据屏幕显示三维地图区域的高度和经纬度范围,计算对应的层级和对应的分幅网格坐标范围;S6:基于计算得到的层级和分幅网格坐标范围,从三个信息表中查询POI,并将查询结果在三维地图上进行显示。2.根据权利要求1所述的三维地图海量POI显示方法,其特征在于:分层时层级按照以下公式进行划分:levelMaxHeight
level
=2
(level

1)
*100其中,level表示层级,levelMaxHeight
level
表示level层对应的最大高度。3.根据权利要求1所述的三维地图海量POI显示方法,其特征在于:每一层对应的分幅网格大小按照以下公式进行设置:gridLevelLength=gridMinLength*2
(level

1)
gridLevelWidth=gridMinWidth*2
(level

1)其中,gridLevelLength表示分幅网格长度,gridMinLength表示最小分幅网格长度,gridLevelWidth表示分幅网格宽度,gridMinWidth表示最小分幅网格宽度,level表示层级。4.根据权利要求3所述的三维地图海量POI显示方法,其特征在于:POI对应某一层的分幅网格坐标的计算公式为:幅网格坐标的计算公式为:其中,x表示POI处于地图的长度方向上的第x个分幅网格,y表示POI处于地图的宽度方向上的第x个分幅网格,lon表示POI的经度,lat表示POI的纬度,minlon表示地图的最小经度,minlat表示地图的最小纬度;POI对应某一层的分幅网格的网格中心点经纬度的计算公式为:centerLon=minlon+(x+0.5)*gridLevelLengthcenterLat=minlat+(y+0.5)*gridLevelWidth其中,centerLon表示网格中心点经度,centerLat表示网格中心点纬度,minlon。5.根据权利要求1所述的三维地图海量POI显示方法,其特...

【专利技术属性】
技术研发人员:陈生坚胡贞财卢天发吴俊张翔
申请(专利权)人:罗普特厦门系统集成有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1