发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种基于多级抽稀算法的路网图多级动态加载方法。
本发明的技术解决方案是:
为了解决上述技术问题,本发明提供了一种基于多级抽稀算法的路网图多级动态加载方法,包括:
所述的抽稀算法包括以下步骤:
S1:连接路网线路曲线首尾两点形成一条直线L;
S2:计算该路网线路中其余各点到直线L的垂直距离,计算最大距离Dmax及对应的点P;
S3:将Dmax与预设的抽稀算法阈值d比较,若Dmax<d,则将这条曲线上的中间点全部舍去,否则保留点P并以点P将曲线分割为两条曲线;
S4:重复步骤S1-S3直至所有Dmax<d;
所述的多级动态加载方法包括一个初始化抽稀步骤以及一个逐级缩放抽稀步骤:
所述的初始化抽稀步骤包括以下子步骤:
a)获取初始地图比例尺值大小;
b)根据比例尺值确定抽稀算法阈值d;
c)加载所有路网点坐标数据;
d)对每条线路根据阈值d进行路线抽稀;
e)返回抽稀后的线路;
所述逐级缩放抽稀步骤包括以下子步骤:
f)实时获取缩放后的地图比例尺值大小;
g)根据缩放后的比例尺值确定抽稀算法阈值d;
h)加载路网点坐标数据;
j)对每条线路根据阈值d进行路线抽稀;
k)返回抽稀后的线路。
可选地,所述的步骤a)中,获取初始地图比例尺值大小的步骤为:
获取预设时间段内,用户查看路网图的历史数据;
获取目标查看比例训练模型;
使用所述目标查看比例训练模型,基于所述历史数据确定用户常用的目标比例尺值;
将所述目标比例尺值确定为初始地图比例尺值。
可选地,所述方法还包括一个根据用户查看习惯的预加载步骤:
根据用户登录信息调用该用户路网图查看记录;
根据路网图查看记录中各地图显示范围的停留时长和查看次数计算生成该用户的查看习惯排序;
选择习惯排序中前N个地图显示范围进行数据预加载,数据预加载的顺序与习惯排序保持一致。
可选地,所述方法还包括屏显范围数据抽稀步骤;
所述屏显范围数据抽稀步骤包括以下子步骤:
k)确定当前路网图显示范围矩形T1;
l)以矩形T1为中心,计算出周围8个矩形;
m)合并T1及周围8个矩形得到矩形T;
n)根据矩形T计算待抽稀的路网点;
o)对步骤n)所得到的路网点进行抽稀。
可选地,所述方法还包括一个水平预加载步骤:
根据用户拖拽地图的轨迹生成拖拽方向;
根据拖拽方向和屏显范围数据计算该拖拽方向上所有的路网点数据;
根据当前比例尺值确定的抽稀算法阈值d对这些路网点数据进行路线抽稀;
预加载抽稀后的路网线路。
可选地,所述方法还包括一个垂直预加载步骤:
当路网图缩放到某一级别n时,按该缩放级别对应的比例尺值确定抽稀算法阈值,根据该抽稀算法阈值进行线路抽稀并返回至前端页面;同时,按该缩放级别相邻的两个缩放级别(n-1)级、(n+1)级对应的比例尺值确定抽稀算法阈值,根据相邻两个缩放级别的抽稀算法阈值分别进行线路抽稀,系统预加载抽稀后的路网线路并异步返回至前端页面。
所述方法还包括一个抽稀数据缓存步骤:对于同一比例尺值、同一屏显范围的抽稀数据进行缓存,再次查看相同数据时直接从缓存中加载。本发明与现有技术相比的优点在于:本发明通过对路网点数据的动态抽稀,无需加载所有的路网点数据,大大减少了路网图浏览过程中路网点数据的加载和计算量,浏览、缩放路网图时的系统响应速度得到了巨大提升。且本发明根据比例尺动态抽稀,通过设置合理的抽稀算法阈值能够避免路网线路失真,显示效果好。
本发明实施例提供的方案,通过目标查看比例训练模型,确定用户查看路网图的常用比例,用户无需自行调整路网图比例尺,更加方便快捷。基于用户常用的初始比例尺确定抽稀算法阈值d,并对路网图进行抽稀后显示,提高查看路网图时的数据处理效率。
在用户更进一步对路网图进行缩放之前,提前将当前缩放比例相邻(大一级或小一级)的两个缩放比例的路网图进行抽稀计算并预加载(存储),当用户进行缩放操作时,直接调用存储的抽稀的路线显示即可,使得路网图在缩放时地图加载响应更快、更加顺畅,提高了用户的查看体验。
在用户拖拽路网图时,确定鼠标的拖拽方向,提前对拖动方向上覆盖的路网点数据进行抽稀并存储,使得拖拽停留时的路网图加载更快,使用更加便捷。因为该场景下系统只计算拖拽方向上覆盖的路网点数据,大大减少了抽稀的计算量,保证了路网图响应速度。
在用户查看某一显示范围的路网图时,确定当前地图显示范围的矩形,并以当前矩形为中心,计算周围8个矩形,对九个矩形中的线路进行抽稀,显示当前界面范围的同时预加载周围8个矩形的抽稀数据,以使得用户在滑动地图查看当前显示范围周边的线路时,不需要重新去后台加载并计算,路线显示流畅无卡顿。
具体实施方式
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明实施例提供的一种抽稀算法的步骤流程图,如图1所示,该方法具体可以包括如下步骤:
步骤S1:连接路网线路曲线首尾两点形成一条直线L。
步骤S2:计算该路网线路中其余各点到直线L的垂直距离,计算最大距离Dmax及对应的点P。
步骤S3:将Dmax与预设的抽稀算法阈值d比较,若Dmax<d,则将这条曲线上的中间点全部舍去,否则保留点P并以点P将曲线分割为两条曲线。
步骤S4:重复步骤S1-S3直至所有Dmax<d。
在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成数据调用过程中响应速度慢。因此要通过某种规则,在保证矢量曲线形状不变的情况下,最大限度地减少数据点个数,这个过程称为抽稀数据经过抽稀后,数量大量减少,并且基本保证能反映原图形或曲线的基本形状特征,能够为进一步的处理节省空间和时间。
所述的多级动态加载方法包括一个初始化抽稀步骤以及一个逐级缩放抽稀步骤:
如图2所示,为初始化抽稀步骤流程图,所述初始化抽稀步骤流程图包括以下子步骤:
a:获取初始地图比例尺值大小。
b:根据比例尺值确定抽稀算法阈值d;
c:加载所有路网点坐标数据。
d:对每条线路根据阈值d进行路线抽稀。
e:返回抽稀后的线路。
如图3所示,为逐级缩放抽稀步骤的流程图。所述逐级缩放抽稀步骤包括以下子步骤:
f:实时获取缩放后的地图比例尺值大小。
g:根据缩放后的比例尺值确定抽稀算法阈值d。
h:加载路网点坐标数据。
j:对每条线路根据阈值d进行路线抽稀。
k:返回抽稀后的线路。
步骤a具体包括:获取预设时间段内,用户查看路网图的历史数据;获取目标查看比例训练模型;使用所述目标查看比例训练模型,基于所述历史数据确定用户常用的目标比例尺值;将所述目标比例尺值确定为初始地图比例尺值。
需要说明的是,本领域技术人员可以根据实际情况对预设时间段进行设置,其中,预设时间段可以为一个月内、两个月内、三个月内等,本发明实施例对此不作具体限制。目标查看比例训练模型通过以下方式进行训练:
获取多个用户查看路网图的查看比例尺数据;将用户查看路网图的查看比例尺数据成为训练样本,在本实施例中,利用多个用户查看路网图的查看比例尺数据对初始模型进行训练,用户查看路网图的查看比例尺数据可以根据用户的选择生成。也可以获取预设时间段内,不同用户的不同查看路网图的查看比例尺数据做作为训练样本,利用不同用户的不同查看路网图的查看比例尺数据对初始模型进行训练,生成目标查看比例训练模型。将预设时间段内的用户查看路网图的数据作为输入数据输入至目标查看比例训练模型,输出用户常用的目标比例尺。将目标比例尺值确定为初始地图比例尺值。
作为优选的,对于初始的显示范围的确定,可以根据以下方式进行确定:根据用户登录信息调用该用户路网图查看记录;根据路网图查看记录中各地图显示范围的停留时长和查看次数计算生成该用户的查看习惯排序;选择习惯排序中前N个地图显示范围进行数据预加载,数据预加载的顺序与习惯排序保持一致。
根据用户的查看习惯,确定在打开路网图时能够快速显示该用户常用的显示范围,同时完成其他常用显示范围路网图的预加载,当用户拖拽至常用显示范围时,系统能直接显示该显示范围的线路,无需再次进行抽稀和加载。
为了便于路网地图加载更加流畅,对路网图实现预加载:
方式一:确定路网图显示范围矩形T1;以矩形T1为中心,计算出周围8个矩形;合并T1及周围8个矩形得到矩形T;根据矩形T计算待抽稀的路网点;对路网点进行抽稀。
如图4所示,为依据当前显示范围预加载示意图。
在用户查看某一显示范围的路网图时,确定当前地图显示范围的矩形,并以当前矩形为中心,计算周围8个矩形,对九个矩形中的线路进行抽稀,显示当前界面范围的同时预加载周围8个矩形的抽稀数据,以使得用户在滑动地图查看当前显示范围周边的线路时,不需要重新去后台加载并计算,路线显示流畅无卡顿。
方式二:根据用户拖拽地图的轨迹生成拖拽方向;根据拖拽方向和屏显范围数据计算该拖拽方向上所有的路网点数据;根据当前比例尺值确定的抽稀算法阈值d对这些路网点数据进行路线抽稀;预加载抽稀后的路网线路。
在用户拖拽路网图时,确定鼠标的拖拽方向,提前对拖动方向上覆盖的路网点数据进行抽稀并存储,使得拖拽停留时的路网图加载更快,使用更加便捷。因为该场景下系统只计算拖拽方向上覆盖的路网点数据,大大减少了抽稀的计算量,保证了路网图响应速度。
如图5所示,根据拖拽方向预加载示意图。
方式三:当路网图缩放到某一级别n时,按该缩放级别对应的比例尺值确定抽稀算法阈值,根据该抽稀算法阈值进行线路抽稀并返回至前端页面;同时,按该缩放级别相邻的两个缩放级别(n-1)级、(n+1)级对应的比例尺值确定抽稀算法阈值,根据相邻两个缩放级别的抽稀算法阈值分别进行线路抽稀,系统预加载抽稀后的路网线路并异步返回至前端页面。
在用户更进一步对路网图进行缩放之前,提前将当前缩放比例相邻(大一级或小一级)的两个缩放比例的路网图进行抽稀计算并预加载(存储),当用户进行缩放操作时,直接调用存储的抽稀的路线显示即可,使得路网图在缩放时地图加载响应更快、更加顺畅,提高了用户的查看体验。
本发明通过对路网点数据的动态抽稀,无需加载所有的路网点数据,大大减少了路网图浏览过程中路网点数据的加载和计算量,浏览、缩放路网图时的系统响应速度得到了巨大提升。且本发明根据比例尺动态抽稀,通过设置合理的抽稀算法阈值能够避免路网线路失真,显示效果好。
本发明实施例提供的方案,通过目标查看比例训练模型,确定用户查看路网图的常用比例,用户无需自行调整路网图比例尺,更加方便快捷。基于用户常用的初始比例尺确定抽稀算法阈值d,并对路网图进行抽稀后显示,提高查看路网图时的数据处理效率。
在用户更进一步对路网图进行缩放之前,提前将当前缩放比例相邻(大一级或小一级)的两个缩放比例的路网图进行抽稀计算并预加载(存储),当用户进行缩放操作时,直接调用存储的抽稀的路线显示即可,使得路网图在缩放时地图加载响应更快、更加顺畅,提高了用户的查看体验。
在用户拖拽路网图时,确定鼠标的拖拽方向,提前对拖动方向上覆盖的路网点数据进行抽稀并存储,使得拖拽停留时的路网图加载更快,使用更加便捷。因为该场景下系统只计算拖拽方向上覆盖的路网点数据,大大减少了抽稀的计算量,保证了路网图响应速度。
在用户查看某一显示范围的路网图时,确定当前地图显示范围的矩形,并以当前矩形为中心,计算周围8个矩形,对九个矩形中的线路进行抽稀,显示当前界面范围的同时预加载周围8个矩形的抽稀数据,以使得用户在滑动地图查看当前显示范围周边的线路时,不需要重新去后台加载并计算,路线显示流畅无卡顿。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。