【技术领域】
本发明涉及计算机应用技术领域,尤其涉及一种导航路径推荐方法、导航服务器、计算机设备及可读介质。
背景技术:
导航应用的出现,大大地方便了用户的出行,不仅可以为用户提供步行导航,同时还可以为自驾车的用户提供车辆出行导航,使用非常方便。
现有技术中,导航的路径规划是基于道路的长度、宽度、车道数、限速等采集到的物理属性来计算出特定起点和终点间的最优路线。但是受限于现实世界交通的复杂性,基于有限几个维度的数据采集并不具备刻画复杂现实交通世界的能力,因此很多起点和终点下的导航算出的最优路线,并不是大众用户认可的常规路线。而能否给用户推荐出真正意义的大众常规路线对于导航的路径规划来说是极度重要的。因此,亟需提供一种能够为用户推荐常规路线的导航路径推荐方案。
技术实现要素:
本发明提供了一种导航路径推荐方法、导航服务器、计算机设备及可读介质,用于弥补现有技术的不足,提供一种能够为用户推荐常规路线的导航路径推荐方案。
本发明提供一种导航路径推荐方法,所述方法包括:
接收用户发起的携带导航起点和导航终点的导航请求;
从预先建立的常规路线集合中获取所述导航起点和所述导航终点对应的常规路线;
向所述用户推荐所述常规路线。
进一步可选地,如上所述的方法中,所述常规路线集合中包括多条常规路线、每一条所述常规路线对应的起点区域信息和终点区域信息;
进一步地,从预先建立的常规路线集合中获取所述导航起点和所述导航终点对应的常规路线,具体包括:
根据所述常规路线集合中各所述起点区域、各所述终点区域以及所述导航起点和所述导航终点,获取所述导航起点所属的目标起点区域信息和所述导航终点所属的目标终点区域信息;
从所述常规路线集合中获取所述目标起点区域信息对应的目标起点区域至所述目标终点区域信息对应的目标终点区域之间的常规路线。
进一步可选地,如上所述的方法中,从预先建立的常规路线集合中获取所述导航起点和所述导航终点对应的常规路线之前,所述方法还包括:
采集所述导航起点和所述导航终点所在的目标地理区域内的历史导航数据;
根据所述历史导航数据,在所述目标地理区域内挖掘多条常规路线以及各所述常规路线对应的起点区域和所述终点区域,构成所述常规路线集合;每条常规路线对应一组所述起点区域的标识和所述终点区域的标识。
进一步可选地,如上所述的方法中,根据所述历史导航数据,在所述目标地理区域内挖掘多条常规路线以及各所述常规路线对应的起点区域和所述终点区域,构成所述常规路线集合,具体包括:
对所述历史导航数据中的各次历史导航的起点和终点进行数据清洗;
根据清洗后的所述历史导航数据,统计各所述起点和所述终点的邻域点密度;
根据各所述起点和各所述终点的邻域点密度,获取对应的所述起点区域和所述终点区域;
根据清洗后的所述历史导航数据,统计多组所述起点区域和所述终点区域中各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离;
根据各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离,计算对应的所述起点区域到所述终点区域之间的各所述导航轨迹的常规度;
根据各组所述起点区域到所述终点区域之间的各所述导航轨迹的常规度,从各组所述起点区域到所述终点区域之间的所述多条导航轨迹中获取一条所述常规路线;
将多组所述起点区域到所述终点区域对应的所述常规路线、对应的所述起点区域和所述终点区域,存储在所述常规路线集合中。
进一步可选地,如上所述的方法中,根据各所述起点和各所述终点的邻域点密度,获取对应的所述起点区域和所述终点区域,具体包括:
获取以各所述起点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的所述起点,作为对应的所述起点区域的中心点位置;
获取以各所述终点为圆心、所述预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的所述终点,作为对应的所述终点区域的中心点位置;
以预设长度阈值为步长,逐步增大所述起点区域的半径,直到增大后的所述起点区域相对于增大前的所述起点区域所覆盖的点密度未增加至预设比例,确定所述起点区域的所述起点半径;
以所述预设长度阈值为步长,逐步增大所述终点区域的半径,直到增大后的所述终点区域相对于增大前的所述终点区域所覆盖的点密度未增加至预设比例,确定所述终点区域的终点半径。
进一步可选地,如上所述的方法中,根据各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离,计算对应的所述起点区域到所述终点区域之间的各所述导航轨迹的常规度,具体包括:
根据各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径各所述道路的频次,计算各所述道路的转移概率;
根据各组所述起点区域到所述终点区域之间的各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离,计算各组所述起点区域到所述终点区域之间的各所述导航轨迹途径的各所述道路的区间期望长度;
根据各组所述起点区域到所述终点区域之间的各条所述导航轨迹中实际经过的各所述道路的实际长度、各所述道路的转移概率以及各所述道路的区间期望长度,计算对应的所述起点区域到所述终点区域之间的各所述导航轨迹的常规度。
本发明提供一种导航服务器,所述服务器包括:
接收模块,用于接收用户发起的携带导航起点和导航终点的导航请求;
获取模块,用于从预先建立的常规路线集合中获取所述导航起点和所述导航终点对应的常规路线;
推荐模块,用于向所述用户推荐所述常规路线。
进一步可选地,如上所述的服务器中,所述常规路线集合中包括多条常规路线、每一条所述常规路线对应的起点区域信息和终点区域信息;
进一步地,所述获取模块,具体用于:
根据所述常规路线集合中各所述起点区域、各所述终点区域以及所述导航起点和所述导航终点,获取所述导航起点所属的目标起点区域信息和所述导航终点所属的目标终点区域信息;
从所述常规路线集合中获取所述目标起点区域信息对应的目标起点区域至所述目标终点区域信息对应的目标终点区域之间的常规路线。
进一步可选地,如上所述的服务器中,所述服务器还包括:
采集模块,用于采集所述导航起点和所述导航终点所在的目标地理区域内的历史导航数据;
挖掘模块,用于根据所述历史导航数据,在所述目标地理区域内挖掘多条常规路线以及各所述常规路线对应的起点区域和所述终点区域,构成所述常规路线集合;每条常规路线对应一组所述起点区域的标识和所述终点区域的标识。
进一步可选地,如上所述的服务器中,所述挖掘模块,具体用于:
对所述历史导航数据中的各次历史导航的起点和终点进行数据清洗;
根据清洗后的所述历史导航数据,统计各所述起点和所述终点的邻域点密度;
根据各所述起点和各所述终点的邻域点密度,获取对应的所述起点区域和所述终点区域;
根据清洗后的所述历史导航数据,统计多组所述起点区域和所述终点区域中各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离;
根据各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离,计算对应的所述起点区域到所述终点区域之间的各所述导航轨迹的常规度;
根据各组所述起点区域到所述终点区域之间的各所述导航轨迹的常规度,从各组所述起点区域到所述终点区域之间的所述多条导航轨迹中获取一条所述常规路线;
将多组所述起点区域到所述终点区域对应的所述常规路线、对应的所述起点区域和所述终点区域,存储在所述常规路线集合中。
进一步可选地,如上所述的服务器中,所述挖掘模块,具体用于:
获取以各所述起点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的所述起点,作为对应的所述起点区域的中心点位置;
获取以各所述终点为圆心、所述预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的所述终点,作为对应的所述终点区域的中心点位置;
以预设长度阈值为步长,逐步增大所述起点区域的半径,直到增大后的所述起点区域相对于增大前的所述起点区域所覆盖的点密度未增加至预设比例,确定所述起点区域的所述起点半径;
以所述预设长度阈值为步长,逐步增大所述终点区域的半径,直到增大后的所述终点区域相对于增大前的所述终点区域所覆盖的点密度未增加至预设比例,确定所述终点区域的终点半径。
进一步可选地,如上所述的服务器中,所述挖掘模块,具体用于:
根据各组所述起点区域到所述终点区域之间的多条导航轨迹的总数、以及各所述导航轨迹途径各所述道路的频次,计算各所述道路的转移概率;
根据各组所述起点区域到所述终点区域之间的各所述导航轨迹途径的道路的标识、途径各所述道路的频次以及途径各所述道路的距离,计算各组所述起点区域到所述终点区域之间的各所述导航轨迹途径的各所述道路的区间期望长度;
根据各组所述起点区域到所述终点区域之间的各条所述导航轨迹中实际经过的各所述道路的实际长度、各所述道路的转移概率以及各所述道路的区间期望长度,计算对应的所述起点区域到所述终点区域之间的各所述导航轨迹的常规度。
本发明还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的导航路径推荐方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的导航路径推荐方法。
本发明的导航路径推荐方法、导航服务器、计算机设备及可读介质,通过接收用户发起的携带导航起点和导航终点的导航请求;从预先建立的常规路线集合中获取导航起点和导航终点对应的常规路线;向用户推荐常规路线。本发明的技术方案,与现有的导航路径推荐方案相比,能够为用户推荐被其他大众用户认可的常规路线,该常规路线更能够体现在现实世界中大众在导航起点到导航终点的交通路径选择,因此,本发明推荐的常规路线能够很好地满足用户的需求,提高用户的使用体验度。
【附图说明】
图1为本发明的导航路径推荐方法实施例一的流程图。
图2为本发明的导航路径推荐方法实施例二的流程图。
图3为本发明的导航服务器实施例一的结构图。
图4为本发明的导航服务器实施例二的结构图。
图5为本发明的计算机设备实施例的结构图。
图6为本发明提供的一种计算机设备的示例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的导航路径推荐方法实施例一的流程图。如图1所示,本实施例的导航路径推荐方法,具体可以包括如下步骤:
100、接收用户发起的携带导航起点和导航终点的导航请求;
101、从预先建立的常规路线集合中获取导航起点和导航终点对应的常规路线;
102、向用户推荐常规路线。
本实施例的导航路径推荐方法的执行主体为导航装置,该导航装置可以挖掘导航起点到导航终点之间的常规路线,并推荐给用户。本实施例的导航装置可以设置在导航服务器侧,也可以设置在用户终端侧。
本实施例中,首先,导航服务器可以接收用户通过客户端发送的携带导航起点和导航终点的导航请求。然后导航服务器可以根据导航请求中的导航起点和导航终点,从预先建立的常规路线集合中,获取该导航起点和导航终点之间的常规路线,并推荐给用户。该常规路线通常并不一定是导航服务器根据通用的路径推荐算法所推荐的路径。
可选地,本实施例的预先建立的常规路线集合中可以包括多条常规路线、每一条常规路线对应的起点区域信息和终点区域信息,其中起点区域信息可以包括起点区域的标识如起点区域id)、起点区域的中心点位置和起点区域半径。终点区域信息包括终点区域的标识(如终点区域id)、终点区域的中心点位置和终点区域半径。也就是说,在常规路线集合中,所包括的每一条常规路线并不是一条点到点的常规路线,而是一个区域到区域的常规路线。本实施例的起点区域和终点区域可以分别为多个实际起点簇拥在一定的区域内形成的类簇区域,和多个实际终点簇拥在一定的区域内形成的类簇区域。本实施例中以起点区域和终点区域都是圆形区域为例,在常规路线集合中,可以记录有每一条常规路线对应的起点区域和终点区域,其中起点区域可以采用起点区域的中心点位置和起点半径来表示,对应的终点区域可以采用终点区域的中心点位置和终点半径来表示。其中起点区域的中心点位置和终点区域的中心点位置可以采用经纬度坐标来表示。起点半径和终点半径可以根据实际情况,设置为300米、500米或者其他数值的,在此不做具体的限定。需要说明的是,本实施例中,不同的起点区域和终点区域对应的起点半径和终点半径可以是相同,也可以不相同。
例如,此时步骤101,具体可以包括如下步骤:
(a1)根据常规路线集合中各起点区域、各终点区域以及导航起点和导航终点,获取导航起点所属的目标起点区域的标识和导航终点所属的目标终点区域的标识;
(b1)从常规路线集合中获取目标起点区域的标识对应的目标起点区域至目标终点区域的标识对应的目标终点区域之间的常规路线。
具体地,用户的导航请求中的导航起点和导航终点可能为一个实际的表示位置的名称,如x路y号或者z大厦北口等等。导航服务器接收到导航请求之后,先要进行位置信息转换,可以获取到导航起点的地理坐标和导航终点的地理坐标。然后根据常规路线集合中各起点区域和各终点区域获取本次导航请求的导航起点所落的起点区域作为导航起点所属的目标起点区域,导航终点所落的终点区域作为导航终点所属的目标终点区域;并获取对应的目标起点区域的标识和目标终点区域的标识。其中常规路线集合中的起点区域可以采用采用起点区域的中心位置和对应的起点半径来表示,终点区域可以采用终点区域对应的中心点位置和对应的终点半径来表示。最后,从常规路线集合中获取目标起点区域的标识对应的目标起点区域至目标终点区域的标识对应的目标终点区域之间的常规路线,作为本次导航请求的导航起点到导航终点之间的常规路线。也就是说,本实施例的常规路线集合中包括多条常规路线,每一条常规路线对应的起点区域标识、终点区域标识、起点区域的表示和终点区域的标识。
本实施例的导航路径推荐方法与通用的路径推荐算法推荐的路径的获取方式不一样,获取的常规路线更能够体现其他用户的常规选择,也更能够满足用户的需求。
本实施例的导航路径推荐方法,通过接收用户发起的携带导航起点和导航终点的导航请求;从预先建立的常规路线集合中获取导航起点和导航终点对应的常规路线;向用户推荐常规路线。本实施例的技术方案,与现有的导航路径推荐方案相比,能够为用户推荐被其他大众用户认可的常规路线,该常规路线更能够体现在现实世界中大众在导航起点到导航终点的交通路径选择,因此,本实施例推荐的常规路线能够很好地满足用户的需求,提高用户的使用体验度。
图2为本发明的导航路径推荐方法实施例二的流程图。本实施例的导航路径推荐方法,在上述图1所示实施例的技术方案的基础上,进一步还包括如下常规路线集合的建立的技术方案。如图2所示,本实施例的导航路径推荐方法,具体还可以包括如下步骤:
200、采集导航起点和导航终点所在的目标地理区域内的历史导航数据;
201、根据历史导航数据,在目标地理区域内挖掘多条常规路线以及各常规路线对应的起点区域和终点区域,构成常规路线集合;每条常规路线对应一组起点区域信息和终点区域信息。
本实施例中,以采集同时包括导航起点和导航终点的目标地理区域中的历史导航数据为例。例如若导航起点和导航终点都位于北京市,那么需要采集北京市的历史导航数据。实际应用中,可以按照城市的行政规划,分别采集各个行政区域的历史导航数据,以进行常规线路的挖掘。采集到历史导航数据之后,由于该区域内的用户在导航时,不可能都是从同一个导航起点到达同一个导航终点,所以该区域中可以存在着多组导航起点和导航终点。对于每一组导航起点和导航终点,可以存在一组该导航起点到该导航终点的常规路线。但是如果以每一组导航起点和导航终点为研究对象,常规路线集合中可能会包括导航起点和导航终点都较为接近、路线相似的至少两条常规路线,即存在较多的冗余常规路线。为了避免该现象的发生,本实施例中,可以在导航起点和导航终点周围分别挖掘起点区域和终点区域,该起点区域可以为多个起点的类簇,该终点区域可以为多个终点的类簇。该起点区域到该终点区域的常规路线,可以代表起点区域中任一起点到终点区域中任一终点的常规路线。本实施例的历史导航数据中记录的每一次历史导航数据可以包括本次历史导航的起点、终点以及行驶的轨迹,其中行驶的轨迹中可以包括途径的各道路的标识以及途径的各道路的距离。
进一步可选地,该步骤201“根据历史导航数据,在目标地理区域内挖掘多条常规路线以及各常规路线对应的起点区域和终点区域,构成常规路线集合”,具体可以包括如下步骤:
(a2)对历史导航数据中的各次历史导航的起点和终点进行数据清洗;
本实施例中,具体指的是将各历史导航中的起点的坐标数据和终点的坐标数据进行数据清洗,例如,可以将起点的经纬度坐标和终点的经纬度坐标分别去除小数点后四位的数据,这样,相当于将起点和终点的位置进行泛化,同一个位置可以聚合更多的点。
(b2)根据清洗后的历史导航数据,统计各起点和终点的邻域点密度;
经过清洗后的历史导航数据中,并未删除各历史导航的起点和终点,具体地,在清洗后的历史导航数据中,可能会存在多点聚合在同一位置。统计时,可以以每个起点为圆心、预设覆盖阈值为半径,统计覆盖区域范围内的作为导航起点的点的数量,作为该起点的邻域点密度。本实施例的预设覆盖阈值可以根据实际需求来选取,例如可以取100米、200米、300米或者500米等数值。同理,也可以统计以每个终点为圆心、预设覆盖阈值为半径,统计覆盖区域范围内的作为导航终点的点的数量,作为该终点的邻域点密度。由上述分析可知,本实施例中的邻域点密度指的是该起点或者终点的gps坐标周围的预设覆盖阈值的邻域范围内、被用户导航算路检索的次数。
(c2)根据各起点和各终点的邻域点密度,获取对应的起点区域和终点区域;
根据上述步骤,可以获取历史导航数据中各起点和各终点的邻域点密度。然后,参考各起点和各终点的邻域点密度,获取对应的起点区域和终点区域。例如,该步骤(c2)具体可以包括如下:
获取以各起点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的起点,作为对应的起点区域的中心点位置;然后以预设长度阈值为步长,逐步增大起点区域的半径,直到增大后的起点区域相对于增大前的起点区域所覆盖的点密度未增加至预设比例,确定起点区域的起点半径;
具体地,获取到邻域点密度最大的起点之后,将该邻域点密度最大的起点作为该起点区域的中心点,该邻域点密度最大的起点的坐标,便是该中心点位置的起点的中心点的坐标。由于已经统计了所有起点的邻域点密度,初始的起点区域可以是以该起点区域的中心点为圆心、预设覆盖阈值为半径的覆盖区域。然后在此基础上,以预设长度阈值为步长,逐步增大起点区域的半径,从而增大起点区域,每增大一次步长,判断增大后的起点区域相对于增大前的起点区域所覆盖的点密度是否增加了预设比例,若未增加了预设比例,则确定起点区域扩大后为覆盖太多的起点,此时起点区域可以不用扩大,仍为之前的起点区域,起点半径不变;否则若增加了预设比例,则表示起点区域扩大后覆盖了更多的起点,此时对应的起点区域扩大,即扩大后的起点区域圆心不变,起点半径变大,起点半径具体为原起点区域的半径加上本次增大的步长。紧接着,以扩大后的起点区域为基础,继续以预设长度阈值为步长,逐步增大起点区域的半径,直到增大后的起点区域相对于增大前的起点区域所覆盖的点密度未增加至预设比例,确定起点区域的起点半径。
同理,获取以各终点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的终点,作为对应的终点区域的中心点位置。然后,以预设长度阈值为步长,逐步增大终点区域的半径,直到增大后的终点区域相对于增大前的终点区域所覆盖的点密度未增加至预设比例,确定终点区域的终点半径。
终点区域的中心点位置和终点区域的终点半径的确定参考上述起点区域的中心点位置和起点区域的起点半径的确定,在此不再赘述。之后,还可以为各起点区域和终点区域分别配置对应的标识,作为对应的类簇的标识,这样,起点区域和终点区域确定完毕。
(d2)根据清洗后的历史导航数据,统计多组起点区域和终点区域中各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离;
每一组起点区域和终点区域确定之后,然后根据清晰的历史导航数据,统计该组中的该起点区域至终点区域之间的每一条导航轨迹的总数,从而相加得到多条导航轨迹的总的数量。同时还需要统计每一条导航轨迹途径的道路的标识,从而可以统计出导航轨迹中途径各道路的频次。
(e2)根据各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离,计算对应的起点区域到终点区域之间的各导航轨迹的常规度;
例如该步骤(e2)具体可以包括如下步骤:
(a3)根据各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径各道路的频次,计算各道路的转移概率;
具体地,可以取所有导航轨迹中各导航轨迹途径某道路的频次/导航轨迹的总数,作为该道路的转移概率。例如假如历史导航数据中共包括a区域到b区域的100条导航轨迹。其中有50条导航轨迹都途径道路c,这样,道路c的转移概率等于50/100=1/2。
(b3)根据各组起点区域到终点区域之间的各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离,计算各组起点区域到终点区域之间的各导航轨迹途径的各道路的区间期望长度;
具体地,各组起点区域到终点区域之间的各导航轨迹途径的各道路的区间期望长度可以理解为途径该道路的平均长度。例如,a区域到b区域的100条导航轨迹中50条导航轨迹途径道路c,其中有10条经过道路c的长度为l1、20条经过道路c的距离为l2、20条经过道路c的距离为l3,这样,a区域到b区域中途径道路c的区间期望长度为=(l1*10+20*l2+20*l3)/50。
(c3)根据各组起点区域到终点区域之间的各条导航轨迹中实际经过的各道路的实际长度、各道路的转移概率以及各道路的区间期望长度,计算对应的起点区域到终点区域之间的各导航轨迹的常规度。
例如,某导航轨迹的常规度的计算可以采用如下公式:
其中min(,)为min(道路的实际长度、道路的区间期望长度)的简写,表示取道路的实际长度和道路的区间期望长度中的小者。max(,)表示max(道路的实际长度、道路的区间期望长度)的简写,表示取道路的实际长度和道路的区间期望长度中的大者;r为道路的转移概率;轨迹的实际长度等于轨迹中包括的各道路的长度之和。
例如,a区域到b区域的某条导航轨迹1途径道路c、道路d和道路e,其中途径道路c的长度为l1、对应的期望长度为l1’,假设l1>l1’,道路c的转移概率等于r1;途径道路d的长度为l4、对应的期望长度为l4’,假设l4<l4’,道路d的转移概率等于r2;途径道路e的长度为l5’、对应的期望长度为l5’,假设l5>l5’,道路e的转移概率等于r3;这样,该导航轨迹1的常规度等于((l1/l1’)*l1*r1+(l4’/l4)*l4*r2+(l5/l5’)*l5*r3)/(l1+l4+l5)
按照上述方式,可以计算出每一组起点区域到终点区域间中的每一条轨迹的常规度。
(f2)根据各组起点区域到终点区域之间的各导航轨迹的常规度,从各组起点区域到终点区域之间的多条导航轨迹中获取一条常规路线;
(g2)将多组起点区域到终点区域对应的常规路线、对应的起点区域和终点区域,存储在常规路线集合中。
最后,获取每一组起点区域到终点区域间的常规度最大的一条轨迹路线,作为该组起点区域到终点区域的常规路线。将多组起点区域到终点区域对应的多条常规路线,存储一集合中,构成常规路线集合。同时,还要在常规路线集合中,记录每一条常规路线对应的起点区域的标识、终点区域的标识以及确定的起点区域的中心点位置、起点半径、终点区域的中心点位置以及终点半径等。
本实施例的导航路径推荐方法,通过采用上述技术方案,与现有的导航路径推荐方案相比,能够为用户推荐被其他大众用户认可的常规路线,该常规路线更能够体现在现实世界中大众在导航起点到导航终点的交通路径选择,因此,本实施例推荐的常规路线能够很好地满足用户的需求,提高用户的使用体验度。
图3为本发明的导航服务器实施例一的结构图。如图3所示,本实施例的导航服务器,具体可以包括:
接收模块10用于接收用户发起的携带导航起点和导航终点的导航请求;
获取模块11用于从预先建立的常规路线集合中获取接收模块10接收的导航请求中的导航起点和导航终点对应的常规路线;
推荐模块12用于向用户推荐获取模块11获取的常规路线。
本实施例的导航服务器,通过采用上述模块实现导航路径推荐的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图4为本发明的导航服务器实施例二的结构图。如图4所示,本实施例的导航服务器,在上述图3所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。
如图4所示,本实施例的导航服务器中,常规路线集合中包括多条常规路线、每一条常规路线对应的起点区域信息和终点区域信息;其中起点区域信息可以包括起点区域的标识、起点区域的中心点位置以及起点区域半径;终点区域信息可以包括终点区域的标识、终点区域的中心点位置和终点区域半径。
进一步地,获取模块11具体用于:
根据常规路线集合中各起点区域、各终点区域以及接收模块10接收的导航请求中的导航起点和导航终点,获取导航起点所属的目标起点区域信息和导航终点所属的目标终点区域信息;
从常规路线集合中获取目标起点区域信息对应的目标起点区域至目标终点区域信息对应的目标终点区域之间的常规路线。
进一步可选地,如图4所示,本实施例的导航服务器中,还包括:
采集模块13用于采集导航起点和导航终点所在的目标地理区域内的历史导航数据;
挖掘模块14用于根据历史导航数据,在目标地理区域内挖掘多条常规路线以及各常规路线对应的起点区域和终点区域,构成常规路线集合。
对应地,获取模块11用于从挖掘模块14预先建立的常规路线集合中获取接收模块10接收的导航请求中的导航起点和导航终点对应的常规路线。
进一步可选地,本实施例的导航服务器中,挖掘模块14具体用于:
对历史导航数据中的各次历史导航的起点和终点进行数据清洗;
根据清洗后的历史导航数据,统计各起点和终点的邻域点密度;
根据各起点和各终点的邻域点密度,获取对应的起点区域和终点区域;
根据清洗后的历史导航数据,统计多组起点区域和终点区域中各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离;
根据各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离,计算对应的起点区域到终点区域之间的各导航轨迹的常规度;
根据各组起点区域到终点区域之间的各导航轨迹的常规度,从各组起点区域到终点区域之间的多条导航轨迹中获取一条常规路线;
将多组起点区域到终点区域对应的常规路线、对应的起点区域和终点区域,存储在常规路线集合中。
进一步可选地,本实施例的导航服务器中,挖掘模块14具体用于:
获取以各起点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的起点,作为对应的起点区域的中心点位置;
获取以各终点为圆心、预设覆盖阈值为半径的覆盖区域范围内、邻域点密度最大的终点,作为对应的终点区域的中心点位置;
以预设长度阈值为步长,逐步增大起点区域的半径,直到增大后的起点区域相对于增大前的起点区域所覆盖的点密度未增加至预设比例,确定起点区域的起点半径;
以预设长度阈值为步长,逐步增大终点区域的半径,直到增大后的终点区域相对于增大前的终点区域所覆盖的点密度未增加至预设比例,确定终点区域的终点半径。
进一步可选地,本实施例的导航服务器中,挖掘模块14具体用于:
根据各组起点区域到终点区域之间的多条导航轨迹的总数、以及各导航轨迹途径各道路的频次,计算各道路的转移概率;
根据各组起点区域到终点区域之间的各导航轨迹途径的道路的标识、途径各道路的频次以及途径各道路的距离,计算各组起点区域到终点区域之间的各导航轨迹途径的各道路的区间期望长度;
根据各组起点区域到终点区域之间的各条导航轨迹中实际经过的各道路的实际长度、各道路的转移概率以及各道路的区间期望长度,计算对应的起点区域到终点区域之间的各导航轨迹的常规度。
本实施例的导航服务器,通过采用上述模块实现导航路径推荐的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图5为本发明的计算机设备实施例的结构图。如图5所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1-图2所示实施例的导航路径推荐方法。图5所示实施例中以包括多个处理器30为例。
例如,图6为本发明提供的一种计算机设备的示例图。图6示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图6显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图4各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图4各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的导航路径推荐方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的导航路径推荐方法。
本实施例的计算机可读介质可以包括上述图6所示实施例中的系统存储器28a中的ram30a、和/或高速缓存存储器32a、和/或存储系统34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。