首页 / 专利库 / 门,大门和窗户 / 框架 / 路段平均速度的确定方法、装置及系统

路段平均速度的确定方法、装置及系统

阅读:682发布:2020-05-08

专利汇可以提供路段平均速度的确定方法、装置及系统专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种路段平均速度的确定方法、装置、系统、计算机可读存储介质和计算机设备。所述方法包括:获取目标时间间隔内从分布式消息系统得到的车辆 定位 信息;其中,各所述车辆定位信息包括车辆 位置 点和车辆速度;基于流处理 框架 ,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。本申请提供的方案能够提高系统的可用性。,下面是路段平均速度的确定方法、装置及系统专利的具体信息内容。

1.一种路段平均速度的确定方法,包括:
获取目标时间间隔内从分布式消息系统得到的车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;
基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
2.根据权利要求1所述的方法,其特征在于,在所述从预定道路路段中分别确定各所述车辆位置点所属的道路路段之前,还包括:
获取各所述预定道路路段的路段信息;所述路段信息包括路段位置;
所述从预定道路路段中分别确定各所述车辆位置点所属的道路路段,包括:
基于各所述车辆位置点和各所述车辆位置点对应的候选道路路段的路段位置,分别确定各所述车辆位置点到相应候选道路路段的距离;所述车辆位置点对应的候选道路路段选取自各所述预定道路路段中;
基于各所述车辆位置点到相应候选道路路段的距离,分别从各所述车辆位置点对应的候选道路路段中确定各所述车辆位置点所属的道路路段。
3.根据权利要求2所述的方法,其特征在于,在所述基于各所述车辆位置点和各所述车辆位置点对应的候选道路路段的路段位置,分别确定各所述车辆位置点到相应候选道路路段的距离之前,还包括:
基于各所述车辆位置点和各所述预定道路路段的路段位置,分别确定各所述车辆位置点所在的目标位置区域;
分别将位于各所述车辆位置点所在的目标位置区域内的预定道路路段,对应确定为各所述车辆位置点对应的候选道路路段。
4.根据权利要求2所述的方法,其特征在于,所述基于各所述车辆位置点到相应候选道路路段的距离,分别从各所述车辆位置点对应的候选道路路段中确定各所述车辆位置点所属的道路路段,包括:
分别从各所述车辆位置点到相应候选道路路段的距离中,筛选出各所述车辆位置点对应的最小距离;
分别基于各所述车辆位置点对应的目标道路路段,确定各所述车辆位置点所属的道路路段;
其中,所述车辆位置点对应的目标道路路段包括与该车辆位置点对应的最小距离相对应的所述候选道路路段。
5.根据权利要求4所述的方法,其特征在于,所述车辆定位信息还包括车辆行驶方向,所述路段信息还包括路段方向;
所述分别基于各所述车辆位置点对应的目标道路路段,确定各所述车辆位置点所属的道路路段,包括:
将各所述车辆位置点对应的所述车辆行驶方向,与各所述车辆位置点对应的目标道路路段的路段方向进行匹配;
分别在各所述车辆位置点对应的车辆行驶方向与相应目标道路路段的路段方向匹配时,将所述车辆位置点对应的目标道路路段确定为所述车辆位置点所属的道路路段。
6.根据权利要求5所述的方法,其特征在于,在所述从预定道路路段中分别确定各所述车辆位置点所属的道路路段之前,还包括:
基于各所述预定道路路段的路段信息,生成二维搜索树;
所述基于各所述车辆位置点和各所述预定道路路段的路段位置,分别确定各所述车辆位置点所在的目标位置区域,包括:
分别基于各所述车辆位置点搜索所述二维搜索树,确定各所述车辆位置点所在的目标位置区域。
7.根据权利要求1所述的方法,其特征在于,在所述基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度之后,还包括:
将各所述预定道路路段在所述目标时间间隔内的路段平均速度,发送至数据存储系统中进行存储。
8.根据权利要求5所述的方法,其特征在于,确定所述预定道路路段的路段方向的方式,包括:
基于所述预定道路路段的路段位置,确定所述预定道路路段的斜率;
基于所述预定道路路段的斜率,确定所述预定道路路段的第一方向;
将所述第一方向转换为所述车辆定位信息所对应的参考系下的第二方向;
所述预定道路路段的路段方向包括:所述预定道路路段在所述车辆定位信息所对应的参考系下的第二方向。
9.一种路段平均速度的确定系统,包括:
分布式消息系统,用于从外部获取车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
流处理系统,用于获取目标时间间隔内从所述分布式消息系统得到的车辆定位信息;
基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
10.根据权利要求9所述的系统,其特征在于,还包括数据存储系统;
所述流处理系统,还用于将各所述预定道路路段在所述目标时间间隔内的路段平均速度发送至所述数据存储系统;
所述数据存储系统,用于存储所述流处理系统发送的路段平均速度。
11.根据权利要求10所述的系统,其特征在于,还包括道路拥堵处理系统;
所述道路拥堵处理系统,用于向所述数据存储系统发送目标速度获取请求
所述数据存储系统,还用于基于所述目标速度获取请求从本地存储的路段平均速度中查找目标路段平均速度,并将所述目标路段平均速度发送至所述道路拥堵处理系统;
所述道路拥堵处理系统,还用于基于接收到的所述目标路段平均速度,确定所述目标路段平均速度所对应的预定道路路段的拥堵程度。
12.根据权利要求11所述的系统,其特征在于,所述道路拥堵处理系统包括用户终端和拥堵程度确定系统;
所述用户终端,用于响应于道路拥堵查询操作生成道路拥堵查询请求,并将所述道路拥堵查询请求发送至拥堵程度确定系统;
所述拥堵程度确定系统,用于基于所述道路拥堵查询请求向所述数据存储系统发送所述目标速度获取请求,再基于所述数据存储系统返回的所述目标路段平均速度,确定所述目标路段平均速度所对应的预定道路路段的拥堵程度,并将所述拥堵程度发送至所述用户终端;
所述用户终端,还用于输出接收到的拥堵程度。
13.一种路段平均速度的确定装置,包括:
定位信息获取模,用于获取目标时间间隔内从分布式消息系统得到的车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
道路路段确定模块,用于基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;
路段速度获取模块,用于基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。

说明书全文

路段平均速度的确定方法、装置及系统

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种路段平均速度的确定方法、装置、系统、计算机可读存储介质和计算机设备。

背景技术

[0002] 近年来,由于城市化进程的加快,人们出行需求的持续上涨,车辆保有量的显著增加,道路拥堵问题越来越突出。道路拥堵将给人们带来时间、经济、精神等方面的损失,因此确定道路拥堵情况具有十分重要的意义。
[0003] 目前,主要是基于实时的路段平均速度来评价道路拥堵情况。在传统方式中,是通过Linux系统的crontab定时任务,实现基于车辆定位信息计算实时的路段平均速度。然而,传统方式在车辆定位信息的数据量较大时容易出现系统崩溃,系统可用性及实时性较差。发明内容
[0004] 基于此,有必要针对传统技术中系统可用性及实时性较差的技术问题,提供一种路段平均速度方法、装置、计算机可读存储介质和计算机设备。
[0005] 一种路段平均速度的确定方法,包括:
[0006] 获取目标时间间隔内从分布式消息系统得到的车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
[0007] 基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;
[0008] 基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
[0009] 一种路段平均速度的确定系统,包括:
[0010] 分布式消息系统,用于从外部获取车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
[0011] 流处理系统,用于获取目标时间间隔内从所述分布式消息系统得到的车辆定位信息;基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
[0012] 一种路段平均速度的确定装置,包括:
[0013] 定位信息获取模,用于获取目标时间间隔内从分布式消息系统得到的车辆定位信息;其中,各所述车辆定位信息包括车辆位置点和车辆速度;
[0014] 道路路段确定模块,用于基于流处理框架,从预定道路路段中分别确定各所述车辆位置点所属的道路路段;
[0015] 路段速度获取模块,用于基于属于所述预定道路路段的车辆位置点所对应的车辆速度,得到所述预定道路路段在所述目标时间间隔内的路段平均速度。
[0016] 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述路段平均速度的确定方法的步骤。
[0017] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述路段平均速度的确定方法的步骤。
[0018] 上述路段平均速度的确定方法、装置、系统、计算机可读存储介质和计算机设备,从分布式消息系统中获取携带车辆位置点和车辆速度的车辆定位信息,再基于流处理框架,对目标时间间隔内从分布式消息系统得到的车辆定位信息进行处理,以从预定道路路段中分别确定各车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。如此,通过具备高吞吐量及高可用性的分布式消息系统和具备快速计算能的流处理框架,实现实时路段平均速度的计算,能够有效地提高计算路段平均速度时的系统可用性和实时性。附图说明
[0019] 图1为一个实施例中路段平均速度的确定方法的应用环境图;
[0020] 图2为一个实施例中路段平均速度的确定方法的流程示意图;
[0021] 图3为一个实施例中确定路段方向时进行参考系转换的原理图;
[0022] 图4为一个实施例中路段平均速度的确定方法的流程示意图;
[0023] 图5为一个实施例中路段平均速度的确定系统的结构示意图;
[0024] 图6为一个实施例中路段平均速度的确定方法的交互示意图;
[0025] 图7为一个实施例中路段平均速度的确定系统的结构示意图;
[0026] 图8为一个实施例中路段平均速度的确定方法的交互示意图;
[0027] 图9为一个实施例中路段平均速度的确定系统的结构示意图;
[0028] 图10为一个实施例中路段平均速度的确定方法的交互示意图;
[0029] 图11为一个实施例中路段平均速度的确定系统的结构示意图;
[0030] 图12为一个实施例中路段平均速度的确定方法的交互示意图;
[0031] 图13为一个实施例中路段平均速度的确定系统的结构示意图;
[0032] 图14为一个实施例中路段平均速度的确定方法的交互示意图;
[0033] 图15为一个实施例中路段平均速度的确定装置的结构示意图;
[0034] 图16为一个实施例中计算机设备的结构示意图。

具体实施方式

[0035] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0036] 需要说明的是,本申请所使用的术语“第一”、“第二”等是用于对类似的对象作出命名上的区分,但这些对象本身不受这些术语限制。应当理解,在不脱离本申请的范围的情况下,这些术语在适当的情况下可以互换。例如,可将“第一方向”描述为“第二方向”,且类似地,将“第二方向”描述为“第一方向”。
[0037] 此外,术语“包括”、“包含”、“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于已清楚地列出的步骤或单元,而是还可以包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本申请所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0038] 本申请各实施例提供的路段平均速度的确定方法,可应用于如图1所示的应用环境中。该应用环境可涉及车辆定位设备110、分布式消息系统120、流处理系统130以及数据存储系统140。车辆定位设备110与分布式消息系统120之间、分布式消息系统120与流处理系统130之间、以及流处理系统130与数据存储系统140之间均可以通过网络连接。
[0039] 具体地,车辆定位设备110可以采集车辆定位信息,并将采集到的车辆定位信息上传至分布式消息系统120,车辆定位信息可以包括车辆位置点和车辆速度。流处理系统130从分布式消息系统120中获取车辆定位信息,得到目标时间间隔内的车辆定位信息,再基于流处理框架从预定道路路段中分别确定各车辆定位信息中的车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度,再将各预定道路路段在目标时间间隔内的路段平均速度发送至数据存储系统140。数据存储系统140对分布式消息系统120发送的路段平均速度进行存储。
[0040] 其中,车辆定位设备110可以包括车载GPS(Global Positioning System,全球定位系统)设备、手机、平板电脑笔记本电脑、台式电脑、个人数字助理、穿戴式设备等中的至少一种,但不局限于此。分布式消息系统120和流处理系统130均可以用多个机器节点组成的集群来实现,机器节点可以是服务器,即分布式消息系统120和流处理系统130均可以用多个服务器组成的服务器集群来实现。数据存储系统140可以用数据库实现。
[0041] 在一个实施例中,如图2所示,提供了一种路段平均速度的确定方法。以该方法应用于上述图1中的流处理系统为例进行说明。该方法可以包括如下步骤S202至S206。
[0042] S202,获取目标时间间隔内从分布式消息系统得到的车辆定位信息。
[0043] 车辆定位信息,是可以用于描述车辆行驶状态的信息。每一条车辆定位信息中均可以包括车辆位置点和车辆速度。车辆位置点可以是车辆所处位置的经纬度,车辆速度可以是车辆在一定时间内的行驶速度。此外,车辆定位信息可以由车辆定位设备(即具备定位功能的设备)按照一定采样频率采集得到。车辆定位设备可以是车载GPS设备或者置于车辆内且安装有定位应用程序的设备等等。定位应用程序比如地图导航应用程序。
[0044] 分布式消息系统,可以用作消息队列。在本实施例中,车辆定位设备实时且持续地将采集的车辆定位信息上传至分布式消息系统,进而流处理系统从分布式消息系统中获取车辆定位信息。分布式消息系统可以是Kafka系统、Flume系统或者Kinesis系统等等。此外,将车辆定位信息上传至分布式消息系统的车辆定位设备的数目可以为任意自然数,实际数目据实际情况而定,比如在某一时间段内,有100台行驶在道路上的车辆的车载GPS设备将1000条车辆定位信息上传至分布式消息系统。
[0045] 目标时间间隔,是预先设定的时间间隔。在本实施例中,可以以批为单位进行数据处理,具体地,流处理系统持续地从分布式消息系统中获取车辆定位信息,并通过目标时间间隔使得若干条车辆定位信息汇总为一批车辆定位信息,再统一处理这一批车辆定位信息。目标时间间隔可以基于实际需求进行设定,比如设定为10秒、30秒或者1分钟等等。
[0046] S204,基于流处理框架,从预定道路路段中分别确定各车辆位置点所属的道路路段。
[0047] 流处理框架,是大数据处理框架,具体是用于对流式数据进行实时处理或近实时处理的应用程序。流式数据是按照顺序持续到达的数据。
[0048] 预定道路路段,是需要确定在目标时间间隔内的路段平均速度的道路路段。预定道路路段可以根据实际需求预先设定,比如设定某一位置区域(如广州越秀区)内的各道路路段为预定道路路段。
[0049] 在本实施例中,基于流处理框架所对应的处理逻辑对目标时间间隔中的车辆定位信息进行处理,从而从各预定道路路段中分别确定出每一条车辆定位信息中的车辆位置点所属的道路路段。此外,可以预先设定用以唯一标识道路路段的路段标识,各路段标识与各预定道路路段一一对应,确定出各车辆定位信息中的车辆位置点所属的道路路段后,可以将车辆定位信息与其包含的车辆位置点所属的道路路段的路段标识进行关联。路段标识比如ID(Identification,身份)编号。
[0050] S206,基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。
[0051] 路段平均速度,可以是目标时间间隔内路段上的所有车辆的行驶速度的平均值。对于任一预定道路路段而言,将目标时间间隔内的各车辆定位信息中,其车辆位置点属于该预定道路路段的各车辆定位信息中的车辆速度进行平均运算,即可得到该预定道路路段在该目标时间间隔内的路段平均速度。
[0052] 流处理系统可以分别基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到各预定道路路段在目标时间间隔内的路段平均速度。在一个实施例中,从预定道路路段中分别确定各车辆位置点所属的道路路段后,流处理系统可以以预定道路路段为分组标准对各车辆定位信息进行分组,车辆位置点所属的道路路段相同的车辆定位信息分到相同的组别,从而得到与各预定道路路段一一对应的各组别。进而,分别将各组别下的车辆定位信息中的车辆速度进行平均运算,得到各预定道路路段在目标时间间隔内的路段平均速度。
[0053] 具体地,在预先设定了与各预定道路路段一一对应的各路段标识时,可以按照路段标识对各车辆定位信息进行分组,即关联相同的路段标识的各车辆定位信息分到相同的组别。据此,基于路段标识所对应的组别下的各车辆定位信息中的车辆速度得到的路段平均速度,即为该路段标识所对应的预定道路路段在目标时间间隔内的路段平均速度。
[0054] 需要说明的是,流处理系统中可以包括多于一个的机器节点,目标时间间隔内的车辆定位信息可以按照预定的分配机制分配到各机器节点,每一个机器节点均从预定道路路段中分别确定分配到该机器节点上的车辆定位信息中的车辆位置点所属的道路路段。进而,各机器节点可以以预定道路路段作为分发标准,分别将属于每一段预定道路路段的车辆位置点所对应的车辆定位信息,发送至与该预定道路路段对应的机器节点,进而由该预定道路路段对应的机器节点基于属于该预定道路路段的车辆位置点所对应的车辆速度,得到该预定道路路段的路段平均速度。
[0055] 比如,流处理系统中包括机器节点M1至M10,共计10个机器节点,预定道路路段分别为预定道路路段La1至La10,共计10条预定道路路段,目标时间间隔内的车辆定位信息共计1000条,在此情况下,可以为机器节点M1至M10各分配100条车辆定位信息,机器节点M1从预定道路路段中分别确定分配到机器节点M1上的100条车辆定位信息中的车辆位置点所属的道路路,机器节点M2从预定道路路段中分别确定分配到机器节点M2上的100条车辆定位信息中的车辆位置点所属的道路路,依次类推,机器节点M1至M10均从预定道路路段中分别确定分配到其上的车辆定位信息中的车辆位置点所属的道路路段。进而,各机器节点分别负责一条预定道路路段的路段平均速度的计算,假设机器节点M1负责预定道路路段La1的路段平均速度的计算,则机器节点M2至M10均将其确定的属于预定道路路段La1的车辆位置点所对应的车辆定位信息发送至机器节点M1,进而由机器节点M1根据属于预定道路路段La1的各车辆位置点所对应的车辆速度,得到预定道路路段La1的路段平均速度。预定道路路段La2至La10的路段平均速度的计算类似,此处不加赘述。
[0056] 在其他实施例中,也可以是各机器节点确定其负责的各车辆位置点所属的道路路段后,各机器节点均将其负责的车辆定位信息发送至同一个机器节点上进行汇总,进而由该机器节点基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到各预定道路路段在目标时间间隔内的路段平均速度。比如,机器节点M1至M10均从预定道路路段中分别确定分配到其上的100条车辆定位信息中的车辆位置点所属的道路路段后,机器节点M2至M10均将其负责的100条车辆定位信息发送至机器节点M1,进而机器节点M1分别基于属于预定道路路段La1至La10的车辆位置点所对应的车辆速度,得到预定道路路段La1至La10在目标时间间隔内的路段平均速度。
[0057] 需要说明的是,对于流处理系统整体而言,可以是全部机器节点都负责一部分预定道路路段的路段平均速度的计算,也可以是由部分机器节点负责所有预定道路路段的路段平均速度的计算。对于流处理系统中的机器节点而言,可以是一个机器节点上负责一条预定道路路段的路段平均速度的计算,也可以是一个机器节点上负责多于一条的预定道路路段的路段平均速度的计算。只需保证属于同一预定道路路段的车辆位置点所对应的车辆速度在同一机器节点上进行汇总,从而得到该预定道路路段的路段平均速度即可。
[0058] 在传统方式中,通过Linux系统的crontab定时任务,实现基于车辆定位信息计算实时的路段平均速度。具体地,预先配置定时时间间隔(以2分钟为例),每隔2分钟创建一个进程来执行基于车辆定位信息计算路段平均速度的任务,各进程计算得到的路段平均速度后都将其写入相同的存储空间。一方面,crontab定时任务可支持的定时时间间隔的最小粒度是分钟,最小粒度较大,难以保证计算的实时性;另一方面,为了尽可能地提高实时性,设置的定时时间间隔会尽可能小,在此情况下,若某个批次的车辆定位信息过多,则会导致相应进程的处理时间过长,从而出现新老任务对资源的不当竞争和不可控的意外问题,严重时会导致系统崩溃,系统可用性较差。
[0059] 上述路段平均速度的确定方法,从分布式消息系统中获取携带车辆位置点和车辆速度的车辆定位信息,再基于流处理框架,对目标时间间隔内从分布式消息系统得到的车辆定位信息进行处理,以从预定道路路段中分别确定各车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。如此,通过具备高吞吐量及高可用性的分布式消息系统、以及具备快速计算能力且可支持以秒为单位设置目标时间间隔的流处理框架,实现实时路段平均速度的计算,能够有效地提高计算路段平均速度时系统的可用性和实时性。
[0060] 在一个实施例中,预定道路路段在目标时间间隔内的路段平均速度,可以用于确定该预定道路路段在目标时间间隔内的拥堵程度。拥堵程度可以从预定拥堵程度中确定,比如预定拥堵程度包括畅通、基本畅通、轻度拥堵、中度拥堵以及严重拥堵,预定道路路段在目标时间间隔内的路段平均速度,可以用于从畅通、基本畅通、轻度拥堵、中度拥堵以及严重拥堵这五个拥堵程度中确定该预定道路路段在目标时间间隔内的拥堵程度。
[0061] 具体地,流处理系统可以输出各预定道路路段在目标时间间隔内的路段平均速度,后续由其他设备执行基于各预定道路路段在目标时间间隔内的路段平均速度,确定各预定道路路段在目标时间间隔内的拥堵程度的操作。但可以理解,流处理系统得到各预定道路路段在目标时间间隔内的路段平均速度后,也可以继续基于各预定道路路段在目标时间间隔内的路段平均速度,确定各预定道路路段在目标时间间隔内的拥堵程度,再在有需要时输出相应的预定道路路段在目标时间间隔内的拥堵程度。
[0062] 在实际应用中,路段平均速度的确定方法,可以适用于“智慧出行”类的项目,比如基于流处理系统确定的路段平均速度得到与用户需求对应的路段拥堵程度,从而供用户了解相应位置的道路情况,在一个更具体的示例中,可以为用户展示其所乘的公共交通的道路情况。此外,也可以适用于“城市大脑”类的项目,比如基于流处理系统确定的路段平均速度得到整座城市的路段拥堵程度,从而帮助有关部制定相应交通措施。
[0063] 在一个实施例中,在从预定道路路段中分别确定各车辆位置点所属的道路路段的步骤之前,即在步骤S204之前,还可以包括如下步骤:获取各预定道路路段的路段信息,路段信息包括路段位置。在此情况下,步骤S204还可以包括如下步骤:基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离;基于各车辆位置点到相应候选道路路段的距离,分别从各车辆位置点对应的候选道路路段中确定各车辆位置点所属的道路路段。
[0064] 路段信息,是用于描述路段的基本情况的信息。路段信息具体可以包括路段位置。路段位置可以包括路段中的第一采样点的位置信息。路段中的第一采样点可以包括路段的起点和终点,据此,路段的第一采样点的位置信息具体可以包括路段的起点的经纬度和路段的终点的经纬度。此外,预定道路路段的路段信息可以由分布式消息系统和流处理系统以外的其他设备(下文称为道路数据预处理系统)预先处理得到,流处理系统直接从道路数据预处理系统中获取现成的预定道路路段的路段信息即可。
[0065] 在一个实施例中,可以在流处理系统启动时,从道路数据预处理系统加载各预定道路路段的路段信息。据此,在流处理系统的后续工作过程中,需要使用预定道路路段的路段信息时,即可直接读取本地记录的预定道路路段的路段信息,而无需重复加载。
[0066] 候选道路路段,可以从各预定道路路段中选取得到。车辆位置点对应的候选道路路段,可以包括所有预定道路路段,也可以包括基于车辆位置点从各预定道路路段中确定的一部分预定道路路段。
[0067] 在本实施例中,对于每一个车辆位置点,均基于该车辆位置点和该车辆位置点对应的候选道路路段的路段位置,确定该车辆位置点到该车辆位置点所对应的候选道路路段的距离,再基于该车辆位置点到该车辆位置点所对应的候选道路路段的距离,从该车辆位置点对应的候选道路路段中确定出该车辆位置点所属的道路路段。
[0068] 举例说明,目标时间间隔内的车辆定位信息分别为车辆定位信息P1至P10,共计10条车辆定位信息。则,基于车辆定位信息P1中的车辆位置点D1和该车辆位置点D1对应的候选道路路段的路段位置(假设车辆位置点D1对应的候选道路路段包括Lb1至Lb3),分别确定该车辆位置点D1到候选道路路段Lb1的距离、该车辆位置点D1到候选道路路段Lb2的距离、以及该车辆位置点D1到候选道路路段Lb3的距离,再基于该车辆位置点D1分别到候选道路路段Lb1至Lb3的距离,从候选道路路段Lb1至Lb3中确定出该车辆位置点D1所属的道路路段。
[0069] 在一个实施例中,在基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离的步骤之前,还可以包括如下步骤:基于各车辆位置点和各预定道路路段的路段位置,分别确定各车辆位置点所在的目标位置区域;分别将位于各车辆位置点所在的目标位置区域内的预定道路路段,对应确定为各车辆位置点对应的候选道路路段。
[0070] 目标位置区域,是车辆位置点附近的位置区域。具体地,可以将以车辆位置点为中心、且具有预定尺寸及预定形状的位置区域,作为该车辆位置点所在的目标位置区域。预定形状比如圆形或矩形等。可以理解,目标位置区域的预定尺寸和预定形状均可以根据实际需求进行设定,本申请不作具体限定。
[0071] 目标位置区域内的预定道路路段,是所有预定道路路段中、位于目标位置区域内的道路路段。在一个实施例中,可以将所有预定道路路段中、与目标位置区域存在交叉的部分预定道路路段,作为该目标位置区域内的预定道路路段。
[0072] 在本实施例中,对于每一个车辆位置点,先确定出该车辆位置点所在的目标位置区域,再确定该目标位置区域内的预定道路路段,该目标位置区域内的预定道路路段即为该车辆位置点对应的候选道路路段。进而,从该目标位置区域内的预定道路路段中,确定出该车辆位置点所属的道路路段。
[0073] 在本实施例中,先确定车辆位置点所在的目标位置区域,缩小了搜索该车辆位置点所属的道路路段的区域范围,即减少了车辆位置点对应的候选道路路段的数目,从而减少了计算车辆位置点到候选道路路段的距离的工作量,有效地提高了工作效率。
[0074] 在一个实施例中,基于各车辆位置点到相应候选道路路段的距离,分别从各车辆位置点对应的候选道路路段中确定各车辆位置点所属的道路路段的步骤,可以包括如下步骤:分别从各车辆位置点到相应候选道路路段的距离中,筛选出各车辆位置点对应的最小距离;分别基于各车辆位置点对应的目标道路路段,确定各车辆位置点所属的道路路段。
[0075] 最小距离,是车辆位置点到该车辆位置点所对应的候选道路路段的距离中,数值最小的距离。对于每一个车辆位置点,均可以从该车辆位置点到该车辆位置点所对应的候选道路路段的距离中,筛选出数值最小的距离作为与该车辆位置点对应的最小距离。
[0076] 目标道路路段,可以包括与车辆位置点对应的最小距离相对应的候选道路路段。车辆位置点对应的目标道路路段是所有预定道路路段中,与该车辆位置点相距最近的道路路段。可以理解,与车辆位置点相距最近的道路路段是该车辆位置点所属的道路路段的几率比较大。
[0077] 此外,对于每一个车辆位置点,均分别基于该车辆位置点对应的目标道路路段,确定出该车辆位置点所属的道路路段。
[0078] 在一个实施例中,车辆定位信息还包括车辆行驶方向,路段信息还包括路段方向。在此情况下,分别基于各车辆位置点对应的目标道路路段,确定各车辆位置点所属的道路路段的步骤,可以包括如下步骤:将各车辆位置点对应的车辆行驶方向,与各车辆位置点对应的目标道路路段的路段方向进行匹配;分别在各车辆位置点对应的车辆行驶方向与相应目标道路路段的路段方向匹配时,将车辆位置点对应的目标道路路段确定为车辆位置点所属的道路路段。
[0079] 车辆行驶方向,是车辆在道路路段上的行驶方向。车辆行驶方向具体可以采用度信息进行描述。
[0080] 路段方向,是道路路段的通行方向。可以理解,可能存在起点和终点相同,但路段方向相反的两条预定道路路段。比如,预定道路路段Lc1的起点为位置点A且终点为位置点B,其路段方向是由南往北,预定道路路段Lc2的起点也为位置点A且终点也为位置点B,但其路段方向是由北往南。此外,路段方向也可以采用角度信息进行描述。
[0081] 在本实施例中,确定各车辆位置点对应的目标道路路段后,对于每一个车辆位置点,均将该车辆位置点所对应的车辆行驶方向,与该车辆位置点对应的目标道路路段的路段方向进行匹配。若匹配,表明该车辆位置点所对应的车辆的行驶方向与该目标道路路段的通行方向一致,即该车辆行驶在该目标道路路段上,则可以将该目标道路路段确定为该车辆位置点所属的道路路段。此外,若不匹配,表明该车辆位置点所对应的车辆的行驶方向与该目标道路路段的通行方向不一致,可能出现了误检测,则可以将该车辆位置点所对应的车辆定位信息作为无效信息丢弃掉。
[0082] 在一个实施例中,可以在车辆位置点所对应的车辆行驶方向,与该车辆位置点对应的目标道路路段的路段方向的偏差角度未超过角度阈值时,判定车辆位置点所对应的车辆行驶方向,与该车辆位置点对应的目标道路路段的路段方向匹配。反之,在车辆位置点所对应的车辆行驶方向,与该车辆位置点对应的目标道路路段的路段方向的偏差角度超过角度阈值时,判定车辆位置点所对应的车辆行驶方向,与该车辆位置点对应的目标道路路段的路段方向不匹配。可以理解,角度阈值可以基于实际需求预先设定,比如角度阈值为30°。
[0083] 在本实施例中,通过将车辆位置点对应的车辆行驶方向与该车辆位置点对应的目标道路路段的路段方向进行匹配,匹配时才将车辆位置点对应的目标道路路段确定为车辆位置点所属的道路路段,能够更准确地确定车辆位置点所属的道路路段。
[0084] 在一个实施例中,在从预定道路路段中分别确定各车辆位置点所属的道路路段的步骤之前,即步骤S204之前,还可以包括如下步骤:基于各预定道路路段的路段信息,生成二维搜索树。在此情况下,基于各车辆位置点和各预定道路路段的路段位置,分别确定各车辆位置点所在的目标位置区域的步骤,可以包括如下步骤:分别基于各车辆位置点搜索二维搜索树,确定各车辆位置点所在的目标位置区域。
[0085] 二维搜索树,是可以用于提高数据搜索效率的数据结构。二维搜索树具体可以是R树,但不局限于此。
[0086] 在本实施例中,在流处理系统加载各预定道路路段的路段信息之后,可以基于各预定道路路段的路段信息生成二维搜索树(具体可以是基于各预定道路路段的路段位置和路段方向生成二维搜索树)。后续,在流处理系统的工作过程中,需要使用到预定道路路段的路段信息时,则可以直接搜索预先生成的二维搜索树,而无需再临时生成。
[0087] 在本实施例中,对于每一个车辆位置点,可以基于该车辆位置点搜索二维搜索树,从而确定该车辆位置点所在的目标位置区域。
[0088] 在一个实施例中,在分别基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到各预定道路路段在目标时间间隔内的路段平均速度的步骤之后,即步骤S206之后,还可以包括如下步骤:将各预定道路路段在目标时间间隔内的路段平均速度,发送至数据存储系统中进行存储。
[0089] 数据存储系统,可以用于存储各预定道路路段在目标时间间隔内的路段平均速度。数据存储系统具体可以使用数据库实现,数据库比如HBase(开源的非关系型分布式数据库)。
[0090] 在本实施例中,流处理系统得到各预定道路路段在目标时间间隔内的路段平均速度后,将各路段平均速度输出至数据存储系统。相应地,数据存储系统将接收到的各路段平均速度进行存储,以供后续查找使用。
[0091] 在一个实施例中,确定道路路段的路段位置的方式,可以包括如下步骤:获取预定道路的原始道路数据;基于原始道路数据对预定道路进行分段,得到预定道路路段的路段位置。
[0092] 原始道路数据,可以包括预定道路中的第二采样点的位置信息。对于预定道路而言,可以每间隔预定距离设一个第二采样点,该预定道路的第二采样点的位置信息具体可以包括第二采样点的经纬度。
[0093] 在一个实施例中,对预定道路进行分段时,可以在识别出交叉路口、公交车站或者道路倾角时进行分段。其中,对倾角分段是为了适配环形道路,比如可以在预定道路的倾角大于30°时,将该预定道路划分为两个道路路段。
[0094] 对预定道路进行分段后得到的各道路路段,即可以为预定道路路段。相应地,可以将分段后得到的各道路路段的起点的经纬度和终点的经纬度,作为预定道路路段的路段位置。
[0095] 在一个实施例中,确定预定道路路段的路段方向的方式,可以包括如下步骤:基于预定道路路段的路段位置,确定预定道路路段的斜率;基于预定道路路段的斜率,确定预定道路路段的第一方向;将第一方向转换为车辆定位信息所对应的参考系下的第二方向;预定道路路段的路段方向包括:预定道路路段在车辆定位信息所对应的参考系下的第二方向。
[0096] 车辆定位信息是车载GPS设备采集的GPS信息,路段位置包括路段的起点的经纬度和路段的终点的经纬度时,可以根据预定道路路段的起点的经纬度和路段的终点的经纬度,先确定该预定道路路段的斜率,再根据斜率确定出第一方向,第一方向可以用角度进行表示,即图3中的α。进而,将第一方向转换为车辆定位信息所对应的参考系下的第二方向,类似地,第二方向也可以用角度进行表示,即图3中的θ。实现将第一方向转换为车辆定位信息所对应的参考系下的第二方向的方式,具体可以参见图3示出的四种情况。
[0097] 需要说明的是,可以由前文描述的道路数据预处理系统,执行上述“获取预定道路的原始道路数据;基于原始道路数据对预定道路进行分段,得到预定道路路段的路段位置;基于预定道路路段的路段位置,确定预定道路路段的斜率;基于预定道路路段的斜率,确定预定道路路段的第一方向;将第一方向转换为车辆定位信息所对应的参考系下的第二方向,即预定道路路段的路段方向”的操作,从而得到预定道路路段的路段信息。
[0098] 在一个实施例中,分布式消息系统可以包括Kafka系统。
[0099] Kafka系统,是由安装有Kafka应用程序的机器节点组成的集群。Kafka系统是分布式发布订阅消息系统,具有高吞吐量、数据持久化等特性。
[0100] 在一个实施例中,流处理框架可以包括Spark streaming处理框架。
[0101] Spark streaming处理框架,是Spark核心API(Application Programming Interface,应用程序编程接口)的扩展,具有低成本、易维护、方便开发等特性,并且可以实现高吞吐量、具备容错机制且快速的实时流式数据的处理。Spark streaming处理框架从数据源获取数据之后,可以使用诸如map、flatMap、reduce以及count等算子进行处理,后续再将处理结果输出。
[0102] 具体地,可以在流处理系统中的机器节点上安装Spark应用程序,从而实现使用Spark streaming处理框架对车辆定位信息进行处理。
[0103] 在一个实施例中,分布式消息系统包括Kafka系统,且流处理框架包括Spark streaming处理框架。
[0104] 以下以分布式消息系统包括Kafka系统,流处理系统包括安装有Spark应用程序的机器节点,流处理框架采用Spark streaming处理框架为例进行说明。,车辆定位设备将采集到的车辆定位信息上传至Kafka系统,Kafka系统将车辆定位信息按照接收到的时间顺序进行排列。流处理系统按照排列顺序从Kafka系统中拉取车辆定位信息,得到目标时间间隔内的车辆定位信息,再基于Sparkstreaming处理框架从预定道路路段中分别确定各车辆定位信息中的车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度,再将预定道路路段在目标时间间隔内的路段平均速度发送至数据存储系统。其中,从预定道路路段中分别确定各车辆定位信息中的车辆位置点所属的道路路段的操作,具体可以调用Spark引擎来执行。
[0105] 在一个实施例中,流处理框架包括Spark streaming处理框架时,Spark streaming处理框架对应的运行模式为Spark on yarn模式。
[0106] Spark streaming处理框架对应的运行模式为Spark on yarn模式,即Spark streaming处理框架运行于Hadoop处理框架中。Hadoop处理框架是开源框架,其允许在整个集群中使用简单编程模型计算机的分布式环境存储并处理大数据,具有低成本、高可用、资源完善、可开发性强的特性。
[0107] 在一个实施例中,可以在流处理系统中的各机器节点上安装Hadoop应用程序,而在其中一个机器节点上安装Spark应用程序。在另一个实施例中,也可以在流处理系统中的各机器节点上均安装Hadoop应用程序和Spark应用程序。
[0108] 在Spark on yarn模式之下,执行Spark应用程序之前,需要先启动Hadoop应用程序所提供的各种服务。在流处理系统的后续工作过程中,通过Hadoop所提供的资源管理器(Yarn),为流处理系统分配资源(如CPU资源和内存资源),并管理和监控流处理系统中运行的任务。如果任务意外退出,Yarn可以在一定重启次数范围内对任务进行自动重启。此外,可以将运行任务所使用的数据存储到Hadoop提供的可靠文件系统(HDFS)中,从而任务重启时可以依赖HDFS进行快速恢复。比如,流处理系统从分布式消息系统获取到目标时间间隔内的车辆定位信息后,可以将该车辆定位信息存储至HDFS,进而流处理系统对该车辆定位信息进行处理,若该处理任务意外退出,任务重启时可以直接从HDFS中获取该车辆定位信息,而无需重新从分布式消息系统获取。
[0109] 此外,在Spark on yarn模式之下,流处理系统启动时,也可以从道路数据预处理系统中获取预定道路路段的路段信息,并加载至HDFS中进行持久化存储。后续,在流处理系统的工作过程中,当需要使用预定道路路段的路段信息时,直接从HDFS中获取。
[0110] 在本实施例中,通过使Spark streaming处理框架运行于Hadoop处理框架中,有效地提高了流处理系统的可用性。此外,更有利于进行动态扩展,即在流处理系统中的现有计算资源无法满足计算需求时,可以通过堆积计算资源,实现短时间内应付计算需求。比如,流处理系统包括三个机器节点,三个机器节点上均安装有Hadoop应用程序,其中一个机器节点上安装Spark应用程序,当三个机器节点无法满足计算需求时,可以新增机器节点至流处理系统,在新增的机器节点上安装Hadoop应用程序,便可以便捷地使新增的机器节点参与到计算任务中。
[0111] 在其他实施例中,除Spark on yarn模式之外,Spark streaming处理框架对应的运行模式也可以为Standalone模式或者Spark on Mesos模式,在此情况下,无需使用Hadoop应用程序提供的服务。
[0112] 在一个实施例中,如图4所示,提供了一种路段平均速度的确定方法。以该方法应用于图1所示的流处理系统,该流处理系统中的各机器节点上安装Hadoop应用程序,而在其中一个机器节点上安装Spark应用程序,Spark streaming处理框架对应的运行模式为Spark on yarn模式,且分布式消息系统包括Kafka系统为例进行说明。该方法可以包括如下步骤S402至424。
[0113] S402,加载预定道路路段的路段信息,路段信息包括路段位置和路段方向。
[0114] S404,基于各预定道路路段的路段信息,生成二维搜索树。
[0115] S406,获取目标时间间隔内从分布式消息系统得到的车辆定位信息,各车辆定位信息包括车辆位置点和车辆速度。
[0116] S408,基于Spark streaming处理框架,分别基于各车辆位置点搜索二维搜索树,确定各车辆位置点所在的目标位置区域。
[0117] S410,分别将位于各车辆位置点所在的目标位置区域内的预定道路路段,对应确定为各车辆位置点对应的候选道路路段。
[0118] S412,基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离,车辆位置点对应的候选道路路段选取自各预定道路路段中。
[0119] S414,分别从各车辆位置点到相应候选道路路段的距离中,筛选出各车辆位置点对应的最小距离。
[0120] S416,将与各车辆位置点对应的最小距离相对应的候选道路路段,对应确定为各车辆位置点对应的目标道路路段。
[0121] S418,将各车辆位置点对应的车辆行驶方向,与各车辆位置点对应的目标道路路段的路段方向进行匹配。
[0122] S420,分别在各车辆位置点对应的车辆行驶方向与相应目标道路路段的路段方向匹配时,将车辆位置点对应的目标道路路段确定为车辆位置点所属的道路路段。
[0123] S422,基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到各预定道路路段在目标时间间隔内的路段平均速度。
[0124] S424,将各预定道路路段在目标时间间隔内的路段平均速度,发送至数据存储系统中进行存储。
[0125] 需要说明的是,本实施例中对各技术特征的具体限定,可以与前文中对相应技术特征的限定相同,此处不加赘述。
[0126] 在一个实施例中,提供了一种路段平均速度的确定方法。该方法可以应用于本申请提供的路段平均速度的确定系统,如图5所示,该路段平均速度的确定系统500可以包括分布式消息系统502和流处理系统504。如图6所示,路段平均速度的确定方法可以包括如下步骤S602和S604。
[0127] 分布式消息系统502从外部获取车辆定位信息;其中,各车辆定位信息包括车辆位置点和车辆速度。
[0128] 流处理系统504获取目标时间间隔内从分布式消息系统得到的车辆定位信息,再基于流处理框架,从预定道路路段中分别确定各车辆位置点所属的道路路段,并基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。
[0129] 上述路段平均速度的确定方法,从分布式消息系统中获取携带车辆位置点和车辆速度的车辆定位信息,再基于流处理框架,对目标时间间隔内从分布式消息系统得到的车辆定位信息进行处理,以从预定道路路段中分别确定各车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。如此,通过具备高吞吐量及高可用性的分布式消息系统和具备快速计算能力的流处理框架,实现实时路段平均速度的计算,能够有效地提高计算路段平均速度时系统的可用性和实时性。
[0130] 在一个实施例中,在流处理系统504从预定道路路段中分别确定各车辆位置点所属的道路路段的步骤之前,还可以包括如下步骤:流处理系统504获取各预定道路路段的路段信息,路段信息包括路段位置。在此情况下,流处理系统504从预定道路路段中分别确定各车辆位置点所属的道路路段的步骤,可以包括如下步骤:流处理系统504基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离,车辆位置点对应的候选道路路段选取自各预定道路路段中;流处理系统504基于各车辆位置点到相应候选道路路段的距离,分别从各车辆位置点对应的候选道路路段中确定各车辆位置点所属的道路路段。
[0131] 在一个实施例中,在流处理系统504基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离的步骤之前,还可以包括如下步骤:流处理系统504基于各车辆位置点和各预定道路路段的路段位置,分别确定各车辆位置点所在的目标位置区域;流处理系统504分别将位于各车辆位置点所在的目标位置区域内的预定道路路段,对应确定为各车辆位置点对应的候选道路路段。
[0132] 在一个实施例中,流处理系统504基于各车辆位置点到相应候选道路路段的距离,分别从各车辆位置点对应的候选道路路段中确定各车辆位置点所属的道路路段的步骤,可以包括如下步骤:流处理系统504分别从各车辆位置点到相应候选道路路段的距离中,筛选出各车辆位置点对应的最小距离;流处理系统504分别基于各车辆位置点对应的目标道路路段,确定各车辆位置点所属的道路路段;其中,车辆位置点对应的目标道路路段包括与该车辆位置点对应的最小距离相对应的候选道路路段。
[0133] 在一个实施例中,车辆定位信息还包括车辆行驶方向,路段信息还包括路段方向。在此情况下,流处理系统504分别基于各车辆位置点对应的目标道路路段,确定各车辆位置点所属的道路路段的步骤,可以包括如下步骤:流处理系统504将各车辆位置点对应的车辆行驶方向,与各车辆位置点对应的目标道路路段的路段方向进行匹配;流处理系统504分别在各车辆位置点对应的车辆行驶方向与相应目标道路路段的路段方向匹配时,将车辆位置点对应的目标道路路段确定为车辆位置点所属的道路路段。
[0134] 在一个实施例中,在流处理系统504从预定道路路段中分别确定各车辆位置点所属的道路路段的步骤之前,还可以包括如下步骤:流处理系统504基于各预定道路路段的路段信息,生成二维搜索树。在此情况下,流处理系统504基于各车辆位置点和各预定道路路段的路段位置,分别确定各车辆位置点所在的目标位置区域的步骤,可以包括如下步骤:流处理系统504分别基于各车辆位置点搜索二维搜索树,确定各车辆位置点所在的目标位置区域。
[0135] 在一个实施例中,路段平均速度的确定系统500还可以包括道路数据预处理系统。在此情况下,路段平均速度的确定方法还可以包括如下步骤:道路数据预处理系统获取预定道路的原始道路数据,基于原始道路数据对预定道路进行分段,得到预定道路路段的路段位置,再基于预定道路路段的路段位置,确定预定道路路段的斜率,再基于预定道路路段的斜率,确定预定道路路段的第一方向,进而将第一方向转换为车辆定位信息所对应的参考系下的第二方向(即预定道路路段的路段方向),而后基于预定道路路段的路段位置和路段方向得到预定道路路段的路段信息。流处理系统504从道路数据预处理系统获取预定道路路段的路段信息。
[0136] 在一个实施例中,分布式消息系统包括Kafka系统。
[0137] 在一个实施例中,流处理框架包括Spark streaming处理框架。
[0138] 在一个实施例中,分布式消息系统包括Kafka系统,且流处理框架包括Sparkstreaming处理框架。
[0139] 在一个实施例中,流处理框架包括Spark streaming处理框架时,Spark streaming处理框架对应的运行模式为Spark on yarn模式。
[0140] 在一个实施例中,如图7所示,路段平均速度的确定系统500还可以包括数据存储系统506。在此情况下,如图8所示,在流处理系统504分别基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到各预定道路路段在目标时间间隔内的路段平均速度的步骤之后,还可以包括如下步骤:流处理系统504将各预定道路路段在目标时间间隔内的路段平均速度,发送至数据存储系统506。数据存储系统506将流处理系统504发送的路段平均速度进行存储。
[0141] 在一个实施例中,如图9所示,路段平均速度的确定系统500还可以包括车辆定位设备508。在此情况下,如图10所示,在分布式消息系统502从外部获取车辆定位信息的步骤之前,还可以包括车辆定位设备508采集车辆定位信息;据此,分布式消息系统从车辆定位设备508获取车辆定位信息。
[0142] 在一个实施例中,如图11所示,路段平均速度的确定系统500还可以包括道路拥堵处理系统510。在此情况下,如图12所示,在数据存储系统506将流处理系统504发送的路段平均速度进行存储的步骤之后,还可以包括如下步骤:道路拥堵处理系统510向数据存储系统506发送目标速度获取请求;数据存储系统506基于目标速度获取请求从本地存储的路段平均速度中查找目标路段平均速度,并将目标路段平均速度发送至道路拥堵处理系统510;道路拥堵处理系统510基于接收到的目标路段平均速度,确定目标路段平均速度所对应的预定道路路段的拥堵程度。
[0143] 其中,目标速度获取请求用于触发数据存储系统从本地存储的各路段平均速度中查找与目标速度获取请求对应的路段平均速度。目标速度获取请求可以包括待查位置,待查位置是需要查询道路拥堵程度的位置。
[0144] 具体地,需要查询道路拥堵程度的位置可以是待查位置点,在此情况下,数据存储系统506可以将该待查位置点附近的位置区域内的道路路段所对应的路段平均速度,作为目标路段平均速度返回至道路拥堵处理系统510。其中,待查位置点附近的位置区域可以类似于前文描述的车辆位置点所在的目标位置区域,此处不加赘述。
[0145] 需要查询道路拥堵程度的位置也可以是所有预定道路路段,在此情况下,数据存储系统506可以将各预定道路路段所对应的路段平均速度,作为目标路段平均速度返回至道路拥堵处理系统510。
[0146] 在一个实施例中,可以根据实际需求设定若干个预定数值区间,以及与各预定数值区间分别对应的各预定拥堵程度,进而在道路拥堵处理系统510接收目标路段平均速度后,可以在各预定数值区间中确定该目标路段平均速度所在的数值区间,再将与确定的数值区间所对应的预定拥堵程度,确定为目标路段平均速度所对应的预定道路路段的拥堵程度。
[0147] 举例说明,设定五个预定数值区间,分别为预定数值区间Q1至Q5,以及五个预定拥堵程度,分别为畅通、基本畅通、轻度拥堵、中度拥堵以及严重拥堵,预定数值区间Q1至Q5依次对应严重拥堵、中度拥堵、轻度拥堵、基本畅通以及畅通。假设,道路拥堵处理系统510接收到的目标路段平均速度位于预定数值区间Q2内,道路拥堵处理系统510将与预定数值区间Q2对应的“中度拥堵”这一预定拥堵程度,确定为该目标路段平均速度所对应的预定道路路段的拥堵程度。
[0148] 在一个实施例中,如图13所示,道路拥堵处理系统510可以包括用户终端5102和拥堵程度确定系统5104。在此情况下,如图14所示,道路拥堵处理系统510向数据存储系统506发送目标速度获取请求的步骤,可以包括如下步骤:用户终端5102响应于道路拥堵查询操作生成道路拥堵查询请求,并将道路拥堵查询请求发送至拥堵程度确定系统5104。并且,道路拥堵处理系统510基于接收到的目标路段平均速度,确定目标路段平均速度所对应的预定道路路段的拥堵程度的步骤,可以包括如下步骤:拥堵程度确定系统5104基于道路拥堵查询请求向数据存储系统506发送目标速度获取请求,并基于数据存储系统506返回的目标路段平均速度,确定目标路段平均速度所对应的预定道路路段的拥堵程度。此外,路段平均速度的确定方法还可以包括如下步骤:拥堵程度确定系统5104将拥堵程度发送至用户终端5102,用户终端5102输出接收到的拥堵程度。
[0149] 其中,道路拥堵查询操作可以是用于触发用户终端5102生成道路拥堵查询请求的操作,其可以由用户发起。比如,用户终端5102上安装有定位应用程序,道路拥堵查询操作可以是用户在定位应用程序的UI界面(User Interface,用户界面)上输入待查位置,在定位应用程序的UI界面上显示该待查位置附近的环境情况后,用户再点击定位应用程序的UI界面上的“开启实时路况”的控件。
[0150] 道路拥堵查询请求,用于触发拥堵程度确定系统5104基于道路拥堵查询请求生成目标速度获取请求。相应地,道路拥堵查询请求也可以包括待查位置。
[0151] 拥堵程度确定系统5104,是用户终端5102和数据存储系统506之间的中间设备,用于响应于道路拥堵查询操作生成道路拥堵查询请求,并将道路拥堵查询请求发送至拥堵程度确定系统5104,并基于道路拥堵查询请求向数据存储系统506发送目标速度获取请求,再基于数据存储系统506返回的目标路段平均速度,确定目标路段平均速度所对应的预定道路路段的拥堵程度,进而将确定的拥堵程度发送至用户终端5102。拥堵程度确定系统5104具体可以使用独立的机器节点(如服务器)或多于一个的机器节点组成的集群实现。
[0152] 用户终端5102在接收到拥堵程度确定系统5104发送的拥堵程度后,输出拥堵程度,以使用户了解到该拥堵程度。用户终端5102输出拥堵程度,具体可以是在用户终端的显示界面上展示拥堵程度,比如在定位应用程序的UI界面上用与该拥堵程度对应的颜色标记相应的道路路段,比如严重拥堵的道路路段用红色标记、畅通的道路路段用绿色标记等等。
[0153] 需要说明的是,本实施例中对各技术特征的具体限定,可以与前文中对相应技术特征的限定相同,此处不加赘述。
[0154] 在合理条件下应当理解,虽然前文各实施例涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0155] 在一个实施例中,如图15所示,提供了一种路段平均速度的确定装置1500。该装置可以包括如下模块1502至1506。
[0156] 定位信息获取模块1502,用于获取目标时间间隔内从分布式消息系统得到的车辆定位信息;其中,各车辆定位信息包括车辆位置点和车辆速度。
[0157] 道路路段确定模块1504,用于基于流处理框架,从预定道路路段中分别确定各车辆位置点所属的道路路段。
[0158] 路段速度获取模块1506,用于基于属于各预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。
[0159] 上述路段平均速度的确定装置1500,从分布式消息系统中获取携带车辆位置点和车辆速度的车辆定位信息,再基于流处理框架,对目标时间间隔内从分布式消息系统得到的车辆定位信息进行处理,以从预定道路路段中分别确定各车辆位置点所属的道路路段,进而基于属于预定道路路段的车辆位置点所对应的车辆速度,得到预定道路路段在目标时间间隔内的路段平均速度。如此,通过具备高吞吐量及高可用性的分布式消息系统和具备快速计算能力的流处理框架,实现实时路段平均速度的计算,能够有效地提高计算路段平均速度时系统的可用性和实时性。
[0160] 在一个实施例中,路段平均速度的确定装置1500还可以包括如下模块:路段信息获取模块,用于获取各预定道路路段的路段信息,路段信息包括路段位置。在此情况下,道路路段确定模块1504可以包括如下单元:距离确定单元,用于基于各车辆位置点和各车辆位置点对应的候选道路路段的路段位置,分别确定各车辆位置点到相应候选道路路段的距离,车辆位置点对应的候选道路路段选取自各预定道路路段中;所属路段确定单元,用于基于各车辆位置点到相应候选道路路段的距离,分别从各车辆位置点对应的候选道路路段中确定各车辆位置点所属的道路路段。
[0161] 在一个实施例中,道路路段确定模块1504可以包括如下单元:目标区域确定单元,用于基于各车辆位置点和各预定道路路段的路段位置,分别确定各车辆位置点所在的目标位置区域;候选路段确定单元,用于分别将位于各车辆位置点所在的目标位置区域内的预定道路路段,对应确定为各车辆位置点对应的候选道路路段。
[0162] 在一个实施例中,所属路段确定单元可以包括如下子单元:最小距离确定子单元,用于分别从各车辆位置点到相应候选道路路段的距离中,筛选出各车辆位置点对应的最小距离;所属路段确定子单元,用于分别基于各车辆位置点对应的目标道路路段,确定各车辆位置点所属的道路路段;其中,车辆位置点对应的目标道路路段包括与该车辆位置点对应的最小距离相对应的候选道路路段。
[0163] 在一个实施例中,车辆定位信息还包括车辆行驶方向,路段信息还包括路段方向。在此情况下,所属路段确定子单元可以用于:将各车辆位置点对应的车辆行驶方向,与各车辆位置点对应的目标道路路段的路段方向进行匹配;分别在各车辆位置点对应的车辆行驶方向与相应目标道路路段的路段方向匹配时,将车辆位置点对应的目标道路路段确定为车辆位置点所属的道路路段。
[0164] 在一个实施例中,路段平均速度的确定装置1500还可以包括如下模块:搜索树生成模块,用于基于各预定道路路段的路段信息,生成二维搜索树。在此情况下,目标区域确定单元用于分别基于各车辆位置点搜索二维搜索树,确定各车辆位置点所在的目标位置区域。
[0165] 在一个实施例中,路段平均速度的确定装置1500还可以包括如下模块:路段速度发送单元,用于将各预定道路路段在目标时间间隔内的路段平均速度,发送至数据存储系统中进行存储。
[0166] 在一个实施例中,路段平均速度的确定装置1500还可以包括如下模块:斜率确定模块,用于基于预定道路路段的路段位置,确定预定道路路段的斜率;第一方向确定模块,用于基于预定道路路段的斜率,确定预定道路路段的第一方向;第二方向确定模块,用于将第一方向转换为车辆定位信息所对应的参考系下的第二方向;预定道路路段的路段方向包括:预定道路路段在车辆定位信息所对应的参考系下的第二方向。
[0167] 在一个实施例中,分布式消息系统包括Kafka系统。
[0168] 在一个实施例中,流处理框架包括Spark streaming处理框架。
[0169] 在一个实施例中,分布式消息系统包括Kafka系统,且流处理框架包括Spark streaming处理框架。
[0170] 在一个实施例中,流处理框架包括Spark streaming处理框架时,Spark streaming处理框架对应的运行模式为Spark on yarn模式。
[0171] 需要说明的是,关于路段平均速度的确定装置1500的具体限定,可以参见前文中对于路段平均速度的确定方法的限定,在此不再赘述。上述路段平均速度的确定装置1500中的各个模块可全部或部分通过软件硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0172] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请任一实施例提供的路段平均速度的确定方法的步骤。
[0173] 具体地,该计算机设备具体可以是图1中的流处理系统130中的机器节点。如图16所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该处理器用于提供计算和控制能力。该存储器包括非易失性存储介质和内存储器,该非易失性存储介质存储有操作系统、计算机程序,该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现本申请任一实施例提供的路段平均速度的确定方法。
[0174] 本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0175] 在一个实施例中,本申请各实施例提供的路段平均速度的确定装置1500可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成路段平均速度的确定装置1500的各个程序模块,比如,图15所示的定位信息获取模块1502、道路路段确定模块1504以及路段速度获取模块1506。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各实施例的路段平均速度的确定方法中的步骤。
[0176] 比如,图16所示的计算机设备可以通过如图15所示的路段平均速度的确定装置1500中的定位信息获取模块1502执行步骤S202,通过道路路段确定模块1504执行步骤S204,通过路段速度获取模块1506执行步骤S206等等。
[0177] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0178] 据此,在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请任一实施例提供的路段平均速度的确定方法的步骤。
[0179] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0180] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈