CN112742030B - 一种地图导航方法、装置、存储介质和计算机设备 - Google Patents
一种地图导航方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN112742030B CN112742030B CN202010304876.0A CN202010304876A CN112742030B CN 112742030 B CN112742030 B CN 112742030B CN 202010304876 A CN202010304876 A CN 202010304876A CN 112742030 B CN112742030 B CN 112742030B
- Authority
- CN
- China
- Prior art keywords
- path
- position point
- map
- subtask
- point
- 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.)
- Active
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Navigation (AREA)
Abstract
本申请实施例公开了一种地图导航方法、装置、存储介质和计算机设备;本申请实施例公开了人工智能的机器学习领域的一种地图导航方法;本申请实施例获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图;确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点;基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径;本方案可以提升寻路准确性。
Description
技术领域
本申请涉及游戏领域,具体涉及一种地图导航方法、装置、存储介质和计算机设备。
背景技术
随着游戏类型的丰富,游戏中的地图越来越大且复杂多变,游戏玩家在游戏中想要从当前位置点到达目标位置点时,游戏需要给出指引路径,使得玩家可以快速准确的到达目标位置点,此过程即游戏寻路的过程,现有技术可以基于导航网格(Navmesh)的方案,直接对当前位置点和目标位置点进行寻路,得到当前位置点到目标位置点之间的目标路径,目标路径即寻路结果。
在对现有技术的研究和实践过程中,本申请的发明人发现,若当前位置点到目标位置点的距离偏大时,通过现有技术进行寻路会导致寻路结果准确性较低。
发明内容
本申请实施例提供一种地图导航方法、装置、存储介质和计算机设备,可以提升寻路结果准确性。
本申请实施例提供一种地图导航方法,包括:
获取寻路任务的起始位置点和终止位置点,加载所述寻路任务对应的地图;
确定所述寻路任务在所述地图上的初始路径,所述初始路径包括关键位置点,所述关键位置点为位于所述起始位置点与所述终止位置点之间的连接位置点;
基于所述初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;
对所有相邻关键位置点之间的路径进行整合,得到所述寻路任务的目标路径,并展示所述目标路径。
相应地,本申请实施例提供一种地图导航装置,包括:
获取模块,用于获取寻路任务的起始位置点和终止位置点,加载所述寻路任务对应的地图;
确定模块,用于确定所述寻路任务在所述地图上的初始路径,所述初始路径包括关键位置点,所述关键位置点为位于所述起始位置点与所述终止位置点之间的连接位置点;
寻路模块,用于基于所述初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;
整合模块,用于对所有相邻关键位置点之间的路径进行整合,得到所述寻路任务的目标路径,并展示所述目标路径。
在本申请的一些实施例中,寻路模块包括划分子模块以及寻路子模块,其中,
划分子模块,用于根据所述初始路径上的相邻关键位置点,对所述寻路任务进行划分,得到至少一个寻路子任务、以及每一个寻路子任务的子起始位置点和子终止位置点;
寻路子模块,用于在每一个寻路子任务的子起始位置点和子终止位置点之间的地图基础位置点上,对每一个寻路子任务进行寻路确定每一个寻路子任务的路径,得到每一组相邻关键位置点之间的路径。
在本申请的一些实施例中,寻路子模块包括寻路单元和确定单元,其中,
寻路单元,用于对寻路子任务进行寻路,得到所述寻路子任务的阶段终止位置点、以及所述寻路子任务的子起始位置点与所述阶段终止位置点之间的阶段子路径;
确定单元,用于基于所述寻路子任务的子起始位置点和子终止位置点、以及所述阶段子路径,确定所述寻路子任务的路径。
在本申请的一些实施例中,确定单元具体用于:
在当前阶段终止位置终点和所述寻路子任务的子终止位置点相同时,将当前存在的所有阶段子路径组成的路径确定为所述寻路子任务的路径;
在当前阶段终止位置点和所述寻路子任务的子终止位置点不相同、且位于同一地图区域时,将所述寻路子任务的子起始位置点更新为所述阶段终止位置点;返回对寻路子任务进行寻路的步骤;
当所述阶段终止位置点和所述寻路子任务的子终止位置点位于不同地图区域时,将所述寻路任务的起始位置点更新为所述阶段终止位置点,返回基于所述地图信息,确定所述寻路任务的初始路径的步骤。
在本申请的一些实施例中,所述地图区域包括地图基础区块,寻路单元具体用于:
基于所述地图基础区块,分别确定所述寻路子任务的子起始、子终止位置点所在的起始区块和终止区块;
确定所述起始区块与所述终止区块之间的候选地图基础区块;
确定每一候选地图基础区块的匹配度,所述匹配度为所述候选地图基础区块与所述终止区块和所述起始区块的最小移动代价的匹配程度;
基于所述候选区块的匹配程度,确定所述寻路子任务的阶段终止位置点、以及所述寻路子任务的起点与所述阶段终止位置点之间的阶段子路径。
在本申请的一些实施例中,确定模块包括区域子模块和路径子模块,其中,
区域子模块,用于根据所述地图中的地图区域,对所述初始区域和所述终止区域之间的区域进行寻路,得到所述寻路任务的区域路径,所述区域路径包括至少一个地图区域;
路径子模块,用于确定所述区域路径中相邻地图区域之间的连接位置点,得到所述寻路任务的初始路径。
在本申请的一些实施例中,路径子模块具体用于:
根据所述地图中的地图区域,对所述初始区域和所述终止区域之间的区域进行寻路,得到所述寻路任务的区域路径,所述区域路径包括至少一个地图区域;
确定所述区域路径中相邻地图区域之间的连接位置点,得到所述寻路任务的初始路径。
在本申请的一些实施例中,寻路单元具体用于:
从多个候选寻路进程中确定执行当前寻路子任务的当前寻路进程;
采用所述当前寻路进程对所述寻路子任务进行寻路,得到所述寻路子任务的阶段终止位置点、以及所述寻路子任务的子起始位置点与所述阶段终止位置点之间的阶段子路径。
此时,地图导航装置还包括更新模块,其中,
更新模块,用于在当前阶段终止位置点和所述寻路子任务的终点不相同、且位于同一地图区域时,将当前寻路子任务的子起始位置点更新为所述阶段终止位置点,根据候选寻路进程重新确定执行当前寻路子任务的当前寻路进程。
相应的,本申请实施例还提供了一种存储介质,存储介质存储有计算机程序,计算机程序适于处理器进行加载,以执行本申请实施例提供的任一种地图导航方法。
相应的,本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现本申请实施例提供的任一种地图导航方法。
本申请实施例首先获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图,然后确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点,再基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最终对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
本方案可以先通过地图信息,得到一个寻路任务的初始路径,初始路径包括若干关键位置点,然后以相邻关键位置点为一组,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最终得到寻路任务的目标路径(即寻路结果),区别于现有技术直接对寻路任务的起始位置点和终止位置点进行寻路,使得本方案可以显著提升寻路结果的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的地图导航装置的场景示意图;
图2是本申请实施例提供的地图导航方法的流程示意图;
图3是本申请实施例提供的地图导航方法的另一流程示意图;
图4是本申请实施例提供的地图导航方法的一个应用示例图;
图5是本申请实施例提供的地图导航方法的离线配置和线上调用示意图;
图6是本申请实施例提供的地图导航方法的技术侧架构图;
图7是本申请实施例提供的地图导航方法的逻辑流程示意图;
图8是本申请实施例提供的导航网格生成的示例图;
图9是本申请实施例提供的地图导航方法的寻路效果对比示例图;
图10是本申请实施例提供的地图导航方法的另一寻路效果对比示例图;
图11是本申请实施例提供的地图导航装置的结构示意图;
图12是本申请实施例提供的地图导航装置的另一结构示意图;
图13是本申请实施例提供的地图导航装置的另一结构示意图;
图14是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,本申请所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的地图导航方法涉及到人工智能领域,具体涉及到人工智能领域的计算机视觉技术。
其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
本申请实施例提供的游戏寻路、以及基于目标路径得到预测驾驶操作(预测驾驶操作可用于指引游戏中的车辆驾驶)的过程涉及人工智能领域的机器学习等技术,通过人工智能的机器学习技术可以进行寻路,比如,对寻路子任务进行寻路等,具体内容将通过实施例进行说明。
本申请实施例提供一种地图导航方法、装置。存储介质和计算机设备。具体地,本申请实施例可以集成在地图导航装置,地图导航装置可以集成在地图导航计算机设备,该地图导航计算机设备可以是终端等电子设备,终端可以是智能游戏机、智能手机、平板电脑、笔记本电脑、以及个人计算机等电子设备。
该地图导航计算机设备还可以是服务器等电子设备,服务器可以具备数据处理、数据存储功能以及数据传输功能等,比如,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
如图1所示,图1为地图导航装置的一个场景示意图,地图导航装置可以集成地图导航计算机设备上,地图导航计算机设备可以包括终端和服务器,终端和服务器可以通过有线或无线通信方式进行直接或间接地连接,终端可以获取游戏中寻路任务的起始位置点和终止位置点,并将该起始位置点和终止位置点发送至服务器,服务器可以加载该游戏的地图信息,并根据地图信息接收到的起始位置点和终止位置点,确定该寻路任务的初始路径,并对初始路径中的相邻关键位置点进行寻路,得到每一相邻关键点之间的路径,服务器可以整合得到的所有相邻关键点之间的路径,得到该寻路任务的目标路径,并向终端发送该目标路径。
此外,本方案也可以通过终端完成,即由终端获取寻路任务的起始位置点和终止位置点,并加载游戏的地图信息,通过地图信息,得到该寻路任务的初始路径,再对初始路径中的相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最后整个所有相邻关键位置点之间的路径,得到该寻路任务的目标路径,并将目标路径展示在游戏页面上。
需要说明的是,图1所示的地图导航装置的场景示意图仅仅是一个示例,本申请实施例描述的地图导航装置以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着地图导航装置的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下分别进行详细说明。
在本实施例中,将从地图导航装置的角度进行描述,该地图导航装置具体可以集成在终端中,比如,智能游戏机、智能手机、平板电脑、笔记本电脑、个人计算机以及穿戴式智能设备等具备储存单元、安装有微处理器的终端。
如图2所示,图2是本申请一实施例提供的地图导航方法的流程示意图。该地图导航方法可以包括:
101、获取游戏中寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图。
寻路可以包括取得两个位置点之间的行进路径的过程,寻路任务可以包括获取起始位置点和终止位置点并进行寻路,寻路任务得到的结果可以是起始位置点和终止位置点之间的行进路径,在游戏中,任意对象需要得到从一个位置点到另一个位置点的路径时,即需要进行寻路,其中,任意对象可以包括常见的游戏角色,如由真实玩家操纵的游戏角色,或由游戏开发方通过设定行为模式控制的游戏角色等。
起始位置点可以为寻路任务的一个位置点,终止位置点可以为寻路任务的另一个位置点,是寻路得到的路径的终点,起始位置点/终止位置点的获取可以通过游戏客户端获取,比如,游戏客户端可以获取游戏玩家的当前位置点,并将该当前位置点作为此次寻路任务的起始位置点,通过此种方式创建寻路任务时,只需要游戏玩家输入游戏的终端即可,可以一定程度上简化游戏玩家的操作。
又比如,终端可以在游戏角色发起寻路任务时,根据游戏角色的当前行为或历史行为等,预测游戏角色的终止位置点,当预测得到的终止位置点的预测准确概率大于一定阈值时,可以直接将该预测得到的终止位置点作为寻路任务的终止位置点,当预测得到的终止位置点大于一个,或预测得到的终止位置点的预测准确概率小于一定阈值时,可以将预测得到的终止位置点显示在游戏角色的界面上,为操作游戏角色的游戏玩家提供一种参考,此方式中根据当前行为和历史行为预测终止位置点的预测过程可以基于循环神经网络(RNN,Recurrent Neural Network)进行。
起始位置点/终止位置点也可以通过游戏玩家手动确定,比如,游戏玩家可以在游戏地图中标记其所操纵的虚拟角色的当前位置,终端根据游戏玩家的标记行为,得到该寻路任务的起始位置点,此时,起始位置点可以根据游戏玩家的实际需求和操作确定,得到寻路任务中更加灵活的起始位置点。
此外,当寻路任务对应的游戏角色不是由真实玩家控制时,游戏角色的起始位置点/终止位置点可以由游戏开发方在设置这些游戏角色的行为模型时确定。
比如,在一包括开放式游戏地图的大型游戏中,游戏玩家可以通过在游戏界面上的地图中键入标记点的方式,确定游戏玩家操纵的游戏角色AA的当前位置点Q1(即起始位置点)和游戏角色想要到达的终止位置点Q2。
地图可以通过地图信息进行描述,地图信息可以包括通过人为或自动的方式对游戏地图进行处理得到地图信息、或对游戏地图内的信息进行整合得到地图信息,等等。可以通过数据标记语言将地图信息以计算机设备可读取的文件表示出来,比如,可以基于对象标识法(json,Java Script Object Notation)表示文件,也可以基于扩展标记语言(xml,Extensible Markup Language)表示文件,等等。
其中,地图区域可以是对游戏地图进行处理,如可以根据地图的特点,将地图划分为若干区域,地图的特点可以包括地图的地形特点,如山、平地、或河流等,地图的特点也可以包括地图中区域的可行走度,如河流、栅栏、或城墙等,如,将一块连续平地划分为一个区域,此时区域的形状可以根据此平地的形状确定,如平地的形状接近圆形,则可以将此区域通过多边形的方式表示出来。
地图区域也可以直接按照地图上的区域的尺寸,将地图划分为若干固定形状和固定大小的区域,比如,将一个正方形地图划分为9个大小一致的小正方形,其中,区域可以包括层次,如一个区域由若干二级区域组成,每一二级区域包括若干三级区域等。
将地图划分为若干地图区域的过程可以根据地图的实际情况灵活确定,可以依据一种划分方式进行,也可以结合多种划分方式进行,在实践过程中可以灵活进行,在此不再限制。
地图区域间的连接位置点可以表示一个地图区域向另一个地图区域跳转的位置点,游戏角色可以通过连接位置点从一个地图区域进入另一个地图区域,比如,在地图中,河流上的桥和河流旁边的草原可以是两个地图区域,这两个地图区域的连接点可以是桥和草原的连接点。
根据起始位置点和终止位置点,加载寻路任务对应的地图信息,地图信息包括若干地图区域和地图区域间的连接位置点
在加载寻路任务对应的地图信息时,可以是加载该游戏的游戏地图的全部地图信息;也可以是根据起始位置点和终止位置点,确定包括起始位置点和终止位置点的部分游戏地图(即游戏地图的一部分),并加载此部分游戏地图的部分地图信息,此方式可以只加载后续地图导航方案中需要的部分游戏地图的地图信息,可以降低计算机设备在后续操作时的资源消耗(如存储资源等)。
比如,可以根据起始位置点Q1和终止位置点Q2,加载该大型游戏的游戏地图的全部地图信息M。
102、确定地图上的寻路任务的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点。
其中,初始路径可以为寻路任务的一个比较不精确的路径,该路径基于地图信息取得,该路径包括若干地图信息中的连接位置点,通过初始路径可以确定该寻路任务的结果穿过的地图区域,并基于地图信息中地图区域之间的连接位置点,确定该初始路径包括的若干关键位置点。关键位置点可以为起始位置点与终止位置点之间的若干连接位置点,每一个关键点都是地图信息中连接两个地图区域的连接位置点,所有关键位置点对应的地图区域即为初始路径穿过的地图区域,所以,关键位置点可以与起始位置点和终止位置点共同构成寻路任务的初始路径,
比如,大型游戏的全部地图信息M包括地图20个地图区域,以及这20个地图区域间的若干连接位置点,终端可以根据此地图信息M,确定寻路任务的初始路径L。
在一些实施例中,步骤“确定地图上的寻路任务的初始路径”,可以包括:
分别确定寻路任务的起始、终止位置点在地图中的起始区域和终止区域;基于起始区域和终止区域之间的连接位置点,确定寻路任务的初始路径。
可以根据地图区域信息,确定起始位置点所在的地图区域,即起始区域,以及确定终止位置点所在的地图区域,即终止区域,起始区域和终止区域可以为同一区域,可以为相连的不同区域,也可以为不相连的不同区域。
当起始区域和终止区域为不相连的不同区域时,则需要确定起始区域和终止区域之间的地图区域,再根据这些地图区域之间的连接位置点,确定寻路任务的初始路径。
比如,在大型游戏的地图信息M中,确定起始位置点Q1所在的起始区域q1,以及终止位置点Q2所在的终止区域q2,再根据地图信息M中q1和q2之间的若干连接位置点,确定寻路任务的初始路径P。
此外,为了确保初始路径的准确性,或为了快速获取初始路径等目的,可以通过人工或自动的方式事先确定一个地图区域到另一地图区域的初始路径,并以计算机设备可读取的形式保存下来,当需要确定初始路径时,只需要分别确定起始位置点和终止位置点的所在的起始区域和终止区域,再从事先保存的初始路线集中,读取从起始区域到终止区域的初始路径即可。
在一些实施例中,步骤“基于起始区域和终止区域之间的连接位置点,确定寻路任务的初始路径”,可以包括:
根据地图中的地图区域,对初始区域和终止区域之间的区域进行寻路,得到寻路任务的区域路径,区域路径包括至少一个地图区域;确定区域路径中相邻地图区域之间的连接位置点,得到寻路任务的初始路径。
当初始区域和终止区域之间的中间区域包括至少一个地图区域时,则需要对此中间区域进行寻路,进行寻路时可以通过常见的寻路算法进行,比如广度优先算法、迪杰斯特拉(Dijkstra)算法、最佳优先搜索(Best-first Search)算法、A*算法等等。
以地图信息中的地图区域为算法运行时的基本单元,通过寻路可以得到由若干地图区域组成的区域路径,再根据地图信息中地图区域之间的连接位置点,确定区域路径中相邻区域之间的关键位置点,即可得到由起始位置点、终止位置点、以及若干关键位置点组成的寻路任务的初始路径。
本实施例可以将地图信息中的地图区域作为寻路算法运行时的基本单元,以及地图信息中的连接位置点,最终取得寻路任务的初始路径,初始路径是一条相对精确的路径,初始路径是本方案可以更加准确快速寻路的基础。
比如,可以通过广度优先算法对起始区域q1和终止区域q2之间的地图区域进行寻路(如,广度优先算法可以从起始区域开始,对起始区域周围符合要求的地图区域进行遍历和判断,将符合要求的地图区域作为新的起始区域,重复遍历和判断的过程,直至对整个地图中的所有地图区域完成遍历和判断的操作),得到寻路任务的区域路径p,区域路径为由若干地图区域组成的路径,再根据地图信息M中相邻地图区域的连接位置点信息,由区域路径p最终得到寻路任务的初始路径P。
103、基于初始路径中的每一相邻关键位置点,在每一相邻关键位置点之间的地图基础位置点上,对每一相邻关键位置点进行寻路,得到每一相邻关键位置点之间的路径。
初始路径为包含若干位置点的集合(包括关键位置点、起始位置点以及终止位置点),初始路径中的位置点为包含先后顺序的一列位置点,在本申请中,可以将这一列位置点按照顺序确定为多组相邻位置点,如若初始路径包含10个位置点,则可以确定9组相邻位置点。再对每一组相邻位置点进行寻路,得到每一组相邻位置点之间的路径,一组相邻位置点中的一个位置点可以为寻路任务的起始位置点,则另一个位置点为寻路任务的终止位置点,寻路得到此相邻位置点之间的路径。
地图可以是对一个区域中的元素的位置表达,地图基础位置点可以是地图中表达位置的最小单元,元素可以根据地图的精度的不同而变化,比如,在一个地图中一间房屋可以为一个地图基础位置点,在另一个地图中一间房间内的桌子可以为一个地图基础位置点,椅子可以为一个地图基础位置点,等。通过对区域内元素的位置表达,可以显示元素间的相互关系。
由于地图基础位置点是地图中表达位置的最小单元,因此地图中的所有可以表达的内容都能够由地图基础点进行表达,比如,区域(如山、河流)、位置点等。
其中,起始位置点、终止位置点以及关键位置点可以基于地图基础位置点进行描述,比如,基于系统设置,起始位置点可以包含若干地图基础位置点;又比如,在设置地图信息时,可以将地图信息中的连接位置点设置为一个地图基础位置点,等。
通过对初始路径中相邻关键位置点进行寻路,得到相邻关键点的路径,实现了把一个长距离寻路任务拆分为若干距离较短的任务,从而避免了直接对长距离寻路任务进行寻路时,得到的目标路径的准确性较差的问题。也即本方案可以显著提高长距离寻路任务的寻路结果(目标路径)的准确性。
比如,初始路径为P包含8个关键位置点,则可以在由若干基础位置点构成的地图上,对初始路径中的7组相邻位置点进行寻路,得到这7组相邻关键点之间的路径,路径可以是一组包含前后顺序的基础位置点。
在一些实施例中,步骤“基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径”,可以包括:
根据初始路径上的相邻关键位置点,对寻路任务进行划分,得到至少一个寻路子任务、以及每一个寻路子任务的子起始位置点和子终止位置点;
在每一个寻路子任务的子起始位置点和子终止位置点之间的地图基础位置点上,对每一个寻路子任务进行寻路确定每一个寻路子任务的路径,得到每一组相邻关键位置点之间的路径。
在本方案中,可以根据初始路径内的关键位置点将寻路任务划分为若干子任务,并确定每一个子任务的子起始位置点和子终止位置点,子任务的数量取决于关键位置点的数量,子任务的子起始位置点和子终止位置点的确定可以根据实际情况进行灵活选择,比如,可以将相邻关键位置点中更接近终止位置点的关键位置点确定为子终止位置点,另一个关键位置点确定为子起始位置点,等。
然后对寻路任务中的子任务分别进行寻路,得到每一个子任务的路径,在本方案中,寻路子任务可以的路径可以与相邻关键位置点之间的路径相同,也可以与相邻关键位置点之间的路径不同,确定子任务的过程可以更加灵活,比如,当地图区域存在层级(如一级地图区域下包含二级地图区域),则此时确定子任务的“相邻”可以为一级地图区域的相邻,每一组相邻关键位置点的“相邻”可以为二级地图区域的相邻。
在对每一个寻路子任务分别寻路的过程中,可以通过多进程(或多线程)的方式,为每一个寻路子任务分配一个进程(或线程),可以实现同时处理多个子任务,可以显著减少整个寻路任务的耗费的时间;也可以按照每一个寻路子任务在整个寻路任务中的顺序信息,依次对每一个寻路子任务进行寻路,最终得到各个寻路子任务的路径。
比如,初始路径为P包含8个位置点,则可以根据此初始路径P,将寻路任务划分为5个寻路子任务(PP1、PP2、PP3、PP4和PP5),并确定每一个寻路子任务的子起始位置点和子终止位置点,然后分别对PP1、PP2、PP3、PP4和PP5进行寻路,得到每一个寻路子任务的路径。
在一些实施例中,步骤“对每一个寻路子任务进行寻路确定每一个寻路子任务的路径”,可以包括:
对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径;
基于寻路子任务的子起始位置点和子终止位置点、以及阶段子路径,确定寻路子任务的路径。
阶段终止位置点可以是进行一次寻路后得到的路径的终止位置点。由于进行寻路时使用的寻路算法的特性的差异,进行一次寻路得到的路径可能存在多种情况,通常寻路完成后,可以得到一段路径,这段路径的起始位置点即寻路子任务的子起始位置点,这段路径的终止位置点可以为阶段终止位置点,然后再根据阶段终止位置点、阶段子路径、以及寻路子任务,综合确定该寻路子任务的路径。
比如,对寻路子任务PP3进行寻路,得到一个阶段终止位置点和一个阶段子路径,然后基于寻路子任务PP3的子起始位置点和子终止位置点、以及阶段子路径,确定寻路子任务PP3的路径。
在一些实施例中,步骤“基于寻路子任务的子起始位置点和子终止位置点、以及阶段子路径,确定寻路子任务的路径”,可以包括:
在当前阶段终止位置终点和寻路子任务的子终止位置点相同时,将当前存在的所有阶段子路径组成的路径确定为寻路子任务的路径;
在当前阶段终止位置点和寻路子任务的子终止位置点不相同、且位于同一地图区域时,将寻路子任务的子起始位置点更新为阶段终止位置点;返回对寻路子任务进行寻路的步骤。
阶段终止位置点可以是寻路子任务的子终止位置点,则该阶段子路径即为寻路子任务的路径。比如,寻路子任务PP3的阶段终止位置点与PP3的子终止位置点相同,则此次寻路得到的阶段子路径为寻路子任务PP3的路径。
阶段终止位置点可以不是寻路子任务的子终止位置点,但是阶段终止位置点与寻路子任务的子终止位置点处于同一地图区域,此时,需要保存本次寻路得到的阶段子路径,并以该阶段终止位置点为起点,以寻路子任务的子终止位置点为终点,再次进行寻路(即返回对寻路子任务进行寻路的步骤),寻路得到新的阶段终止位置点以及新的阶段子路径后,再次进行判断、寻路的过程,直至阶段终止位置点与寻路子任务的子终止位置点相同,即可将先前每一次寻路得到的阶段子路径整合起来,得到寻路子任务的路径,此时寻路子任务的路径为若干个阶段子路径。
比如,寻路子任务PP3的阶段终止位置点与PP3的子终止位置点不同,且二者处于同一地图区域,则将寻路子任务的起点更新为该阶段终止位置点,继续对寻路子任务进行寻路,得到一个新的阶段终止位置点和阶段子线路,再次比较阶段终止位置点与寻路子任务的子终止位置点,二者相同,则该寻路子任务的路径由阶段子路径和新的阶段子路径组成。
在一些实施例中,步骤“基于寻路子任务的子起始位置点和子终止位置点、以及阶段子路径,确定寻路子任务的路径”,还可以包括:
当阶段终止位置点和寻路子任务的子终止位置点位于不同地图区域时,将寻路任务的起始位置点更新为阶段终止位置点,返回基于地图信息,确定寻路任务的初始路径的步骤。
在进行寻路时可能会出现寻路得到的路径偏离初始路径,则需要对寻路任务进行更新,即将偏离的路径的终止位置点(即阶段终止位置点)作为寻路任务的起始位置点,然后对更新后的寻路任务进行寻路,更新的此时可以为N次(N为大于等于0的正整数),则得到的目标路径可以是N+1个路径组成。
比如,依照顺序,依次对寻路子任务PP1、PP2、PP3、PP4和PP5进行寻路,在对寻路子任务PP4进行寻路时,已经得到了寻路子任务PP1、PP2和PP3的路径,对寻路子任务PP4进行寻路,得到一个阶段终止位置点,以及阶段终止位置点与寻路子任务PP4的子起始位置点之间的阶段子路径,这个阶段终止位置点与寻路子任务PP4的子终止位置点位于不同地图区域,则可以将寻路子任务PP1、PP2以及PP3的路径,以及PP4的阶段子路径保存作为寻路任务的部分目标路径,然后更新寻路任务的起始位位置点为此阶段终止位置点,对更新后的寻路任务进行寻路,得到又一部分目标路径,这两个部分目标路径组成寻路任务的目标路径。
在一些实施例中,地图区域包括地图基础区块,步骤“对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径”,可以包括:
基于地图基础区块,分别确定寻路子任务的子起始、子终止位置点所在的起始区块和终止区块;确定起始区块与终止区块之间的候选地图基础区块;确定每一候选地图基础区块的匹配度,匹配度为候选地图基础区块与终止区块和起始区块的最小移动代价的匹配程度;基于候选区块的匹配程度,确定寻路子任务的阶段终止位置点、以及寻路子任务的起点与阶段终止位置点之间的阶段子路径。
比如,地图基础区块可以为导航网格,导航网格可以基于寻路引擎生成,导航网格包含若干多边形,得到导航网格后,将该导航网格内的多边形作为寻路时的基本寻路单元,通过寻路算法进行寻路,得到起始位置点和终止位置点之间的路径。寻路算法可以为对起始位置点和终止位置点之间的多边形进行评估,评估多边形到起始位置点和终止位置点的移动代价,并基于这些移动成本最终确定包含若干多边形的路径。
在一些实施例中,地图区域包括地图基础区块,步骤“对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径”,可以包括:
从多个候选寻路进程中确定执行当前寻路子任务的当前寻路进程;采用当前寻路进程对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径。
此时,地图导航方法还包括:
在当前阶段终止位置点和寻路子任务的终点不相同、且位于同一地图区域时,将当前寻路子任务的子起始位置点更新为阶段终止位置点,根据候选寻路进程重新确定执行当前寻路子任务的当前寻路进程。
寻路任务包含若干寻路子任务,在进行寻路时,可以通过多线程的方式进行寻路,因此,对寻路子任务更新前和寻路子任务更新后进行寻路所采用的寻路进程可以不相同,计算机设备可以结合进程使用情况,为更新后的寻路子任务分配新的寻路进程。
比如,从三个候选寻路进程中确定执行当前寻路子任务的当前寻路进程(进程1),采用进程1对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径;在当前阶段终止位置点和寻路子任务的终点不相同、且位于同一地图区域时,将当前寻路子任务的子起始位置点更新为阶段终止位置点,从三个候选寻路进程中重新确定执行更新后的寻路子任务的当前寻路进程(进程2)。
104、对所有相邻关键位置点之间的路径进行整合,得到所述寻路任务的目标路径,并展示所述目标路径。
相邻关键位置点之间的路径可以包含多条,需要将其进行整合,才能得到寻路任务的目标路径,整合可以是将多条路径连接起来,具体地,可以获取每一相邻关键点之间的路径的起始位置点,然后根据初始路径内关键位置点的先后顺序信息,确定每一起始位置点的顺序信息,并将起始位置点的顺序信息作为该起始位置点对应的相邻关键点之间的路径的顺序信息,接着,可以根据此顺序信息,将所有相邻关键点之间的路径进行连接,完成连接后,得到的即为寻路任务的目标路径。
比如,将7组相邻关键点之间的路径连接起来,得到该寻路任务的目标路径,并将该目标任务以缩略地图中的线路、或游戏角色行进时的方向指引等的形式展现的游戏玩家的页面上。
本申请实施例首先获取游戏中寻路任务的起始位置点和终止位置点,然后根据起始位置点和终止位置点,加载寻路任务对应的地图信息,地图信息包括若干地图区域和地图区域间的连接位置点,再基于地图信息,确定寻路任务的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点,基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,相邻关键位置点之间的路径包括寻路得到的相邻关键位置点之间的目标地图基础位置点,最终对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
本方案可以先通过地图信息,得到一个寻路任务的初始路径,初始路径包括若干关键位置点,然后以相邻关键位置点为一组,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最终得到寻路任务的目标路径(即寻路结果),区别于现有技术直接对寻路任务的起始位置点和终止位置点进行寻路,使得本方案可以显著提升寻路结果的准确性。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例将服务器处理多个寻路任务为例,对该地图导航方法进行介绍,本实施例的总体流程图可以参见图3,其中:
201、终端获取游戏的寻路任务的任务点,任务点包括起始位置点和终止位置点,并向服务器发送该寻路任务的任务点。
比如,终端A可以获取游戏玩家在游戏中标记的寻路任务1的任务点1,任务点1包括起始位置点和终止位置点,然后向服务器发送该寻路任务1的任务点1;终端B可以获取游戏玩家在游戏中标记的寻路任务2的任务点2,任务点2包括起始位置点和终止位置点,然后向服务器发送该寻路任务2的任务点2。
202、服务器加载该游戏的地图信息,地图信息包括若干地图区域和地图区域间的连接位置点。
比如,服务器在接收到寻路任务1的任务点1以及寻路任务2的任务点2后,可以加载该游戏的地图信息。其中,地图信息可以通过文件进行配置,即将地图信息保存在文件中,此操作可以使计算机设备在需要该地图信息时,直接从存储该文件的存储位置获取该文件,即可实现地图信息的加载;文件可以基于json标记语言进行配置,此方式可以将通过人为划分或脚本程序划分得到的地图信息转化为计算机设备可以读取和操作的形式,方便计算机设备完成本申请介绍的地图导航方法;文件中可以包含地图区域的配置信息,进行配置时,可以先在计算机设备上进行,得到文件,再根据实际使用需求,将文件保存在计算机设备上,或传输至其他特定计算机设备(如服务器)上。
地图区域可以通过网格的方式进行配置,当地图区域通过网格进行配置时,可以根据需求自定义地图区域的数量、单个地图区域的尺寸和形状,当地图较为简单、或对于地图中的细节不需要精确表达时,可以通过此种方式进行配置,操作快速便捷,比如,地图区域可以是1KM*1KM的正方形网格,对于8KM×8KM的正方形区域来说,则该地图包含64个地图区域,一个地图区域也可以包括多个二级地图区域,此时此地图区域为一级地图区域,二级地图区域可以为对一级地图区域进行进一步细分,得到的若干地图区域,地图区域的级数可以表示地图区域的细分程度,比如,一个1KM*1KM的正方形地图区域,可以包括25个0.2KM*0.25KM的二级地图区域。比如,"large":{"3-2":5}表示地图中第三行第二列的地图区域,该地图区域的尺寸属性为“large”,该地图区域的区域编号为“5号区域”。其中,尺寸属性可以是描述地图区域面积的标识,比如,大于A面积的地图区域的尺寸属性为“large”、A面积到B面积之间的地图区域的尺寸数据为“middle”,小于B的地图区域的尺寸属性为“small”。
地图区域也可以基于线条进行配置,线条可以包括直线或曲线,此操作可以对于一些线条型的事物精确描述,如,楼梯、马路、河流等,比如,可以一条直线段为中心,将该直线段左右两侧0.5KM内的矩形区域作为一个地图区域,若该直线段长0.7KM,则该地图区域表示地图中一个1KM*0.7KM的矩形区域,比如,{"16":1000,2000,1500,2500},{"longdepthdist":500},可以表示一地图区域,此地图区域为端点分别为{1000,2000}和{500,2500}的直线段两侧0.5KM内的矩形区域,此地图区域的编号为16。
地图区域也可以通过多边形的形式表现,此操作可以对地图中形状复杂或独特的事物进行更为精确的表达,比如圆形的湖等,在进行具体描述时,比如,{"10":500,500,1000,1000,1000,2000}可以表示一地图区域,该地图区域的编号为10,该地图区域的可以是顶点分别为{500,500}、{1000,1000}、{1000,2000}的三角形区域。
离线文件中还可以包含连接位置点的配置,比如,{"x":333600,"y":545400,"z":1420,"a":"3-5"}可以表示连接“区域3”到“区域5”的连接位置点的三维坐标为{333600,545400,1420}。
203、服务器基于该地图信息,确定寻路任务的初始路径,初始路径包括起始位置点和终止位置点之间的连接位置点中的关键位置点。
204、服务器根据初始路径中的关键位置点,将该寻路任务划分为至少一个寻路子任务,并得到每一寻路子任务的子起始位置点和子终止位置点。
205、服务器对每一寻路子任务进行寻路,得到每一寻路子任务的路径。
206、服务器对所有寻路子任务的路径进行整合,得到该寻路任务的目标路径,并向终端发送该目标路径。
参见图4,地图导航方法的寻路过程可以通过导航库进行,输入任务的起点和终点,导航库可以执行本申请的地图导航方法的逻辑,得到数组形式的目标路径(目标路径可以包含多个路点),数组内可以包含多个数组元素,数组元素可以存储目标路径的路点,比如,可以通过数组{(1,2),(3,4),(5,6),(7,8)}对目标路径进行表达,通过数组表达目标路径可以方便计算机设备读取。
得到目标路径后,可以通过一个AI预测服务器,得到交通工具的预测驾驶动作,比如车辆的加减速、转弯、以及刹车等预测驾驶动作,该预测驾驶动作可以用于提示游戏玩家驾驶车辆时的驾驶操作、或操纵游戏中车辆自动前进时的驾驶动作等。AI预测服务器将得到的预测驾驶动作输出游戏专用服务器,服务器将该预测驾驶动作应用或显示在对应的游戏页面上。
此外,在训练人工智能体(人工智能体可以如游戏中的电脑人)的自动驾驶模型(自动驾驶模型可以为基于深度学习的神经网络模型)时,导航库得到的目标路径可以作为训练样本的标准路径,可以用于评估训练阶段的自动驾驶模型在的输出的驾驶路径的正确性,当自动驾驶模型输出的驾驶路径偏离标准路径时,则给予其惩罚,当自动驾驶模型输出的驾驶路径与标准路径吻合度较高时,则给与其奖励,由此过程,训练好的自动驾驶模型应用在实时游戏环境中时,可以得到更加准确的驾驶路径。
服务器在完成本实施例中的地图导航方法中的步骤202至步骤206时,可以通过寻路系统实现,寻路系统可以包含若干组件,具体地,组件可以包括Init组件、Start组件、GetNext组件、End组件、Release组件、以及IsPointValid组件,其中,Init组件可以初始化该寻路系统,可以向Init组件输入存储地图信息的离线文件的存储路径,以及输入寻路系统的设定线程数,当不手动输入线程数时,线程数默认为1;
Start组件可以完成一次寻路,需要向Start组件输入游戏的地图标识信息,以及寻路任务的任务点(起始位置点和终止位置点),此Start组件可以输出一个迭代器对象;
GetNext组件可以获取Start组件输出的迭代器对象对应的寻路任务的寻路结果,寻路结果可以为数组形式。GetNext组件可以输出若干返回码,返回码可以代表不同的含义,比如,返回码可以是kSuccessFull,代表成功得到了寻路任务的完整路径;返回码可以是kSuccessPartial,代表成功得到了寻路任务的部分路径;返回码可以是kSuccessButNotReachDST,代表返回了寻路任务的路径,但是该路径没有到达寻路任务的终点,只到达了离终点尽可能近的点;返回码可以是kHasFinishied,代表已经完成了寻路任务,勿再重复调用GetNext组件;返回码可以是kTryAgain,代表寻路任务还在运算,稍后重新尝试GetNext组件;返回码可以是kInputPosOutOfRange,代表输入Start组件的起点或终点超出了地图范围;返回码可以是kFail,代表寻路发生错误,失败。
End组件可以停止一次寻路任务,从计算机设备内部释放本次任务的资源;Release组件可以清理寻路系统的所有资源;IsPointValid组件可以判断任意一个位置点是否处于地图的可行走区域上,验证位置点的合法性,若此位置点不处于地图的可行走区域上,则寻路必定返回失败(IsPointValid组件可以返回false)。
具体地,如图5所示,离线配置可以配置地图区域划分信息(地图区域)以及配置地图标记点信息(即连接位置点),通过计算机设备进行线上调用时,可以先调用Init组件,以加载离线配置信息,然后调用Start组件,并输出寻路任务的起点和终点,开始进行寻路,接着可以调用GetNext组件,得到返回码,当返回码为kTryAgain、kSuccessPartial时,可以以设定时间间隔再次返回调用GetNext组件,当返回码为kFail、kInputPosOutOfRange、kSuccessFull、以及kSuccessButNotReachDST时,可以继续调用End组件,停止此次寻路任务,并调用Release组件,清理进行寻路任务时的所有资源。
为了满足存在多个寻路任务时,计算机设备可以高效快速准确的完成寻路,本申请的地图导方法可以通过多线程架构在多核计算机设备上运转,可以将多个寻路任务的多个子任务分配到多个线程中同时进行寻路,显著提高寻路速度和准确性。
通过本申请的技术侧架构可以参见图6,在此图中的任务可以包含下列特点:1、需要通过寻路算法进行寻路;2、包含一个起点和一个终点,3、任务属于一个寻路任务(任务可以携带其所属的寻路任务的标识)。任务可以通过队列进行存储,可以设计多个能够同时进行寻路的线程,当队列中的任务较多时,多线程运行能够极大程度上加快寻路的速度。
本方案可以包括多个可以对应不同寻路任务的迭代器对象(迭代器对象可以存储寻路结果和传输已保存的寻路结果),当寻路任务的路径需要多次寻路才能得到时,可以将每次寻路得到的寻路结果存储到对应的迭代器对象中,最终,将迭代器中的各段路径连接起来,即可得到寻路任务的目标路径。
本方案可以将不同任务通过其携带的寻路任务标识,将任务的结果存放到其所属的寻路任务的迭代器对象中的Navigating组件,Navigating组件还可以根据线程输出的寻路任务的寻路结果进行判断,将需要划分的长距离寻路任务划分为若干寻路子任务,
如图6所示,任务队列中存储若干任务(图中的Task1(任务1)、Task2(任务2),……,Queue Tail(队列尾)),通过Thread1(线程1),……,Thread N(线程N,其中,N为大于0的正整数)同时对多个任务进行寻路,各个线程得到的寻路结果传送到Navigating组件中,其可以将寻路结果保存到该任务所述的迭代器对象中,以及对寻路结果进行判断,满足条件时,将此寻路结果的终点作为起点,生成新的任务,并将任务存储到队列中。其中,可以向Start组件输入一个寻路任务的起点和终点,即进入该寻路架构中,该寻路架构需要通过Init组件加载寻路需要的信息,如导航网格,包含地图信息的配置文件、运行程序必须的文件(如glog)等,GetNext组件可以从迭代器对象中获取寻路结果,Release组件可以释放资源,End组件可以结束寻路任务,并删除迭代器映射表(IterMap)中此寻路任务的映射信息。
如图7所示,在进行寻路时,可以先输入寻路任务的起点和终点(即起始位置点和终止位置点),然后判断起点和终点是否在同一区域(区域即地图区域),当起点和终点在同一区域时,可以从起点开始,向终点寻路,得到给一个寻路结果,寻路结果包括一条路径,路径的起点为寻路任务的起点,路径的终点为一个结果点,接着,可以判断结果点和寻路任务的终点是否相同,当相同时,导航完成,即得到一条路径即为寻路任务的目标路径;当不相同时,判断结果点和寻路任务的终点是否在同一区域,若在同一区域,则可以更新寻路任务的临时起点为该结果点,继续向寻路任务的终点寻路,若不在同一区域,则更新寻路任务的起点为结果点,并返回判断起点和终点是否在同一区域的过程。
当起点和终点不在同一区域时,可以通过查找标记点(标记点即连接位置点)得到一个数组(此数组即寻路任务的初始路径),此数组可以表示为<Marker1,…,Marker N,…,End>(N为大于1的正整数),接着将数组中的Marker1作为临时终点,从寻路任务的起点开始寻路,得到一个寻路结果,寻路结果包括一条路径,路径的起点为寻路任务的起点,路径的终点为一个结果点,当结果点与Marker 1相等时,可以更新临时终点为Marker 2,更新临时起点为Marker1,继续进行寻路,直至寻路到临时终点为寻路任务的终点(终点即图中的数组内的End),即完成此次寻路任务。
当寻路得到的结果点不是临时终点Marker 1时,判断结果点是否与Marker1在同一区域内,当不在时,则将寻路任务的起点更新为此结果点,返回查找标记点,与终点一起存成一个数组的步骤;当在时,将寻路任务的临时起点更新为此结果点,返回从临时起点到临时终点寻路的步骤。
本实施例中,终端获取游戏的寻路任务的任务点,任务点包括起始位置点和终止位置点,并向服务器发送该寻路任务的任务点,服务器加载该游戏的地图信息,地图信息包括若干地图区域和地图区域间的连接位置点,服务器基于该地图信息,确定寻路任务的初始路径,初始路径包括起始位置点和终止位置点之间的连接位置点中的关键位置点,服务器根据初始路径中的关键位置点,将该寻路任务划分为至少一个寻路子任务,并得到每一寻路子任务的子起始位置点和子终止位置点,服务器对每一寻路子任务进行寻路,得到每一寻路子任务的路径,服务器对所有寻路子任务的路径进行整合,得到该寻路任务的目标路径,并向终端发送该目标路径。
本方案可以将一个长距离的寻路任务划分为若干短距离的寻路子任务,并对每一寻路子任务进行寻路,再将每一寻路子任务的寻路结果整个起来,最终得到寻路任务的寻路结果,从而实现了长距离寻路的快速准确完成,此外,当服务器执行本方案时,如果包含多个寻路任务,服务器可以通过为每一寻路任务对应一迭代器、队列存储、以及多线程/多进程进行的方式,实现多任务时的快速进行,降低了传统方案进行多任务时可能存在的拥塞问题的发生可能性。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。
本实施例中,地图导航方法可以集成在服务器的一个寻路系统中,该寻路系统在进行寻路时,需要接收寻路任务的任务点,任务点包括起始位置点和终止位置点,该系统可以同时接收多个寻路任务的任务点,然后加载每个寻路任务对应的地图的地图信息,地图信息可以由游戏开发人员根据游戏场景的特点进行灵活配置,地图信息主要包括若干地图区域,和不同地图区域之间的连接位置点。
该寻路系统可以根据寻路任务对应的地图信息,得到寻路任务的初始路径,初始路径上的路点为若干连接位置点,这些连接位置点可以起始位置点和终止位置点之间的地图区域的连接位置点,具体地,可以将地图信息中的地图区域作为寻路的基本区块,对起始位置点和终止位置点之间的地图区域进行遍历以及判断,得到一条包含若干地图区域的区域路径,再确定此区域路径上的相邻地图区域的关键位置连接点,最终得到包含起始位置点、终止位置点以及关键位置连接点的初始路径。
接着该寻路系统可以根据初始路径,将该寻路任务划分为若干寻路子任务,再对一个寻路任务的每一个寻路子任务进行寻路,并对每一个寻路子任务的路径进行整个,得到寻路任务的目标路径。在对子任务进行寻路时,本实施例可以基于目前常见的虚拟引擎4(Unreal Engine4)、以及Unity3D游戏引擎所使用的寻路算法,该寻路算法基于RecastDetour方法(一种开源的寻路算法),此方法包含Recast模块和Detour模块,Recast模块可以负责根据提供的模型生成导航网格(凸多边形),即通过凸多边形描述三维游戏场景中的可行走区域。
具体地,Recast模块生成导航模块的具体过程可以参见图8,首先将该三维场景地图转化为体素,体素可以是是数字数据于三维空间分割上的最小单位,类似于二维图像中的最小单位(像素),然后可以剔除其中的不可行走的体素,得到一个基础可行走面,接着,可以将基础可行走面进行切分,切分为若干尽量大、连续、以及封闭(如区域中间没有“洞”)的区域,然后把体素空间转换到顶点空间,以体素为基本单位,得到区域的轮廓,此时的轮廓线呈锯齿状,因此需要对边缘进行简化,得到轮廓线尽可能纸的轮廓,再对轮廓进行切分,每个轮廓可以包含多个凸多边形,每一个凸多边形内的任意两点可以在二维平面内到达,再把每一个凸多边形进行切分,得到若干三角形,这些三角形作为寻路的基本单元(基本区块),此时所有三角形组成的地图即为导航网格。
然后,Detour模块可以基于此导航网格进行寻路,Detour模块可以使用A*算法进行寻路。A*算法可以是从起始位置点一侧开始,对起始位置点所在的寻路基本区块和终止位置点所在的寻路基本区块之间的基本区块进行遍历和打分,从而获得寻路得到的结果路径上的目标基本区块。
寻路算法可以设置寻路搜索深度,寻路搜索深度可以是在导航网格上进行寻路时,寻路算法所遍历的多边形面数最大值,比如,在通过A*算法进行寻路时,可以设置遍历的三角形的数量最大值。对于开发或相关人员来说,可以根据实际需求设置寻路算法的寻路搜索深度,从而更加匹配每一地图的实际情况,提高寻路的速度和准确性。
传统的基于RecastDetour方法在接收起始位置点和终止位置点之间距离较长的寻路任务时,由于该方法自身的特性,可能会出现寻路错误,或寻路时间过长的情况,比如,可能会出现得到的路径没有达到终点,而是将某一局部最优位置点作为终点,输出错误的路径,但是本方案的寻路系统中,将长距离的寻路任务划分为若干距离较短的寻路子任务,有效避免了此问题,
参见图9中的左图,是直接使用传统方式进行寻路时得到的错误结果,起点和终点分别位于河流的两侧,此方式进行寻路时,在起点所在的河岸侧陷入最优,虽然遍历到最大搜索深度,但实际上并不是起点到终止之间路径,而在图9中的右图内,同样的寻路任务,在配置的地图信息中,将两个河岸、桥划分为三个地图区域,因此得到了包含起点、Mark1(标记点1)、Mark2(标记点2)、和终点的初始路径,根据初始路径将寻路任务划分为三个子任务,分别是从起点到Mark1的子任务、从Mark1到Mark2的子任务、以及从Mark2到终点的子任务,然后本方案的寻路系统对这三个子任务分别寻路,最终可以得到从起点到终点的正确路径。
在本方案的寻路系统中,底层算法是基于Detour模块的,因此,在对子任务进行寻路时,由于Detour模块自身的特点,可能会出现如图10左图中的情况,即即时起点和终点位于同一区域(河岸的一侧),但是Detour模块在寻路时仍然导向其他地图区域,并陷入局部最优,得到错误的寻路结果,因此本方案的寻路系统在设计时,会对寻路得到的线路的阶段终点进行判断,当阶段终点和寻路任务终点不一致且位于不同区域时,需要将该寻路任务的起点更新为该阶段终点再继续进行寻路,如图10中的右图,将该陷入局部最优的阶段终点最为一个寻路任务的新起点,重新获取新起点到终点之间的初始路径,并据此得到该寻路任务的完整正确路径。
本方案可以有效解决现有技术的缺点长距离寻路准确性过低的缺点,同时,本方案在基于RecastDetour方法的寻路系统中,对于此方法可能影响寻路准确性的缺陷提出了切实有效的解决方法,使得本方案的寻路系统可以高效快速准确的进行寻路。
为便于更好的实本申请实施例提供的地图导航方法,本申请实施例还提供一种基于上述地图导航方法的装置。其中名词的含义与上述地图导航方法中相同,具体实现细节可以参考方法实施例中的说明。
如图11所示,图11为本申请一实施例提供的地图导航装置的结构示意图,其中该地图导航装置可以包括获取模块301、确定模块302、寻路模块303和整合模块304,其中:
获取模块301,用于获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图;
确定模块302,用于确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点;
寻路模块303,用于基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;
整合模块304,用于对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
在本申请的一些实施例中,如图12所示,寻路模块303包括划分子模块3031以及寻路子模块3032,其中,
划分子模块3031,用于根据初始路径上的相邻关键位置点,对寻路任务进行划分,得到至少一个寻路子任务、以及每一个寻路子任务的子起始位置点和子终止位置点;
寻路子模块3032,用于在每一个寻路子任务的子起始位置点和子终止位置点之间的地图基础位置点上,对每一个寻路子任务进行寻路确定每一个寻路子任务的路径,得到每一组相邻关键位置点之间的路径。
在本申请的一些实施例中,寻路子模块3032包括寻路单元和确定单元,其中,
寻路单元,用于对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径;
确定单元,用于基于寻路子任务的子起始位置点和子终止位置点、以及阶段子路径,确定寻路子任务的路径。
在本申请的一些实施例中,确定单元具体用于:
在当前阶段终止位置终点和寻路子任务的子终止位置点相同时,将当前存在的所有阶段子路径组成的路径确定为寻路子任务的路径;
在当前阶段终止位置点和寻路子任务的子终止位置点不相同、且位于同一地图区域时,将寻路子任务的子起始位置点更新为阶段终止位置点;返回对寻路子任务进行寻路的步骤;
当阶段终止位置点和寻路子任务的子终止位置点位于不同地图区域时,将寻路任务的起始位置点更新为阶段终止位置点,返回基于地图信息,确定寻路任务的初始路径的步骤。
在本申请的一些实施例中,地图区域包括地图基础区块,寻路单元具体用于:
基于地图基础区块,分别确定寻路子任务的子起始、子终止位置点所在的起始区块和终止区块;
确定起始区块与终止区块之间的候选地图基础区块;
确定每一候选地图基础区块的匹配度,匹配度为候选地图基础区块与终止区块和起始区块的最小移动代价的匹配程度;
基于候选区块的匹配程度,确定寻路子任务的阶段终止位置点、以及寻路子任务的起点与阶段终止位置点之间的阶段子路径。
在本申请的一些实施例中,如图13所示,确定模块302包括区域子模块3021和路径子模块3022,其中,
区域子模块3021,用于根据地图中的地图区域,对初始区域和终止区域之间的区域进行寻路,得到寻路任务的区域路径,区域路径包括至少一个地图区域;
路径子模块3022,用于确定区域路径中相邻地图区域之间的连接位置点,得到寻路任务的初始路径。
在本申请的一些实施例中,路径子模块3032具体用于:
根据地图中的地图区域,对初始区域和终止区域之间的区域进行寻路,得到寻路任务的区域路径,区域路径包括至少一个地图区域;
确定区域路径中相邻地图区域之间的连接位置点,得到寻路任务的初始路径。
在本申请的一些实施例中,寻路单元具体用于:
从多个候选寻路进程中确定执行当前寻路子任务的当前寻路进程;
采用当前寻路进程对寻路子任务进行寻路,得到寻路子任务的阶段终止位置点、以及寻路子任务的子起始位置点与阶段终止位置点之间的阶段子路径。
此时,地图导航装置还包括更新模块,其中,
更新模块,用于在当前阶段终止位置点和寻路子任务的终点不相同、且位于同一地图区域时,将当前寻路子任务的子起始位置点更新为阶段终止位置点,根据候选寻路进程重新确定执行当前寻路子任务的当前寻路进程。
本申请实施例中,获取模块301首先获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图,确定模块302再确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点,寻路模块303基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最后整合模块304对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
本方案可以先通过地图信息,得到一个寻路任务的初始路径,初始路径包括若干关键位置点,然后以相邻关键位置点为一组,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径,最终得到寻路任务的目标路径(即寻路结果),区别于现有技术直接对寻路任务的起始位置点和终止位置点进行寻路,使得本方案可以显著提升寻路结果的准确性。
此外,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,如图14所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图14中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图;确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点;基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种地图导航方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取寻路任务的起始位置点和终止位置点,加载寻路任务对应的地图;确定寻路任务在地图上的初始路径,初始路径包括关键位置点,关键位置点为位于起始位置点与终止位置点之间的连接位置点;基于初始路径中的每一组相邻关键位置点,在每一组相邻关键位置点之间的地图基础位置点上,对每一组相邻关键位置点进行寻路,得到每一组相邻关键位置点之间的路径;对所有相邻关键位置点之间的路径进行整合,得到寻路任务的目标路径,并展示目标路径。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种地图导航方法中的步骤,因此,可以实现本申请实施例所提供的任一种地图导航方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种地图导航方法、装置、存储介质和计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种地图导航方法,其特征在于,包括:
获取寻路任务的起始位置点和终止位置点,加载所述寻路任务对应的地图;
确定所述寻路任务在所述地图上的初始路径,所述初始路径包括关键位置点,所述关键位置点为位于所述起始位置点与所述终止位置点之间的连接位置点,所述连接位置点表示一个地图区域向另一个地图区域跳转的位置点;
根据所述初始路径上的相邻关键位置点,对所述寻路任务进行划分,得到至少一个寻路子任务、以及每一个寻路子任务的子起始位置点和子终止位置点;
在对每一个寻路子任务分别寻路的过程中,通过多进程的方式,为每一个寻路子任务分配一个进程,在每一个寻路子任务的子起始位置点和子终止位置点之间的地图基础位置点上,从多个候选寻路进程中确定执行当前寻路子任务的当前寻路进程;
采用所述当前寻路进程对所述寻路子任务进行寻路,得到所述寻路子任务的阶段终止位置点、以及所述寻路子任务的子起始位置点与所述阶段终止位置点之间的阶段子路径,所述阶段终止位置点为进行一次寻路后得到的路径的终止位置点,其中,当前阶段终止位置点和所述寻路子任务的终点不相同,所述当前阶段终止位置点和所述寻路子任务的终点位于同一地图区域;
将当前寻路子任务的子起始位置点更新为所述阶段终止位置点,根据候选寻路进程重新确定执行当前寻路子任务的当前寻路进程;
基于所述寻路子任务的子起始位置点和子终止位置点、以及所述阶段子路径,确定所述寻路子任务的路径,以得到每一组相邻关键位置点之间的路径;
对所有相邻关键位置点之间的路径进行整合,得到所述寻路任务的目标路径,并展示所述目标路径。
2.根据权利要求1所述的方法,其特征在于,所述基于所述寻路子任务的子起始位置点和子终止位置点、以及所述阶段子路径,确定所述寻路子任务的路径,包括:
在当前阶段终止位置终点和所述寻路子任务的子终止位置点相同时,将当前存在的所有阶段子路径组成的路径确定为所述寻路子任务的路径;
在当前阶段终止位置点和所述寻路子任务的子终止位置点不相同、且位于同一地图区域时,将所述寻路子任务的子起始位置点更新为所述阶段终止位置点;返回对寻路子任务进行寻路的阶段子路径的步骤。
3.根据权利要求2所述的方法,其特征在于,所述基于所述寻路子任务的子起始位置点和子终止位置点、以及所述阶段子路径,确定所述寻路子任务的路径,还包括:
当所述阶段终止位置点和所述寻路子任务的子终止位置点位于不同地图区域时,将所述寻路任务的起始位置点更新为所述阶段终止位置点,返回基于所述地图信息,确定所述寻路任务的初始路径的步骤。
4.根据权利要求1所述的方法,其特征在于,所述地图区域包括地图基础区块,
所述采用所述当前寻路进程对所述寻路子任务进行寻路,得到所述寻路子任务的阶段终止位置点、以及所述寻路子任务的子起始位置点与所述阶段终止位置点之间的阶段子路径,包括:
基于所述地图基础区块,分别确定所述寻路子任务的子起始、子终止位置点所在的起始区块和终止区块;
确定所述起始区块与所述终止区块之间的候选地图基础区块;
确定每一候选地图基础区块的匹配度,所述匹配度为所述候选地图基础区块与所述终止区块和所述起始区块的最小移动代价的匹配程度;
基于所述候选地图基础区块的匹配程度,确定所述寻路子任务的阶段终止位置点、以及所述寻路子任务的起点与所述阶段终止位置点之间的阶段子路径。
5.根据权利要求1所述的方法,其特征在于,所述确定所述寻路任务在所述地图上的初始路径,包括:
分别确定所述寻路任务的起始、终止位置点在所述地图中的起始区域和终止区域;
基于所述起始区域和所述终止区域之间的连接位置点,确定所述寻路任务的初始路径。
6.根据权利要求5所述的方法,其特征在于,所述基于所述起始区域和所述终止区域之间的连接位置点,确定所述寻路任务的初始路径,包括:
根据所述地图中的地图区域,对所述起始区域和所述终止区域之间的区域进行寻路,得到所述寻路任务的区域路径,所述区域路径包括至少一个地图区域;
确定所述区域路径中相邻地图区域之间的连接位置点,得到所述寻路任务的初始路径。
7.一种地图导航装置,其特征在于,包括:
获取模块,用于获取寻路任务的起始位置点和终止位置点,加载所述寻路任务对应的地图;
确定模块,用于确定所述寻路任务在所述地图上的初始路径,所述初始路径包括关键位置点,所述关键位置点为位于所述起始位置点与所述终止位置点之间的连接位置点,所述连接位置点表示一个地图区域向另一个地图区域跳转的位置点;
寻路模块,用于根据所述初始路径上的相邻关键位置点,对所述寻路任务进行划分,得到至少一个寻路子任务、以及每一个寻路子任务的子起始位置点和子终止位置点;在对每一个寻路子任务分别寻路的过程中,通过多进程的方式,为每一个寻路子任务分配一个进程,在每一个寻路子任务的子起始位置点和子终止位置点之间的地图基础位置点上,从多个候选寻路进程中确定执行当前寻路子任务的当前寻路进程;采用所述当前寻路进程对所述寻路子任务进行寻路,得到所述寻路子任务的阶段终止位置点、以及所述寻路子任务的子起始位置点与所述阶段终止位置点之间的阶段子路径,所述阶段终止位置点为进行一次寻路后得到的路径的终止位置点,其中,当前阶段终止位置点和所述寻路子任务的终点不相同,所述当前阶段终止位置点和所述寻路子任务的终点位于同一地图区域;将当前寻路子任务的子起始位置点更新为所述阶段终止位置点,根据候选寻路进程重新确定执行当前寻路子任务的当前寻路进程;基于所述寻路子任务的子起始位置点和子终止位置点、以及所述阶段子路径,确定所述寻路子任务的路径,以得到每一组相邻关键位置点之间的路径;
整合模块,用于对所有相邻关键位置点之间的路径进行整合,得到所述寻路任务的目标路径,并展示所述目标路径。
8.如权利要求7所述的地图导航装置,其特征在于,所述寻路模块,包括:
在当前阶段终止位置终点和所述寻路子任务的子终止位置点相同时,将当前存在的所有阶段子路径组成的路径确定为所述寻路子任务的路径;
在当前阶段终止位置点和所述寻路子任务的子终止位置点不相同、且位于同一地图区域时,将所述寻路子任务的子起始位置点更新为所述阶段终止位置点;返回对寻路子任务进行寻路的步骤;
当所述阶段终止位置点和所述寻路子任务的子终止位置点位于不同地图区域时,将所述寻路任务的起始位置点更新为所述阶段终止位置点,返回基于所述地图信息,确定所述寻路任务的初始路径的步骤。
9.如权利要求8所述的地图导航装置,其特征在于,所述地图区域包括地图基础区块,所述寻路模块,包括:
基于所述地图基础区块,分别确定所述寻路子任务的子起始、子终止位置点所在的起始区块和终止区块;
确定所述起始区块与所述终止区块之间的候选地图基础区块;
确定每一候选地图基础区块的匹配度,所述匹配度为所述候选地图基础区块与所述终止区块和所述起始区块的最小移动代价的匹配程度;
基于所述候选地图基础区块的匹配程度,确定所述寻路子任务的阶段终止位置点、以及所述寻路子任务的起点与所述阶段终止位置点之间的阶段子路径。
10.如权利要求7所述的地图导航装置,其特征在于,所述确定模块,包括:
分别确定所述寻路任务的起始、终止位置点在所述地图中的起始区域和终止区域;
基于所述起始区域和所述终止区域之间的连接位置点,确定所述寻路任务的初始路径。
11.如权利要求10所述的地图导航装置,其特征在于,所述确定模块,包括:
区域子模块,用于根据所述地图中的地图区域,对所述起始区域和所述终止区域之间的区域进行寻路,得到所述寻路任务的区域路径,所述区域路径包括至少一个地图区域;
路径子模块,用于确定所述区域路径中相邻地图区域之间的连接位置点,得到所述寻路任务的初始路径。
12.一种存储介质,其特征在于,所述存储介质存储有多条计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1至6任一项方法中的步骤。
13.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010304876.0A CN112742030B (zh) | 2020-04-17 | 2020-04-17 | 一种地图导航方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010304876.0A CN112742030B (zh) | 2020-04-17 | 2020-04-17 | 一种地图导航方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112742030A CN112742030A (zh) | 2021-05-04 |
CN112742030B true CN112742030B (zh) | 2022-08-09 |
Family
ID=75645469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010304876.0A Active CN112742030B (zh) | 2020-04-17 | 2020-04-17 | 一种地图导航方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112742030B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115639578B (zh) * | 2022-12-20 | 2023-04-28 | 广东新禾道信息科技有限公司 | 一种北斗导航定位监测处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378517A (zh) * | 2019-06-20 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 出行目的预测方法、装置、计算设备和可读存储介质 |
CN110523081B (zh) * | 2019-08-08 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 导航寻路路径的规划方法及装置 |
-
2020
- 2020-04-17 CN CN202010304876.0A patent/CN112742030B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112742030A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jia et al. | A dynamic logistic dispatching system with set-based particle swarm optimization | |
Leiser et al. | The traveller: A computational model of spatial network learning | |
Kuipers et al. | The skeleton in the cognitive map: A computational and empirical exploration | |
Car et al. | General principles of hierarchical spatial reasoning-the case of wayfinding | |
CN111651538B (zh) | 一种位置映射方法、装置、设备及可读存储介质 | |
CN101493329A (zh) | 一种多目标点路径规划方法和装置 | |
CN111375205A (zh) | 游戏中寻路路径的处理方法、装置、电子设备及存储介质 | |
CN113375689B (zh) | 导航方法、装置、终端和存储介质 | |
CN111298439A (zh) | 数据处理方法、装置、介质及电子设备 | |
CN113191550A (zh) | 地图匹配方法及装置 | |
CN112742030B (zh) | 一种地图导航方法、装置、存储介质和计算机设备 | |
Carrabs et al. | An adaptive heuristic approach to compute upper and lower bounds for the close-enough traveling salesman problem | |
CN112101676A (zh) | 一种乘车路径规划方法、装置、计算机设备及存储介质 | |
CN116518960A (zh) | 路网更新方法、装置、电子设备和存储介质 | |
Rahmani et al. | Multi-agent parallel hierarchical path finding in navigation meshes (MA-HNA*) | |
Tucnik et al. | Comparative analysis of selected path-planning approaches in large-scale multi-agent-based environments | |
Zhu et al. | Computer application in game map path-finding based on fuzzy logic dynamic hierarchical ant colony algorithm | |
CN112699203B (zh) | 路网数据的处理方法和装置 | |
Delling et al. | Robust mobile route planning with limited connectivity | |
CN114943407A (zh) | 区域规划方法、装置、设备、可读存储介质及程序产品 | |
Menšík et al. | Heuristics for spatial data descriptions in a multi-agent system | |
Han et al. | Robot path planning in dynamic environments based on deep reinforcement learning | |
Iqbal et al. | Design and Implementation of Pathfinding Algorithms in Unity 3D | |
CN115129797A (zh) | 电子地图的处理方法、装置、设备以及存储介质 | |
Parkinson | Models for Human Navigation and Optimal Path Planning Using Level Set Methods and Hamilton-Jacobi Equations |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40043862 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |