一种离线移动端导航技术实现方法技术

技术编号:33277145 阅读:23 留言:0更新日期:2022-04-30 23:36
本发明专利技术公开了一种离线移动端导航技术实现方法,包括下载osm矢量数据源,提取所需的路线信息,生成obf地图文件;将地图数据导入设备存储卡中,解析obf地图文件得到并遍历地图数据,采用网格式分层绘制地图,并进行显示;打开设备GPS定位功能,获取用户起点和目的地,使用路径规划算法运算出规划的路线数据,根据路线数据显示规划的路线;然后开始实时导航,更新路线位置状态、识别轨迹方向及是否需要掉头和实时更新语音播报;根据路线位置状态,判断是否到达终点,若已到达结束导航。本发明专利技术通过使用路径规划算法规划出最优路径,进而达到从起点到终点始终不与任何障碍物相交的效果,导航的速度也有很大提高,尤其在网络不好的情况下,测试效果更好。测试效果更好。测试效果更好。

【技术实现步骤摘要】
一种离线移动端导航技术实现方法


[0001]本专利技术涉及离线导航
,具体来说,涉及一种离线移动端导航技术实现方法。

技术介绍

[0002]导航技术一般都是使用在线导航,所谓在线导航就是移动端和服务端通过网络传输数据,由于受限于网络的传输速度,容易造成数据的丢失或延迟。在线导航还需要耗费相当多的流量来传输数据,对经常使用导航的用户来说,流量无疑是一种巨大的消耗。
[0003]在户外导航时,手机的网络信号会受到多种外界因素影响,例如高楼、隧道、天气等,导致在使用过程中不能及时获取最新数据而影响用户的使用。
[0004]导航的基础是地图,地图的基础是数据,地图数据的生成关系到地图的绘制、路径规划需要的数据,如何生产出符合离线导航的地图数据显的尤为重要。
[0005]路径规划性能的高低直接关系到用户行驶路径选择的优劣和行驶的流畅度,如何在各种场景下迅速、准确的规划出一条高效路径且使其具备应对场景动态变化的能力是路径规划中应当解决的重要问题。

技术实现思路

[0006]针对相关技术中的上述技术问题,本专利技术提出一种离线移动端导航技术实现方法,能够克服现有技术方法的上述不足。
[0007]为实现上述技术目的,本专利技术的技术方案是这样实现的:一种离线移动端导航技术实现方法,包括以下步骤:S1: 从OpenStreatMap官网下载osm矢量数据源,使用MapCreator工具提取在生成地图过程中所需的路线信息,生成obf地图文件;S2:将地图数据导入设备存储卡中,解析obf地图文件得到并遍历地图数据,通过MapTileLayer类的drawTileMap方法采用网格式分层绘制地图,再将MapTileLayer添加到自定义地图MapView中进行显示;S3: 打开设备GPS定位功能,获取用户当前位置起点和在地图上选择目的地,使用路径规划算法A*(A

Star)运算出规划的路线数据,首先计算出地图数据每个节点的优先级,再使用两个集合open_set和close_set来表示待遍历的节点与已遍历过的节点;S4: 进行初始化open_set和close_set集合,将起点加入open_set中,设置优先级为最高,再进行open_set集合的非空判断,从open_set中选取优先级最高的节点n,若节点n为终点,则从终点开始逐步追踪parent节点,一直达到起点,再返回找到的结果路径,算法结束;若节点n不是终点,则将节点n从open_set中删除,并加入close_set中,再遍历节点n所有的邻近节点m,判断邻近节点m是否在close_set中,若邻近节点m在close_set中,则跳过,选取下一个邻近节点;若邻近节点m不在open_set中,则设置节点m的parent为节点n,再计算节点m的优先级,将节点m加入open_set中;
S5:经过路径规划算法A*(A

Star)的运算,根据规划的路线数据显示路径规划路线;S6:路线规划好之后,获取路径规划信息,进行非空判断,如果路径规划为空,重新进行路径规划,若不为空,开始实时导航,同时更新路线位置状态、识别轨迹方向及是否需要掉头,将道路的信息以文字或图片的方式显示在屏幕上,同时将道路信息进行实时更新语音播报,监查用户当前位置的变化是否按照已规划的路线行驶;S7: 根据路线位置状态,判断是否到达终点,若未到达,则进行分析是否需要重新规划路径,若已到达结束导航。
[0008]进一步地,所述在生成地图过程中所需的路线信息包括线路的坐标集合coordinate、类型type、名称name及线路描述desc。
[0009]进一步地,所述路径规划算法A*(A

Star)的准则是在给定的环境中从起点到终点始终不与任何障碍物相交,在全局信息已知的范围下采用正向搜索方式,利用启发函数对搜索进行指导搜索。
[0010]进一步地,所述路径规划算法A*(A

Star)计算每个节点的优先级是通过f(n)=g(n)+h(n)函数进行运算的;其中,f(n)是节点n的综合优先级,g(n)是节点n距离起点的代价,h(n)是节点n距离终点的预计代价,也是路径规划算法的启发函数;每次从优先队列中选取节点的综合优先级最高的节点作为下一个待遍历的节点。
[0011]进一步地,所述启发函数会直接影响路径规划算法A*(A

Star)的运算过程,当启发函数h(n)始终为0,则将由g(n)决定节点的优先级,此时算法就退化成了Dijkstra算法;如果h(n)始终小于等于节点n到终点的代价,则路径规划算法A*(A

Star)一定能找到最短路径;当h(n)的值越小,路径规划算法将遍历更多的节点,直接导致算法更慢;如果h(n)完全等于节点n到终点的代价,则路径规划算法将找到最佳路径,并且速度很快;如果h(n)的值比节点n到终点的代价要大,则路径规划算法不能保证找到最短路径,不过此时会很快;如果h(n)相较于g(n)大很多,则此时只有h(n)产生效果,这也就成了最佳优先搜索。
[0012]进一步地,所述启发函数使用的是欧几里得距离,在导航过程中,路线允许任意朝向,所述欧几里得距离是指两个节点之间的直线距离,其计算方法是通过公式进行计算出欧几里得距离的,其函数表示为h(n) = D * sqrt((n.x

goal.x)^2 + (n.y

goal.y)^2)。
[0013]进一步地,步骤S3中,所述获取用户当前位置时,首先根据当前位置来更新道路状态,步骤为首先使用正交距离找到最小正交距离,再进行判断是否到达中间途经点和是否到达终点。
[0014]进一步地,步骤S6中,所述将道路信息进行语音播报是将要提示的信息拼成文字,调用语音合成引擎来播放,播放内容主要包括时间、距离和方向,语音播报主要分为两种类型,一种通过google语音引擎来播放文字内容,另一种通过自定义语音包将提前将语音内容录制好之后导入程序中,再根据文字内容进行判断播放哪个语音文件。
[0015]进一步地,步骤S6中,进行语音播报的步骤包括,首先,获取下一条道路信息,进行非空判断,如果不为空则初始化当前状态为STATUS_UNKNOWN,再判断距离,如果距离小于零或当前状态为STATUS_TOLD直接返回,最后,根据不同状态匹配不同的文字内容进行播报。
[0016]本专利技术的有益效果:通过使用先进的路径规划算法和智能化的实时导航逻辑规划出一条最优路径,进而达到从起点到终点始终不与任何障碍物相交的效果;经测算,采用相
同的地图原始数据、相同的移动设备、相同的位置等同等条件下,离线地图加载的速度比在线效率提高了2倍以上,导航的速度也有很大提高,尤其在网络不好的情况下,测试效果更好;通过预加载的离线地图数据实时读取计算,采用最佳算法快速计算最优路径,能够显著提升导航速度,改善手机地图导航的用户体验。
附图说明
[0017]为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种离线移动端导航技术实现方法,其特征在于,包括以下步骤:S1: 从OpenStreatMap官网下载osm矢量数据源,使用MapCreator工具提取在生成地图过程中所需的路线信息,生成obf地图文件;S2:将地图数据导入设备存储卡中,解析obf地图文件得到并遍历地图数据,通过MapTileLayer类的drawTileMap方法采用网格式分层绘制地图,再将MapTileLayer添加到自定义地图MapView中进行显示;S3: 打开设备GPS定位功能,获取用户当前位置起点和在地图上选择目的地,使用路径规划算法A*(A

Star)运算出规划的路线数据,首先计算出地图数据每个节点的优先级,再使用两个集合open_set和close_set来表示待遍历的节点与已遍历过的节点;S4: 进行初始化open_set和close_set集合,将起点加入open_set中,设置优先级为最高,再进行open_set集合的非空判断,从open_set中选取优先级最高的节点n,若节点n为终点,则从终点开始逐步追踪parent节点,一直达到起点,再返回找到的结果路径,算法结束;若节点n不是终点,则将节点n从open_set中删除,并加入close_set中,再遍历节点n所有的邻近节点m,判断邻近节点m是否在close_set中,若邻近节点m在close_set中,则跳过,选取下一个邻近节点;若邻近节点m不在open_set中,则设置节点m的parent为节点n,再计算节点m的优先级,将节点m加入open_set中;S5:经过路径规划算法A*(A

Star)的运算,根据规划的路线数据显示路径规划路线;S6:路线规划好之后,获取路径规划信息,进行非空判断,如果路径规划为空,重新进行路径规划,若不为空,开始实时导航,同时更新路线位置状态、识别轨迹方向及是否需要掉头,将道路的信息以文字或图片的方式显示在屏幕上,同时将道路信息进行实时更新语音播报,监查用户当前位置的变化是否按照已规划的路线行驶;S7: 根据路线位置状态,判断是否到达终点,若未到达,则进行分析是否需要重新规划路径,若已到达结束导航。2.根据权利要求1所述的离线移动端导航技术实现方法,其特征在于,所述在生成地图过程中所需的路线信息包括线路的坐标集合coordinate、类型type、名称name及线路描述desc。3.根据权利要求1所述的离线移动端导航技术实现方法,其特征在于,所述路径规划算法A*(A

Star)的准则是在给定的环境中从起点到终点始终不与任何障碍物相交,在全局信息已知的范围下采用正向搜索方式,利用启发函数对搜索进行指导搜索。4. 根据权利要求1所述的离线移动端导航技术实...

【专利技术属性】
技术研发人员:张永旺于洋石小娜孙峂许兴家刘志远丁晖
申请(专利权)人:北京航天世景信息技术有限公司
类型:发明
国别省市:

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

1