一种数据处理方法、装置、计算机设备以及存储介质与流程

文档序号:24718993发布日期:2021-04-16 14:46阅读:102来源:国知局
一种数据处理方法、装置、计算机设备以及存储介质与流程

1.本申请涉及数据处理的技术领域,尤其涉及一种数据处理方法、装置、计算机设备以及存储介质。


背景技术:

2.随着计算机网络的不断发展,网上约车变得越发普遍。例如,乘客通常可以使用所持有的终端设备中所安装的约车客户端进行行程下单。
3.现有技术中,乘客通过所持有的终端设备中的约车客户端下单的行程会同步至约车客户端的后台服务器,进而该后台服务器可以根据每个司机的定位位置,从乘客下单的若干行程中,为司机匹配其最适合接单的行程,并可以将匹配到的行程发送给对应的司机。例如,后台服务器可以将具有的行程起点与司机的定位位置之间的距离最小的行程发送给司机所持有的终端设备,使得司机可以通过所持有的终端设备对获取到的行程进行接单。
4.但是,在实际的约车场景中,由于司机行驶区域的路况通常比较复杂,如道路拥挤的路况、道路维修的路况或者道路交通事故的路况等,因此,通过行程的行程起点与司机的定位位置之间的距离来为司机匹配最适合接单的行程,所匹配到的行程并不准确。


技术实现要素:

5.本申请提供了一种数据处理方法、装置、计算机设备以及存储介质,可提高对行驶对象进行行程派单的准确性。
6.本申请一方面提供了一种数据处理方法,包括:
7.获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;
8.将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取针对预备派单行程的第二行驶里程;第二行驶里程,为对象终端所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的行驶里程;第二时刻行驶位置所属的第二时刻晚于第一时刻行驶位置所属的第一时刻;
9.获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。
10.本申请一方面提供了一种数据处理装置,包括:
11.预备行程确定模块,用于获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;
12.行程发送模块,用于将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取针对预备派单行程的第二行驶里程;第二行驶里程,为对象终端所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的行驶里程;第二时刻行驶位置所属的第二时刻晚于第一时刻行驶位置所属的第一时刻;
13.状态更新模块,用于获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。
14.其中,待派单行程的数量为至少两个;
15.预备行程确定模块,包括:
16.行驶里程获取单元,用于分别获取每个待派单行程的行程起始位置与第一时刻行驶位置之间的第一行驶里程;
17.匹配确定单元,用于将所属的第一行驶里程小于接单里程阈值的待派单行程,确定为待匹配行程;
18.预备行程确定单元,用于根据待匹配行程,确定预备派单行程。
19.其中,行驶对象包括第一行驶对象和第二行驶对象;第一行驶对象所属的待匹配行程包括第一待匹配行程和第二待匹配行程;第二行驶对象所属的待匹配行程包括第一待匹配行程;
20.预备行程确定单元,包括:
21.第一匹配子单元,用于将第一待匹配行程,确定为第一行驶对象的匹配派单行程;
22.第二匹配子单元,用于当未检测到与第二行驶对象关联的除第一待匹配行程之外的待匹配行程,且检测到第一待匹配行程为第一行驶对象的匹配派单行程时,检测与第一行驶对象关联的除第一待匹配行程之外的待匹配行程;与第一行驶对象关联的除第一待匹配行程之外的待匹配行程包括第二待匹配行程;
23.第三匹配子单元,用于将检测到的第二待匹配行程重新确定为第一行驶对象的匹配派单行程,将第一待匹配行程确定为第二行驶对象的匹配派单行程;
24.匹配行程确定子单元,用于将第一行驶对象的匹配派单行程确定为第一行驶对象的预备派单行程,将第二行驶对象的匹配派单行程确定为第二行驶对象的预备派单行程。
25.其中,上述装置还用于:
26.当接单指示信息为未接单指示信息时,保持预备派单行程的行程接单状态为行程未接单状态,重新执行获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置分别与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程。
27.其中,已接单指示信息是由对象终端在检测到第二行驶里程小于或等于接单里程阈值时所发送的指示信息;未接单指示信息是由对象终端在检测到第二行驶里程大于接单里程阈值时所发送的指示信息。
28.其中,已接单指示信息是由对象终端在检测到第二行驶里程大于接单里程阈值,且检测到在时间段阈值内行驶对象无接单成功行程时,通过对可视化的预备派单行程进行接单触发操作所生成的。
29.其中,预备行程确定模块,包括:
30.区域获取单元,用于根据行驶对象所在的第一时刻行驶位置,获取行程检索区域;
31.待派单行程确定单元,用于将所属的行程起始位置处于行程检索区域中的已下单行程,确定为行驶对象所属的待派单行程。
32.其中,对象行驶区域被划分成至少两个区域网格;一个区域网格对应于对象行驶
区域的一个行驶子区域;
33.区域获取单元,包括:
34.中心网格确定子单元,用于将至少两个区域网格中,第一时刻行驶位置所在的行驶子区域对应的区域网格,确定为中心区域网格;
35.半径获取子单元,用于获取区域检索半径,根据区域检索半径和中心区域网格确定网格检索范围;中心区域网格处于网格检索范围的中心;
36.检索区域确定子单元,用于将网格检索范围内的区域网格对应的行驶子区域,确定为行程检索区域。
37.其中,上述装置还包括:
38.网格确定模块,用于获取至少两个已下单行程的行程起始位置,分别确定每个已下单行程的行程起始位置所在的行驶子区域对应的区域网格;
39.关系建立模块,用于建立每个已下单行程与所对应的区域网格之间的网格所属关系;
40.待派单行程确定单元,用于:
41.将至少两个已下单行程中,与网格检索范围内的区域网格具有网格所属关系的已下单行程,确定为待派单行程。
42.其中,上述装置还包括:
43.路线获取模块,用于获取从第一时刻行驶位置至待派单行程的行程起始位置的至少两条待选行驶路线;
44.开销参数获取模块,用于获取每条待选行驶路线对应的行驶开销参数;
45.目标路线确定模块,用于根据每条待选行驶路线对应的行驶开销参数,从至少两条待选行驶路线中确定目标行驶路线;
46.行驶里程确定模块,用于将目标行驶路线对应的行驶里程,确定为第一行驶里程。
47.其中,上述装置还包括:
48.第一时刻确定模块,用于将获取到行驶对象所属的待派单行程时的时刻,确定为第一时刻;
49.第一位置确定模块,用于将行驶对象在第一时刻所在的对象定位位置,确定为第一时刻行驶位置。
50.其中,上述装置还包括:
51.第二时刻确定模块,用于将发送预备派单行程给行驶对象所属的对象终端时的时刻,确定为第二时刻;
52.第二位置确定模块,用于将行驶对象在第二时刻所在的对象定位位置,确定为第二时刻行驶位置。
53.其中,上述装置还用于:
54.当检测到第一时刻与第二时刻之间的时刻差大于或等于时刻差阈值时,更新用于获取预备派单行程的派单系统参数,发送针对预备派单行程的派单延时警告消息至派单管理客户端。
55.本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
56.本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
57.根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
58.本申请可以获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的第二行驶里程;获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。由此可见,本申请提出的方法首先可以获取到行驶对象在第一时刻的预备派单行程,进而在将预备派单行程实际派单给行驶对象时,还会根据行驶对象在此时的第二时刻针对预备派单行程的实际接驾里程(即第二行驶里程),来最终确定是否要将预备派单行程派单给行驶对象。这可以实现当行驶对象在第二时刻针对预备派单行程的实际接驾里程较近时,才会将预备派单行程派单给行驶对象,因此提升了对行驶对象进行派单的准确性。
附图说明
59.为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1是本申请实施例提供的一种网络架构的结构示意图;
61.图2是本申请提供的一种行程派单的场景示意图;
62.图3是本申请提供的一种数据处理方法的流程示意图;
63.图4是本申请提供的一种获取编码串的场景示意图;
64.图5是本申请提供的一种获取待派单行程的场景示意图;
65.图6是本申请提供的一种行程匹配的场景示意图;
66.图7是本申请提供的一种行程匹配的场景示意图;
67.图8是本申请提供的一种行程派单的场景示意图;
68.图9是本申请提供的一种行程派单方法的流程示意图;
69.图10是本申请提供的一种数据处理装置的结构示意图;
70.图11是本申请提供的一种计算机设备的结构示意图。
具体实施方式
71.下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实
施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
72.请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器200、终端设备集群100a和终端设备集群100b。终端设备集群100a中包括一个或者多个乘客的终端设备,一个乘客可以有一个终端设备,此处不对终端设备集群100a中的终端设备的数量进行限制。终端设备集群100b中包括一个或者多个司机的终端设备,一个司机可以有一个终端设备,此处也不对终端设备集群100b中的终端设备的数量进行限制。乘客可以通过所属的终端设备进行行程下单,服务器200可以用于在乘客所下单的若干行程中为司机选取合适的行程进行接单,司机可以通过所属的终端设备对服务器200为自己选取的行程进行接单。
73.如图1所示,终端设备集群100a中可以具体可以包括终端设备101a、终端设备102a、终端设备103a、

、终端设备104a;终端设备101a、终端设备102a、终端设备103a、

、终端设备104a均可以与服务器200进行网络连接,以便于每个乘客的终端设备可以通过网络连接与服务器200之间进行数据交互。
74.同样,终端设备集群100b中可以具体可以包括终端设备101b、终端设备102b、终端设备103b、

、终端设备104b;终端设备101b、终端设备102b、终端设备103b、

、终端设备104b也均可以与服务器200进行网络连接,以便于每个司机的终端设备可以通过网络连接与服务器200之间进行数据交互。
75.如图1所示的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
76.由于服务器200为每个司机选取可接单的行程以对每个司机进行行程派单的过程是相同的,因此,此处结合上述网络结构以服务器200对一个司机(如终端设备101b所属的司机)进行行程派单的过程为例进行说明,请参见下述内容描述。
77.请一并参见图2,图2是本申请提供的一种行程派单的场景示意图。如图2所示,可以将终端设备101b所属的司机称之为目标司机,车辆100c可以是目标司机所驾驶的车辆,在目标司机驾驶车辆100c行驶的过程中,终端设备101b可以持续对司机的位置进行定位更新。其中,终端设备101b可以是目标司机所驾驶的车辆的车载设备,或者也可以是目标司机所持有的通讯设备(如手机、平板电脑或者笔记本电脑等)。
78.更多的,每个乘客都可以通过上述终端设备集群100a中所属的终端设备进行行程下单,每个乘客在使用所属的终端设备进行行程下单时,都可以通过所属的终端设备进行位置定位或者手动输入所下单的行程的行程起始位置,该行程起始位置也就是司机对行程接单后去接对应的乘客的位置,也就是乘客上车的位置。
79.可以理解的是,乘客所下单的所有行程都会记录在服务器200中,并且,终端设备101b所定位得到的目标司机的最新定位位置也会同步发送给服务器200。因此,当目标司机处于待接单的状态中时,服务器200可以通过获取到的目标司机的最新定位位置为目标司机匹配可以接单的行程。
80.其中,服务器200首先可以确定一个检索半径,服务器200可以以司机的最新定位位置为中心,以该检索半径为半径,得到一个行程检索区域110c。该检索半径的具体数值可以根据实际应用场景决定,例如检索半径可以为5km。因此,服务器可以200可以将乘客所下单的行程中,行程起始位置处于行程检索区域110c中的行程,作为目标司机的待派单行程。
81.如图2所示,乘客所下单的若干行程中,行程起始位置位于行程检索区域110c中的行程可以包括行程101c、行程102c、行程103c和行程104c。其中,可以将服务器200获取行程检索区域110c时司机的最新位置称之为第一时刻行驶位置105c,因此,该第一时刻行驶位置105c可以理解为是司机在第一时刻所在的定位位置。
82.因此,服务器200还可以计算从司机所在的第一时刻行驶位置105c分别行驶至行程101c的行程起始位置、行程102c的行程起始位置、行程103c的行驶起始位置和行程104c的行程起始位置的行驶里程,该行驶里程与实际选择的行驶路线相关,如该行驶里程可以为500米或者1000米等。
83.如图2所示,服务器200计算得到的司机从第一时刻行驶位置105c行驶至行程101c的行驶里程可以为行驶里程1,服务器200计算得到的司机从第一时刻行驶位置105c行驶至行程102c的行驶里程可以为行驶里程2,服务器200计算得到的司机从第一时刻行驶位置105c行驶至行程103c的行驶里程可以为行驶里程3,服务器200计算得到的司机从第一时刻行驶位置105c行驶至行程104c的行驶里程可以为行驶里程4。
84.进而服务器200可以根据行程101c、行程102c、行程103c和行程104c分别对应的行驶里程,从行程101c、行程102c、行程103c和行程104c中选取目标司机的预备派单行程107c,服务器200可以将该预备派单行程107c发送给目标司机的终端设备101b,进而让目标司机通过终端设备101b准备对预备派单行程107c进行行程接单。其中,服务器200如何从行程101c、行程102c、行程103c和行程104c中选取预备派单行程的过程可以参见下述图3对应的实施例中的相关描述。
85.可以理解为服务器200是从第一时刻开始为目标司机选取预备派单行程,可以将服务器200将预备派单行程发送至终端设备101b时的时刻称之为第二时刻,由于第一时刻与第二时刻之间有时刻差,第二时刻晚于第一时刻,因此,当终端设备101b获取到服务器200所发送的预备派单行程107c时,有可能目标司机已经驾车又行驶到了另外的位置,可以将该位置称之为第二时刻行驶位置106c,该第二时刻行驶位置106c也就是终端设备101b在第二时刻定位得到的目标司机的位置。可以理解的是,第一时刻行驶位置105c通常不为第二时刻行驶位置106c。
86.因此,此时需要终端设备101b再获取目标司机从第二时刻行驶位置106c驾车行驶至预备派单行程107c的行驶里程,该行驶里程可以是行驶里程5。当终端设备101b检测到行驶里程5小于或者等于接驾里程阈值108c时,终端设备101b可以对预备派单行程107c进行接单,到此服务器200对预备派单行程107c派单成功,即将预备派单行程107c派单给目标司机成功(如框109c)。该接驾里程阈值108c也就是司机针对可以进行接单的行程的最大接驾距离,行程的接驾距离也就是从司机所在的定位位置前往至行程的行程起始位置的行驶里程。
87.而当终端设备101b检测到行驶里程5大于接驾里程阈值108c时,终端设备101b可以不对预备派单行程107c进行接单,此时对预备派单行程107c派单失败,也就是对目标司
机派单失败,此种情况下,服务器200可以重新执行上述的过程,为目标司机选取新的预备派单行程,再进行行程派单。
88.通过本申请提供的方法,服务器200在向司机进行派单时,可以分为预备派单和实际派单两个步骤,预备派单即为上述将预备派单行程107c发送给终端设备101b,让终端设备101b准备对该预备派单行程107c进行接单,实际派单则是,终端设备101b还可以根据获取到预备派单行程107c时的定位位置(如上述第二时刻行驶位置)与预备派单行程107c的行程起始位置之间的行驶里程,决定是否要对预备派单行程进行接单,这可以提高对司机进行派单的准确性,防止司机实际接单时的位置到所接单的行程的行程起始位置的接驾距离过远的问题。
89.请参见图3,图3是本申请提供的一种数据处理方法的流程示意图,如图3所示,该方法可以包括:
90.步骤s101,获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;
91.具体的,本申请实施例中的执行主体可以是一个计算机设备或者多个计算机设备所构成的计算机设备集群。该计算机设备可以是服务器,也可以是终端设备。因此,本申请实施例中的执行主体可以是服务器,也可以是终端设备,还可以是由服务器和终端设备共同构成。此处,以本申请中的执行主体为服务器为例进行说明。
92.首选,需要进行说明的是,乘客可以通过所持有的终端设备进行行程下单,即创建行程订单。例如乘客的终端设备中可以安装有乘客端约车软件,乘客可以在终端设备的乘客端约车软件中进行行程下单。乘客在乘客端约车软件中所下单的行程都会同步至服务器,即服务器可以存储有乘客所下单的所有行程相关的行程信息,该行程信息可以包括行程起始位置和行程终止位置等信息。服务器可以是乘客端约车软件的后台服务器。
93.其中,行程起始位置即为乘客创建的行程的接驾位置,该接驾位置可以是乘客在创建行程时通过所持有的终端设备所定位的位置,或者该接驾位置可以是乘客自行输入的位置。换句话说,行程起始位置为行程的起点。
94.因此,行驶对象可以为驾车行驶的司机,行驶对象可以对乘客所下单的行程进行接单,而行驶对象所接单的行程,可以是服务器在乘客所下单的若干行程中选取出来的,请参见下述内容描述。
95.首先,服务器可以获取行驶对象所属的待派单行程:
96.行驶对象所持有的终端设备中可以安装有司机端约车软件,该司机端约车软件与上述乘客端约车软件的后台服务器可以是相同的。因此,行驶对象可以通过所持有的终端设备中的司机端约车软件对乘客所下单的行程进行接单。
97.行驶对象在驾车行驶的过程中,行驶对象所属的终端设备可以持续对行驶对象所在的位置进行定位更新,例如,行驶对象所属的终端设备可以每0.1秒更新一次行驶对象的定位位置,换句话说,行驶对象所属的终端设备可以不断获取到行驶对象在最新时刻的最新定位位置。行驶对象所属的终端设备可以将所定位得到的行驶对象的在每个时刻的定位位置都同步发送给服务器。因此,服务器中可以保存有行驶对象在每个时刻的定位位置。
98.因此,当行驶对象在所属的司机端约车软件中处于待接单状态时,服务器可以获
取到行驶对象的在第一时刻所在的定位位置(可以称为对象定位位置),该定位位置可以称之为行驶对象所在的第一时刻行驶位置。该第一时刻可以是行驶对象在司机端约车软件中刚处于待接单状态的时刻。该第一时刻可以理解为服务器开始为行驶对象匹配适合接单的行程的时刻。
99.进而,服务器可以根据行驶对象所在的第一时刻行驶位置,获取行驶对象所属的待派单行程:服务器可以以行驶对象所在的第一时刻行驶位置为中心,以某个阈值(可以根据实际应用场景进行设置)为半径,得到一个检索区域。服务器可以将乘客所下单的行程中行程起始位置处于该检索区域中的行程,作为行驶对象的待派单行程。
100.可选的,在实际应用场景中,服务器可以通过区域网格来检索得到行驶对象在第一时刻行驶位置处的待派单行程,请参见下述内容描述:
101.其中,可以将行驶对象行驶的区域(实际上可以包括地图中的全部区域)称之为对象行驶区域。可以将对象行驶区域划分为多个区域网格,一个区域网格对应于对象行驶区域的一个行驶子区域。换句话说,可以将对象行驶区域分割为多个小区域,一个小区域为一个行驶子区域,一个小区域对应于一个区域网格。
102.更多的,还可以计算对象行驶区域中的每个区域网格的网格索引值(即geoindex值),该网格索引值可以通过区域网格所包含的任意位置的经度和纬度进行计算,通过一个区域网格中的任意位置处的经度和纬度计算出来的网格索引值都是相同的。下面描述如何通过一个区域网格中的某个位置的经纬度来计算该个区域网格的网格索引值。
103.首先,可以根据区域网格中的某个位置的经度和纬度,来计算geohash(一种空间索引的方式)二进制编码:其中,可以先对该个位置的纬度进行geohash二进制编码,地球纬度的区间为[

90,90],假设该个位置的纬度是39。可以对地球纬度的区间[

90,90]进行二分,得到区间[

90,0]和区间[0,90]。
[0104]
可以将区间[

90,0]称之为左区间,将区间[0,90]称之为右区间,可以看出纬度39处于右区间[0,90]中,则可以将纬度的二进制编码的第1位标记为1。接着,再对纬度39所处的区间[0,90]进行二分,得到左区间[0,45]和右区间[45,90],可以看出纬度39处于左区间[0,45]中,则可以将纬度的二进制编码的第2位标记为0。
[0105]
因此,可以不断对纬度39所在的区间进行二分,得到一个左区间(值更小的区间)和一个右区间(值更大的区间),当纬度39处于左区间,则对应可以将纬度的二进制编码的当前位标记为0,当纬度39处于右区间,则对应可以将纬度的二进制编码的当前位标记为1。可以设置纬度的二进制编码的精度,该精度可以理解为是纬度的二进制编码的位数,该精度决定了对纬度39所在区间的划分次数。例如,该精度可以为10,则纬度39的二进制编码可以为10位,即为10111 00011。
[0106]
接着,可以对该个位置的经度进行geohash二进制编码,地球经度的区间是[

180,180],假设该个位置的经度是116。同样,可以对地球经度的区间[

180,180]进行二分,得到左区间[

180,0]和右区间[0,180],可以看出,经度116处于右区间[0,180]中,因此,可以将经度的二进制编码的第1位记为1。
[0107]
接着,可以再次对经度116所处的右区间[0,180]进行二分,得到左区间[0,90]和右区间[90,180],因此,可以看出,经度116处于右区间[90,180]中,则可以将经度的二进制编码的第2位标记为1。同理,可以不断对经度116所在的区间进行二分,得到一个左区间(值
更小的区间)和一个右区间(值更大的区间),当经度116处于左区间,则对应可以将纬度的二进制编码的当前位标记为0,当经度116处于右区间,则对应可以将纬度的二进制编码的当前位标记为1。
[0108]
同样,可以设置经度的二进制编码的精度,该精度可以理解为是经度的二进制编码的位数,该精度决定了对经度116所在区间的划分次数。例如,该精度可以为10,则经度116的二进制编码可以为10位,即为11010 01011。其中,经度的二进制编码的精度通常和纬度的二进制编码的精度相同。
[0109]
因此,对该个位置的纬度39进行geohash编码,可以得到编码串10111 00011,对该个位置的经度116进行geohash编码,可以得到编码串11010 01011。接着,可以对纬度的编码和经度的编码串进行组合,得到一个新的编码串。具体的,可以将第1位计数为0(偶数),第2位计数为1(奇数),
……
,第10位计数为9(奇数)。可以在计数为偶数的位(可以称之为偶数位)放经度,在计数为奇数的位(可以称之为奇数位)放纬度。则对编码串10111 00011和编码串11010 01011进行组合,可以得到新的编码串11100 11101 00100 01111。
[0110]
请参见图4,图4是本申请提供的一种获取编码串的场景示意图。如图4所示,假设某个位置的经度是116,纬度是39,经度116的编码串100d为11010 01011,纬度39的编码串101d为10111 00011。对编码串100d和编码串101d进行组合,可以得到编码串102d,组合的原理就是,在计数为偶数的位(可以称之为偶数位)放经度,在计数为奇数的位(可以称之为奇数位)放纬度。
[0111]
其中,编码串102d的第1位计数为0,属于偶数位,因此编码串102d的第1位“1”是编码串100d的第1位“1”;编码串102d的第2位计数为1,属于奇数位,因此编码串102d的第2位“1”是编码串101d的第1位“1”;编码串102d的第3位计数为2,属于偶数位,因此编码串102d的第3位“1”是编码串100d的第2位“1”;编码串102d的第4位计数为3,属于奇数位,因此编码串102d的第4位“0”是编码串101d的第2位“0”;编码串102d的第5位计数为4,属于偶数位,因此编码串102d的第5位“0”是编码串100d的第3位“0”。
[0112]
同理,编码串102d的第6位计数为5,属于奇数位,因此编码串102d的第6位“1”是编码串101d的第3位“1”;编码串102d的第7位计数为6,属于偶数位,因此编码串102d的第7位“1”是编码串100d的第4位“1”;编码串102d的第8位计数为7,属于奇数位,因此编码串102d的第8位“1”是编码串101d的第4位“1”;编码串102d的第9位计数为8,属于偶数位,因此编码串102d的第9位“0”是编码串100d的第5位“0”;编码串102d的第10位计数为9,属于奇数位,因此编码串102d的第10位“1”是编码串101d的第5位“1”。
[0113]
同理,编码串102d的第11位计数为10,属于偶数位,因此编码串102d的第11位“0”是编码串100d的第6位“0”;编码串102d的第12位计数为11,属于奇数位,因此编码串102d的第12位“0”是编码串101d的第6位“0”;编码串102d的第13位计数为12,属于偶数位,因此编码串102d的第13位“1”是编码串100d的第7位“1”;编码串102d的第14位计数为13,属于奇数位,因此编码串102d的第14位“0”是编码串101d的第7位“0”;编码串102d的第15位计数为14,属于偶数位,因此编码串102d的第15位“0”是编码串100d的第8位“0”。
[0114]
同理,编码串102d的第16位计数为15,属于奇数位,因此编码串102d的第16位“0”是编码串101d的第8位“0”;编码串102d的第17位计数为16,属于偶数位,因此编码串102d的第17位“1”是编码串100d的第9位“1”;编码串102d的第18位计数为17,属于奇数位,因此编
码串102d的第18位“1”是编码串101d的第9位“1”;编码串102d的第19位计数为18,属于偶数位,因此编码串102d的第19位“1”是编码串100d的第10位“1”;编码串102d的第20位计数为19,属于奇数位,因此编码串102d的第20位“1”是编码串101d的第10位“1”。
[0115]
因此,在对某个位置的经度的编码串和纬度的编码串进行组合,得到新的编码串(例如编码串102d)之后,可以将该新的编码串从二进制转换为十进制,所得到的数值即为该个位置所在的区域网格的网格索引值。例如,当对某个位置的经度的编码串和纬度的编码串进行组合,得到的新的编码串为上述编码串102d(即11100 11101 00100 01111)时,该编码串102d的十进制值7325935即为该个位置所属的区域网格的网格索引值。
[0116]
更多的,在某些场景下,可以将上述所得到的新的编码串(例如编码串102d)从二进制格式编码成可见的字符串进行存储,例如可以将所得到的新的编码串进行base32编码(一种编码方式),得到一个新的字符串进行存储。其中,对新的编码串102d进行base32编码的过程可以为:可以将编码串102d中的每组二进制字符串转换为十进制,具体为,可以将编码串102d(即11100 11101 00100 01111)中的第1组二进制字符串11100转换为十进制28,将编码串102d(即11100 11101 00100 01111)中的第2组二进制字符串11101转换为十进制29,将编码串102d(即11100 11101 00100 01111)中的第3组二进制字符串00100转换为十进制4,将编码串102d(即11100 11101 00100 01111)中的第4组二进制字符串01111转换为十进制15,因此依次可以得到数值28、29、4和15。
[0117]
而base编码就是根据下述表1中的编码表进行编码。
[0118][0119]
表1
[0120]
由上述表1的编码表可知,28对应于w,29对应于x,4对应于4,15对应于g,因此,对编码串102d进行base32编码所得到的字符串就为wx4g,可以将对编码串进行base32编码所得到的字符串记为geohash。
[0121]
其中,可以使用redis(一种存储系统)的zset(一种数据存储类型)来存储每个区域网格与乘客所下单的每个行程之间的网格所属关系。可以将乘客所下单的行程称之为已下单行程,由于服务器可以获取到每个已下单行程的行程起始位置,因此,若某个已下单行程的行程起始位置在某个区域网格对应的行驶子区域中,则服务器可以建立该已下单行程与其所在的行驶子区域对应的区域网格之间的网格所属关系。例如,若区域网格a1与已下单行程a2之间具备网格所属关系,则表明已下单行程a2的行程起始位置处于区域网格a1对应的行驶子区域中。
[0122]
其中,服务器在获取到已下单行程时,可以通过已下单行程的行程起始位置的经度和纬度,计算得到网格索引值(具体计算过程可以参见上述),通过该网格索引值可以查找到对应的区域网格,因此,通过计算得到的网格索引值即可建立已下单行程与查找到的区域网格之间的网格所属关系。
[0123]
更多的,服务器还可以创建行驶对象与所属区域网格之间的网格所属关系。由于行驶对象的实时定位位置是不断变化的,因此,与行驶对象具有网格所属关系的区域网格也会不断更新,行驶对象所属的区域网格也就是行驶所在的实时定位位置所在的行驶子区域对应的区域网格。
[0124]
例如,若是以1秒1次的频率获取行驶对象的实时定位位置(简称定位位置),那么,服务器就可以以1秒1次的频率更新与行驶对象具有网格所属关系的区域网格。例如,在时刻t1行驶对象的定位位置为定位位置z1,则行驶对象可以与区域网格w1具有网格所属关系,定位位置z1处于区域网格w1对应的行驶子区域中。随着行驶对象驾驶的车辆的行驶,在时刻t2行驶对象的定位位置变为了定位位置z2,则行驶对象可以与区域网格w2具有网格所属关系,定位位置z2处于区域网格w2对应的行驶子区域中。
[0125]
更多的,服务器可以通过行驶对象所在的第一时刻行驶位置,获取行程检索区域,该行程检索区域可以根据第一时刻行驶位置所属的区域网格得到:服务器可以将行驶对象所在的行驶子区域对应的区域网格,作为中心区域网格,该中心区域网格也就是在第一时刻与行驶对象具有网格所属关系的区域网格。
[0126]
接着,服务器还可以获取区域检索半径,该区域检索半径表征了要查找离行驶对象的第一时刻行驶位置多远的已下单行程,也就是查找离中心区域网格多远的其他区域网格。服务器可以根据中心区域网格以及该区域检索半径得到网格检索范围。例如,该网格检索范围可以为以中心区域网格作为中心,包括该中心周围n圈网格的检索范围。n可以根据区域检索半径以及区域网格的精度确定,如下述。
[0127]
采用不同位数的geohash,区域网格的位置精度就不同。例如,若存储是采用6位的geohash(即上述纬度的二进制编码串和经度的二进制编码串均为6位)时,其位置的精度就为610米,换句话说,在610米内的每个位置所计算出的geohash均是相同的,其对应于同一个区域网格。那么当区域检索半径为5km(即5000米)时,由于5000除以610等于8.2,则需要将中心区域网格周围9圈(因为9为大于8.2的最小的正整数)的区域网格所在的网格范围,作为网格检索范围,中心区域网格为该网格检索范围的中心。具体采用多少位的geohash,根据实际应用场景决定,对此不作限制。
[0128]
服务器可以将网格检索范围内的区域网格对应的行驶子区域,均作为行程检索区域。因此,可以将乘客所下单还未被接单的已下单行程中,行程起始位置处于该行程检索区域中的已下单行程,作为行驶对象的待派单行程。乘客所下单还未被接单的已下单行程中,行程起始位置处于该行程检索区域中的已下单行程,也就是与网格检索范围中的区域网格具有网格所属关系的已下单行程。因此,行驶对象的待派单行程可以是与网格检索范围中的区域网格具有网格所属关系的所有已下单行程。
[0129]
其中,由于是通过zset来存储区域网格与已下单行程之间的网格所属关系,因此,获取行驶对象的待派单行程的具体过程可以为:当计算得到待拼行程起始位置所属的区域网格(即中心区域网格)的网格索引值之后,服务器可以通过libgeohash库(一种第三方库,
用于与geohash算法(一种经纬度编码算法)交互)计算出以中心区域网格为中心的网格检索范围(例如中心区域网格的周围9圈区域网格的范围)内的全部区域网格的网格索引值。
[0130]
接着,服务器可以获取到计算出的网格检索范围内的全部区域网格的网格索引值中的最大值(可以称之为最大索引值)和最小值(可以称之为最小索引值)。由于对zset所存储的数据进行检索时,是通过查找范围进行查找的,因此,此处可以指定查找范围就为该最小索引值到该最大索引值之间的范围。
[0131]
服务器可以在zset中查找到网格索引值在最小索引值到最大索引值之间的区域网格,但是通过查找范围在zset中查找到的区域网格中,可能有不属于网格检索范围中的区域网格,因此,还需要将从zset中查找到的不属于网格检索范围内的区域网格过滤掉,即可在zset中查找到网格检索范围内的区域网格,继而可以从zset中获取到与查找到的网格检索范围内的区域网格具有网格所属关系的已下单行程,作为行驶对象的待派单行程。其中,通过zset来存储区域网格与已下单行程之间的网格所属关系,可以比较快速地查找到与区域网格具有网格所属关系的已下单行程。
[0132]
请参见图5,图5是本申请提供的一种获取待派单行程的场景示意图。网格100e中包括多个区域网格,网格中的一个格子为一个区域网格,格子中的数字为区域网格的网格索引值,一个区域网格对应于一个行驶对象的一个行驶子区域。假设,区域网格102e对应的区域网格为行驶对象所在的第一时刻行驶位置所属的区域网格,即区域网格102e为中心区域网格,中心区域网格的网格索引值为60。假设要查找中心区域网格周围一圈的区域网格,即网格检索范围101e为区域网格102e周围一圈的区域网格的范围。
[0133]
那么,由图4所示,网格检索范围101e内的区域网格包括网格索引值为51的区域网格、网格索引值为54的区域网格、网格索引值为55的区域网格、网格索引值为57的区域网格、网格索引值为60的区域网格、网格索引值为61的区域网格、网格索引值为59的区域网格、网格索引值为62的区域网格和网格索引值为63的区域网格。
[0134]
因此,区域检索范围101e中的区域网格的网格索引值中,最小的网格索引值为51,最大的网格索引值为63。可以在zset中可以查找出网格索引值在51到63中的所有区域网格,因此,如图4所示,在zset中查找出的区域网格除了网格检索区域101e中的区域网格之外,还另外查找到了虚线框中网格索引值为52的区域网格、网格索引值为53的区域网格、网格索引值为56的区域网格以及网格索引值为58的区域网格。因此,需要从zset中查找到的区域网格中过滤掉虚线框中网格索引值为52的区域网格、网格索引值为53的区域网格、网格索引值为56的区域网格以及网格索引值为58的区域网格。过滤完成后,最终在zset中查找到的网格就为区域103e中的区域网格,也就是网格检索区域101e中的区域网格。
[0135]
由上可知,在zset中查找到的最终的区域网格包括网格索引值为51的区域网格、网格索引值为54的区域网格、网格索引值为55的区域网格、网格索引值为57的区域网格、网格索引值为60的区域网格、网格索引值为61的区域网格、网格索引值为59的区域网格、网格索引值为62的区域网格和网格索引值为63的区域网格,因此,服务器可以获取到与网格索引值为51的区域网格具有网格所属关系的已下单行程1、与网格索引值为54的区域网格具有网格所属关系的已下单行程2、与网格索引值为55的区域网格具有网格所属关系的已下单行程3、与网格索引值为57的区域网格具有网格所属关系的已下单行程4、与网格索引值为60的区域网格具有网格所属关系的已下单行程5、与网格索引值为61的区域网格具有网
格所属关系的已下单行程6、与网格索引值为59的区域网格具有网格所属关系的已下单行程7、与网格索引值62的区域网格具有网格所属关系的已下单行程8、以及与网格索引值为63的区域网格具有网格所属关系的已下单行程9。
[0136]
因此,服务器可以将已下单行程1、已下单行程2、已下单行程3、已下单行程4、已下单行程5、已下单行程6、已下单行程7、已下单行程8和已下单行程9,均作为行驶对象的待派单行程104e。其中,已下单行程1、已下单行程2、已下单行程3、已下单行程4、已下单行程5、已下单行程6、已下单行程7、已下单行程8和已下单行程9均可以包括一个或者多个(至少两个)已下单行程。
[0137]
通过上述过程,服务器即可获取到行驶对象的一个或者多个待派单行程。
[0138]
服务器还可以分别获取到每个待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的行驶里程,可以将该行驶里程称之为第一行驶里程。换句话说,第一行驶里程也就是行驶对象在第一时刻从第一时刻行驶对象行驶至待派单行程的行程起始位置一共需要行驶的里程数,例如第一行驶里程可以为5千米等。
[0139]
可选的,由于作为本申请中的执行主体的服务器可以为服务器集群,因此,该服务器集群中可以包括派单服务器和路线规划服务器。其中,该派单服务器可以用于从乘客所下单的若干行程中,为行驶对象选取合适的行程(如下述预备派单行程)让行驶对象进行接单。而在派单服务器为行驶对象选取合适的已下单行程的过程中,会涉及到上述第一行驶里程的计算,因此计算第一行驶里程的任务可以交由路线规划服务器来计算,以减轻派单服务器的计算压力。
[0140]
其中,上述获取行驶对象所属的待派单行程的过程可以由派单服务器进行,因此派单服务器在获取到行驶对象所属的待派单行程时,派单服务器可以将该待派单行程发送给行驶对象所属的终端设备,进而行驶对象所属的终端设备可以向路线规划服务器,获取待派单行程的行程起始位置与第一时刻行驶位置之间的行驶里程,即获取上述第一行驶里程。
[0141]
可选的,路线规划服务器获取从第一时刻行驶位置到待派单行程的行程起始位置的第一行驶里程的过程可以为:路线规划服务器可以获取从第一时刻行驶位置到待派单行程的行程起始位置的可行的一条或者多条行驶路线,可以将该行驶路线称之为待选行驶路线。
[0142]
接着,路线规划服务器还可以获取每条待选行驶路线对应的行驶开销参数,该行驶开销参数可以包括行驶时间参数、行驶里程参数以及行驶缴费(如途经某些收费站需要收费)参数等。路线规划服务器可以对行驶开销参数中的各个参数进行加权求和,即可得到最终的一个开销参数。开销参数越大表明对应的待选行驶路线越不可选,反之,开销参数越小表明对应的待选行驶路线越可选,即可以优先选取开销参数越小的待选行驶路线。因此,路线规划服务器可以将开销参数最小的待选行驶路线,作为目标行驶路线。进而,路线规划服务器可以将目标行驶路线对应的行驶里程,作为待派单行程的第一行驶里程。
[0143]
进而,行驶对象所属的终端设备可以将所有待派单行程中对应的第一行驶里程小于或者等于接单里程阈值的待派单行程,发送给派单服务器,进而再由派单服务器从对应的第一行驶里程小于或者等于接单里程阈值的待派单行程中,为行驶对象选取预备派单行程,该预备派单行程也就是派单服务器所选取的准备派单给行驶对象的行程。其中,接单里
程阈值也就是接驾里程的最大值,某个行程的接驾里程也就是行驶对象从当前位置(如第一时刻行驶位置)行驶至该行程的行程起始位置需要行驶的里程数。
[0144]
下述还是统一以服务器作为执行主体,从对应的第一行驶里程小于或者等于接单里程阈值的待派单行程中,为行驶对象选取预备派单行程的过程进行说明。可以知道的是,若是通过派单服务器获取行驶对象的预备派单行程,则该过程与下述过程相同:
[0145]
其中,可以将对应的第一时刻行驶位置小于或者等于接单里程阈值的待派单行程称之为待匹配行程,该待匹配行程的数量可以是一个也可以多个。服务器可以从待匹配行程中,选取行驶对象的预备派单行程。
[0146]
可选的,服务器可以采取最大匹配算法,从待匹配行程中为行驶对象匹配预备派单行程,这可以使得针对乘客所下单的行程的成单率(即接单率也可以理解为排单率)。如何采取最大匹配算法为行驶对象选取预备派单行程的过程可以参见下述内容描述。
[0147]
假设上述行驶对象包括两个行驶对象,该两个行驶对象分别为第一行驶对象和第二行驶对象。第一行驶对象所属的待匹配行程可以有两个,分别为第一待匹配行程和第二待匹配行程。第二行驶对象所属的待匹配行程可以有一个,该个待匹配行程可以是第一待匹配行程。由此可见,第一行驶对象和第二行驶对象有一个共同的待匹配行程,即第一待匹配行程。
[0148]
首先,服务器可以依次为第一行驶对象和第二行驶对象选取匹配派单行程,第一行驶对象的匹配派单行程是从第一行驶对象的待匹配行程中选取的,第二行驶对象的匹配派单行程是从第二行驶对象的待匹配行程中选取的。为第一行驶对象和第二行驶对象选取匹配派单行程的顺序可以是随机的,假设此处是先为第一行驶对象选取匹配派单行程,再为第二行驶对象选取匹配派单行程:
[0149]
服务器可以从第一行驶对象的第一待匹配行程和第二待匹配行程中随机选取一个待匹配行程,作为第一行驶对象的匹配派单行程。或者,服务器也可以将第一待匹配行程和第二待匹配行程中对应的第一行驶里程最小的待匹配行程作为第一行驶对象的匹配派单行程。此处,假设服务器将第一待匹配行程作为了第一行驶对象的匹配派单行程。
[0150]
接着,服务器可以为第二行驶对象选取匹配派单行程。而此时,在服务器为第二行驶对象选取匹配派单行程时,发现第二行驶对象所属的第一待匹配行程已经分配给第一行驶对象,作为了第一行驶对象的匹配派单行程了,并且,服务器又没有检测到第二行驶对象所属的其他待匹配行程,因此,此时,服务器会返回去检测第一行驶对象所属的待匹配行程除了第一待匹配行程之外,是否还有其他的待匹配行程。而第一行驶对象所属的待匹配行程除了第一待匹配行程之外,还有第二待匹配行程。
[0151]
因此,服务器可以将检测到的第一行驶对象所属的第二待匹配行程,重新作为第一行驶对象的匹配派单行程,此时第一待匹配行程就不再是第一行驶对象的匹配派单行程,因此服务器可以将第一待匹配行程作为第二行驶对象的匹配派单行程。
[0152]
通过上述过程,最终可以确定第一行驶对象的匹配派单行程为第二待匹配行程,第二行驶对象的匹配派单行程为第一待匹配行程。进而,服务器可以将第一行驶对象最终的匹配派单行程(即第二待匹配行程)作为第一行驶对象的预备派单行程,将第二行驶对象最终的匹配派单行程(即第一待匹配行程)作为第二行驶对象的预备派单行程。
[0153]
其中,上述只是采用两个行驶对象对为行驶对象匹配预备派单行程的过程为例进
行说明,实际上,不论行驶对象有多少个,均可以采用与上述相同的过程为每个行驶对象匹配对应的预备派单行程。该过程的原理就为,当存在若干个行驶对象,服务器可以采取随机的顺序依次为该若干个行驶对象匹配预备派单行程,当服务器检测到当前所匹配的行驶对象的待匹配行程已经被设定为了之前的行驶对象的匹配派单行程,又没检测到当前匹配的行驶对象其他的待匹配行程,则服务器可以返回去检测之前匹配的、所属的匹配派单行程为当前正在匹配的行驶对象的待匹配行程的行驶对象是否还有其他的待匹配行程(即除了当前正在匹配的行驶对象的待匹配行程之外的待匹配行程),若有,则检测该其他的待匹配行程是否被设定为了再之前所匹配的行驶对象,若没有设定,则可以将该其他的待匹配行程,重新作为之前匹配的行驶对象的匹配派单行程,若有设定,再继续检测上述再之前匹配的行驶对象是否还有其他的待匹配行程(除之前所匹配的行驶对象的待匹配行程之外的待匹配行程),如此循环,一直检测到有空闲的待匹配行程(为设定为某个行驶对象的匹配派单行程)或者一直检测到最开始所匹配的行驶对象的待匹配行程结束。
[0154]
通过上述过程,即可获取到各个行驶对象的预备派单行程。需要进行说明的是,上述为行驶对象选取预备派单行程的过程对于行驶对象可以是完全无感的,即可以无需让用户(如司机)感知到为其匹配预备派单行程的过程。
[0155]
请参见图6,图6是本申请提供的一种行程匹配的场景示意图。如图6所示,行驶对象可以包括第一行驶对象100g和第二行驶对象101g。第一行驶对象100g的待派单行程可以包括第一待派单行程102g和第二待派单行程103g,第二行驶对象101g的待派单行程可以包括第一待派单行程102g。
[0156]
如框104g所示,在初次匹配时,首先,服务器可以将第一待派单行程102g作为第一行驶对象100g的匹配派单行程,进而,在为第二行驶对象101g选取匹配派单行程时,发现第二行驶对象101g唯一的待派单行程都已经选作为了第一行驶对象100g的匹配派单行程,因此,在初次匹配时,获取不到第二行驶对象101g的匹配派单行程。
[0157]
因此,服务器可以更新上述初次匹配的结果。如框105g所示,服务器可以再返回去检测第一行驶对象100g所属的待派单行程中除了第一待派单行程102g之外,是否还有其他的待派单行程。而第一行驶对象100g所属的待派单行程中除了第一待派单行程102g之外,其他的待派单行程还有第二待派单行程103g。
[0158]
因此,此时,服务器可以将检测到的第二待派单行程103g重新作为第一行驶对象100g的匹配派单行程,此时第一待派单行程102g就不再是第一行驶对象100g的匹配派单行程。因此,服务器就可以将第一待派单行程102g作为第二行驶对象101g的匹配派单行程。
[0159]
进而,服务器可以将第一行驶对象100g的匹配派单行程(即第二待派单行程103g)作为第一行驶对象100g的预备派单行程,将第二行驶对象101g的匹配派单行程(即第一待派单行程102g)作为第二行驶对象101g的预备派单行程。通过上述过程,最终就为第一行驶对象100g和第二行驶对象101g都获取到了对应的预备派单行程。
[0160]
请参见图7,图7是本申请提供的一种行程匹配的场景示意图。行驶对象可以包括行驶对象1、行驶对象2和行驶对象3。其中,行驶对象1的待派单行程可以包括待派单行程1和待派单行程2,行驶对象2的待派单行程可以包括待派单行程2和待派单行程3,行驶对象3的待派单行程可以包括待派单行程3。
[0161]
因此,在初次匹配时,服务器可以将待派单行程2作为行驶对象1的匹配派单行程,
将待派单行程3作为行驶对象2的匹配派单行程,这导致行驶对象3唯一的待派单行程3已经被选作为了行驶对象2的匹配派单行程,因此,在初次匹配时获取不到行驶对象3的匹配派单行程。
[0162]
服务器可以对上述初次匹配的结果进行更新:
[0163]
s1:服务器可以向上返回检测行驶对象2是否还有除待派单行程3之外的待派单行程,并检测到行驶对象2的待派单行程2。s2:当服务器发现行驶对象2所属的待派单行程2已经被行驶对象1占用了,即已经选作为了行驶对象1的匹配派单行程,服务器还可以继续向上返回检测行驶对象1所属的待派单行程除了有待派单行程2之外是否还有其他待派单行程,并检测到了行驶对象1所属的待派单行程除了有待派单行程2之外还有待派单行程1,并且待派单行程1还处于空闲状态,即待派单行程1还没有选作为其他行驶对象的匹配派单行程。
[0164]
s3:因此,服务器可以将检测到的行驶对象1的待派单行程1重新作为行驶对象1的匹配派单行程,待派单行程2就不再是行驶对象1的匹配派单行程。继而,服务器可以将待派单行程2重新作为行驶对象2的匹配派单行程,待派单行程3就不再是行驶对象2的匹配派单行程。进而,服务器就可以将待派单行程3作为行驶对象3的匹配派单行程。
[0165]
有上述过程最终所匹配的结果就是:行驶对象1的匹配派单行程就为待派单行程1,行驶对象2的匹配派单行程就为待派单行程2,行驶对象3的匹配派单行程就为待派单行程3。通过此种方式,可以提高乘客所下单的已下单行程的成单率,也就是可以提高针对已下单行程的派单率。
[0166]
步骤s102,将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取针对预备派单行程的第二行驶里程;第二行驶里程,为对象终端所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的行驶里程;第二时刻行驶位置所属的第二时刻晚于第一时刻行驶位置所属的第一时刻;
[0167]
具体的,服务器可以将获取到的预备派单行程发送给行驶对象所属的终端设备,可以将该终端设备称之为对象终端。其中,可以将服务器发送预备派单行程给对象终端时的时刻称之为第二时刻,若不考虑数据传输的延时,该第二时刻也就是对象终端获取到预备派单行程时的时刻。
[0168]
可以将对象终端所定位得到的行驶对象在第二时刻时的定位位置(可以称为对象定位位置),称之为行驶对象所在的第二时刻行驶位置。由此可见,第二时刻行驶位置所属的第二时刻要晚于第一时刻行驶位置所属的第一时刻。
[0169]
对象终端可以向服务器获取从该第二时刻行驶对象行驶至预备派单行程的行程起始位置的行驶里程,可以将该行驶里程称之为第二行驶里程。该第二行驶里程的获取原理与上述第一行驶里程的获取原理相同。
[0170]
进而,当对象终端检测到该第二行驶里程小于或者等于上述接单里程阈值时,对象终端就可以对该预备派单行程进行接单,并生成已接单指示信息。反之,当对象终端检测到该第二行驶里程大于上述接单里程阈值时,对象终端可以不对该预备派单行程进行接单,并生成未接单指示信息。当对象终端生成已接单指示信息或者未接单指示信息时,都可以将所生成的已接单指示信息或者未接单指示信息发送给服务器。
[0171]
可选的,当对象终端检测到第二行驶里程大于上述接单里程阈值,并且检测到行
驶对象在时间段阈值(可以自行设置,例如30分钟)内都没有接单成功的行程时,对象终端可以对预备派单行程进行可视化,即对象终端可以在终端页面中输出(如页面显示输出或者语音输出)预备派单行程,让行驶对象自行选择是否要对预备派单行程进行接单。因此,对象终端可以响应行驶对象针对可视化的预备派单行程的触发操作(如接单操作),对预备派单行程进行接单,并生成上述已接单指示信息。或者,对象终端也可以响应行驶对象针对可视化的预备派单行程的取消操作,不对预备派单行程进行接单,并生成上述未接单指示信息。通过此种方式,也可以有效缓解行驶对象在太长时间内未成功接到行程订单的情况。
[0172]
上述已接单指示信息和未接单指示信息都可以称为接单指示信息。
[0173]
步骤s103,获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态;
[0174]
具体的,当服务器获取到对象终端根据第二行驶里程发送的接单指示信息为已接单指示信息时,服务器可以将预备派单行程的行程接单状态从行程未接单状态更新为行程已接单状态,表明已经对预备派单行程派单成功。
[0175]
而当服务器获取到对象终端所发送的接单指示信息为未接单指示信息时,可以保持预备派单行程的行程接单状态为行程未接单状态,表明对预备派单行程派单失败。进而服务器可以重复上述过程,重新为行驶对象匹配预备派单行程,再将重新匹配到的预备派单行程发送给对象终端,对象终端可以根据新的预备派单行程的第二行驶里程再次判断是否要对新的预备派单行程进行接单,如此循环,直到对行驶对象进行成功派单。
[0176]
通过让对象终端根据第二行驶里程判断是否对预备派单行程进行派单,可以有效防止第一时刻和第二时刻之间的时间差过大时,行驶对象从所在的第二时刻行驶位置前往预备派单行程的行程起始位置的行驶里程(即第二行驶里程)过大,导致派单不准确,行驶对象接驾距离过远的问题。换句话说,预备派单行程是选出的与行驶对象在第一时刻行驶位置时的接驾里程(第一行驶里程)比较近的行程,在第一时刻是适宜将预备派单行程派单给行驶对象的,但是由于选取预备派单行程需要花费一定的时间,当行驶对象从第一时刻到第二时刻的行驶期间,行驶对象行驶到的第二时刻行驶位置针对预备派单行程的接驾里程有可能比较大,此时就不适宜将预备派单行程派单给行驶对象,因此可以重新为行驶对象选取预备派单行程。
[0177]
因此通过本申请所提供的方法将行程派单分为了预派单(即选取预备派单行程给到行驶对象)和实际派单(即根据第二行驶里程判断是否要对获取到的预备派单行程进行接单)两个步骤,可以有效避免行驶对象针对预备派单行程的实际接驾里程(如第二行驶里程)过远的问题,实现对行驶对象的准确派单。
[0178]
请参见图8,图8是本申请提供的一种行程派单的场景示意图。如图8所示,乘客100h所下单的行程可以是行驶对象109h的待派单行程。该待派单行程的行程起始位置可以是位置102h,行驶对象109h在第一时刻所在的定位位置可以是第一时刻行驶位置103h。因此,乘客100h可以通过所属的终端设备,获取到行驶对象109h从第一时刻行驶位置103h行驶到位置102h的第一行驶里程104h。
[0179]
服务器可以根据第一行驶里程104h将乘客100h所下单的行程,作为行驶对象109h的预备派单行程101h。服务器可以将获取到的预备派单行程101h发送给行驶对象109h所属的对象终端,此时为第二时刻,行驶对象109h在第二时刻所在的定位位置可以是第二时刻
行驶位置105h。因此,对象终端可以获取到行驶对象109h从第二时刻行驶位置105h行驶到位置102h的第二行驶里程106h。
[0180]
进而,当对象终端检测到第二行驶里程小于或者等于接单里程阈值时,则对象终端可以对预备派单行程进行接单,此时表明服务器对预备派单行程101h派单成功(如框107h)。反之,当对象终端检测到第二行驶里程大于接单里程阈值时,则对象终端可以不对预备派单行程进行接单,此时表明服务器对预备派单行程101h派单失败(如框108h)。
[0181]
可选的,当第一时刻和第二时刻之间的时刻差过大(例如大于或者等于时刻差阈值,该时刻差阈值可以根据实际应用场景进行设置)时,表明服务器为行驶对象匹配预备派单行程所花费的时间可能过长。因此,当服务器检测到第一时刻和第二时刻之间的时刻差过大时,也可以更新用于为行驶对象匹配预备派单行程的派单系统的系统参数(可以称为派单系统参数),以此提升服务器为行驶对象匹配预备派单行程的速度。
[0182]
并且,当服务器检测到第一时刻和第二时刻之间的时刻差过大时,还可以生成一个派单延时警告消息至派单管理客户端,以使开发人员可以在该派单管理客户端中查看到该派单延时警告消息,进而及时发现派单系统的漏洞,对派单系统的系统参数再次进行调整等。
[0183]
本申请可以获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的第二行驶里程;获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。由此可见,本申请提出的方法首先可以获取到行驶对象在第一时刻的预备派单行程,进而在将预备派单行程实际派单给行驶对象时,还会根据行驶对象在此时的第二时刻针对预备派单行程的实际接驾里程(即第二行驶里程),来最终确定是否要将预备派单行程派单给行驶对象。这可以实现当行驶对象在第二时刻针对预备派单行程的实际接驾里程较近时,才会将预备派单行程派单给行驶对象,因此提升了对行驶对象进行派单的准确性。
[0184]
请参见图9,图9是本申请提供的一种行程派单方法的流程示意图。如图9所示,该方法可以包括:
[0185]
步骤s201,发布行程;
[0186]
具体的,乘客可以通过乘客客户端可以发布行程,即请求创建行程订单。换句话说,乘客可以通过所持有的终端设备中的乘客客户端(如上述乘客端约车软件),向服务器请求创建上述已下单行程。
[0187]
步骤s202,创建乘客行程;
[0188]
具体的,服务器(可以称为派单服务器)在获取到乘客客户端所发送的行程创建请求时,即可创建乘客客户端所请求的行程,服务器创建好乘客客户端所请求的行程后,就表明乘客的已下单行程创建完毕。
[0189]
步骤s203,按照行程起点建立网格所属关系;
[0190]
具体的,服务器可以根据所创建的乘客的已下单行程的行程起始位置的经纬度,检索到已下单行程的行程起始位置所属的区域网格,服务器可以建立已下单行程与对应的
区域网格之间的网格所属关系,以便后续可以通过区域网格快速查找到对应的已下单行程。
[0191]
步骤s204,周期性查询周边待派单订单;
[0192]
具体的,司机客户端(如上述司机端约车软件)可以周期性(如以1秒为周期)地向服务器查询周边的待派单订单,该待派单订单也就是上述所获取到的司机(行驶对象)的待派单行程。
[0193]
步骤s205,查询指定范围内的待派单订单;
[0194]
具体的,服务器在获取到司机客户端针对待派单订单的查询请求时,可以根据司机所在的当前位置、以及区域网格查询到指定范围(如上述行程检索区域)内的行程,作为司机的待派单订单。
[0195]
步骤s206,召回附近订单行程;
[0196]
具体的,服务器可以召回通过区域网格所查询到的司机的待派单行程相关的行程信息(如行程起始位置和行程终止位置等),服务器可以将所召回的待派单行程发送给司机客户端。
[0197]
步骤s207,并行调用路线规划服务计算每个订单的预估接驾里程;
[0198]
具体的,司机客户端可以将待派单行程发送给路线规划服务器,使得路线规划服务器可以通过路线规划服务计算出每个待派单行程的预估接驾里程,该预估接驾里程也就是从司机的当前位置(如上述第一时刻行驶位置)前往至待派单行程的行程起始位置的行驶里程(如上述第一行驶里程)。
[0199]
步骤s208,计算完毕后通知服务器;
[0200]
具体的,司机客户端可以获取到路线规划服务器所计算的每个待派单行程的预估接驾里程,并可以将所属的预估接驾里程小于上述接单里程阈值的待派单行程发送给服务器。
[0201]
步骤s209,更新对每个订单的可派单司机列表;
[0202]
具体的,服务器可以根据获取到的司机客户端所发送的所属的预估接驾里程小于上述接单里程阈值的待派单行程,更新对应的已下单行程的可派单司机列表,此为方便下述通过最大匹配算法匹配司机的预备派单行程。或者,通过更新每个司机的可派单行程(即所属的预估接驾里程小于上述接单里程阈值的待派单行程,即上述待匹配行程)列表也可以便于下述通过最大匹配算法匹配司机的预备派单行程。
[0203]
步骤s210,通过最大匹配算法为司机匹配预派单行程;
[0204]
具体的,服务器可以通过最大匹配算法为司机匹配对应的预派单行程,该预派单行程也就是上述预备派单行程。如何通过最大匹配算法匹配司机的预备派单行程的过程可以参见上述步骤s101。
[0205]
步骤s211,对于匹配结果通知对应司机,将订单状态更新为预派单;
[0206]
具体的,匹配到司机的预备派单行程之后,服务器可以将预备派单行程的订单状态由行程未接单状态,更新为预派单的状态,并可以将预备派单行程发送给司机客户端。
[0207]
步骤s212,调用路线规划服务计算当前位置到预派单的起点的预估接驾里程x;
[0208]
具体的,司机客户端可以将预备派单行程发送给上述路线规划服务器,通过路线规划服务器计算此时所在的定位位置(如上述第二时刻行驶位置)与预备派单行程的行程
起始位置之间的预估接驾里程x(如上述第二行驶里程)。进而司机客户端可以获取到路线规划服务器发送的该预估接驾里程x。
[0209]
步骤s213,预估接驾里程x小于派单阈值;
[0210]
具体的,当司机客户端检测到该预估接驾里程x小于派单阈值(即上述接单里程阈值)时,司机客户端就可以对该预备派单行程进行接单,并可以向服务器发送已接单指示信息。
[0211]
步骤s214,派单成功,更新订单状态为已派单;
[0212]
具体的,服务器在获取到司机客户端所发送的已接单指示信息时,就表明对预备派单行程接单成功,也就可以将预备派单行程的状态由预派单的状态更新为已派单的状态(即行程已接单状态)。
[0213]
步骤s215,通知乘客已接单;
[0214]
具体的,服务器在确定对预备派单行程派单成功之后,就可以通知预备派单行程所属的乘客其所下单的行程已被接单,如可以向预备派单行程所属的乘客的乘客客户端发送一个已接单提示信息以通知乘客。
[0215]
步骤s216,拉取派单司机相关信息,包括司机位置和接驾路线等;
[0216]
具体的,乘客客户端在得知行程已经被接单时,可以拉取所接单的司机的相关信息,例如司机的相关信息可以包括司机的最新位置和司机的接驾路线等信息。乘客客户端可以在客户端页面中输出(如显示)所拉取到的司机的相关信息,以向在乘客候车时,向乘客展示司机的相关信息。
[0217]
本申请获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的第二行驶里程;获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。由此可见,本申请提出的方法首先可以获取到针对行驶对象的预备派单行程,进而在实际将预备派单行程派单给行驶对象时,还会根据此时行驶对象所在的第二时刻行驶位置针对预备派单行程的接驾里程(即第二行驶里程),来最终确定是否要将预备派单行程派单给行驶对象,这提升了对行驶对象进行派单的准确性。
[0218]
请参见图10,图10是本申请提供的一种数据处理装置的结构示意图。如图10所示,该数据处理装置1可以包括:预备行程确定模块101、行程发送模块102和状态更新模块103;
[0219]
预备行程确定模块101,用于获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;
[0220]
行程发送模块102,用于将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取针对预备派单行程的第二行驶里程;第二行驶里程,为对象终端所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的行驶里程;第二时刻行驶位置所属的第二时刻晚于第一时刻行驶位置所属的第一时刻;
[0221]
状态更新模块103,用于获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单
状态。
[0222]
其中,预备行程确定模块101、行程发送模块102和状态更新模块103的具体功能实现方式请参见图3对应的实施例中的步骤s101

步骤s103,这里不再进行赘述。
[0223]
其中,待派单行程的数量为至少两个;
[0224]
预备行程确定模块101,包括:行驶里程获取单元1011、匹配确定单元1012和预备行程确定单元1013;
[0225]
行驶里程获取单元1011,用于分别获取每个待派单行程的行程起始位置与第一时刻行驶位置之间的第一行驶里程;
[0226]
匹配确定单元1012,用于将所属的第一行驶里程小于接单里程阈值的待派单行程,确定为待匹配行程;
[0227]
预备行程确定单元1013,用于根据待匹配行程,确定预备派单行程。
[0228]
其中,行驶里程获取单元1011、匹配确定单元1012和预备行程确定单元1013的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0229]
其中,行驶对象包括第一行驶对象和第二行驶对象;第一行驶对象所属的待匹配行程包括第一待匹配行程和第二待匹配行程;第二行驶对象所属的待匹配行程包括第一待匹配行程;
[0230]
预备行程确定单元1013,包括:第一匹配子单元10131、第二匹配子单元10132、第三匹配子单元10133和匹配行程确定子单元10134;
[0231]
第一匹配子单元10131,用于将第一待匹配行程,确定为第一行驶对象的匹配派单行程;
[0232]
第二匹配子单元10132,用于当未检测到与第二行驶对象关联的除第一待匹配行程之外的待匹配行程,且检测到第一待匹配行程为第一行驶对象的匹配派单行程时,检测与第一行驶对象关联的除第一待匹配行程之外的待匹配行程;与第一行驶对象关联的除第一待匹配行程之外的待匹配行程包括第二待匹配行程;
[0233]
第三匹配子单元10133,用于将检测到的第二待匹配行程重新确定为第一行驶对象的匹配派单行程,将第一待匹配行程确定为第二行驶对象的匹配派单行程;
[0234]
匹配行程确定子单元10134,用于将第一行驶对象的匹配派单行程确定为第一行驶对象的预备派单行程,将第二行驶对象的匹配派单行程确定为第二行驶对象的预备派单行程。
[0235]
其中,第一匹配子单元10131、第二匹配子单元10132、第三匹配子单元10133和匹配行程确定子单元10134的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0236]
其中,上述装置1还用于:
[0237]
当接单指示信息为未接单指示信息时,保持预备派单行程的行程接单状态为行程未接单状态,重新执行获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置分别与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程。
[0238]
其中,已接单指示信息是由对象终端在检测到第二行驶里程小于或等于接单里程阈值时所发送的指示信息;未接单指示信息是由对象终端在检测到第二行驶里程大于接单
里程阈值时所发送的指示信息。
[0239]
其中,已接单指示信息是由对象终端在检测到第二行驶里程大于接单里程阈值,且检测到在时间段阈值内行驶对象无接单成功行程时,通过对可视化的预备派单行程进行接单触发操作所生成的。
[0240]
其中,预备行程确定模块101,包括:区域获取单元1014和待派单行程确定单元1015;
[0241]
区域获取单元1014,用于根据行驶对象所在的第一时刻行驶位置,获取行程检索区域;
[0242]
待派单行程确定单元1015,用于将所属的行程起始位置处于行程检索区域中的已下单行程,确定为行驶对象所属的待派单行程。
[0243]
其中,区域获取单元1014和待派单行程确定单元1015的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0244]
其中,对象行驶区域被划分成至少两个区域网格;一个区域网格对应于对象行驶区域的一个行驶子区域;
[0245]
区域获取单元1014,包括:中心网格确定子单元10141、半径获取子单元10142和检索区域确定子单元10143;
[0246]
中心网格确定子单元10141,用于将至少两个区域网格中,第一时刻行驶位置所在的行驶子区域对应的区域网格,确定为中心区域网格;
[0247]
半径获取子单元10142,用于获取区域检索半径,根据区域检索半径和中心区域网格确定网格检索范围;中心区域网格处于网格检索范围的中心;
[0248]
检索区域确定子单元10143,用于将网格检索范围内的区域网格对应的行驶子区域,确定为行程检索区域。
[0249]
其中,中心网格确定子单元10141、半径获取子单元10142和检索区域确定子单元10143的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0250]
其中,上述装置1还包括:网格确定模块104和关系建立模块105;
[0251]
网格确定模块104,用于获取至少两个已下单行程的行程起始位置,分别确定每个已下单行程的行程起始位置所在的行驶子区域对应的区域网格;
[0252]
关系建立模块105,用于建立每个已下单行程与所对应的区域网格之间的网格所属关系;
[0253]
待派单行程确定单元1015,用于:
[0254]
将至少两个已下单行程中,与网格检索范围内的区域网格具有网格所属关系的已下单行程,确定为待派单行程。
[0255]
其中,网格确定模块104和关系建立模块105的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0256]
其中,上述装置1还包括:路线获取模块106、开销参数获取模块107、目标路线确定模块108和行驶里程确定模块109;
[0257]
路线获取模块106,用于获取从第一时刻行驶位置至待派单行程的行程起始位置的至少两条待选行驶路线;
[0258]
开销参数获取模块107,用于获取每条待选行驶路线对应的行驶开销参数;
[0259]
目标路线确定模块108,用于根据每条待选行驶路线对应的行驶开销参数,从至少两条待选行驶路线中确定目标行驶路线;
[0260]
行驶里程确定模块109,用于将目标行驶路线对应的行驶里程,确定为第一行驶里程。
[0261]
其中,路线获取模块106、开销参数获取模块107、目标路线确定模块108和行驶里程确定模块109的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0262]
其中,上述装置1还包括:第一时刻确定模块110和第一位置确定模块111;
[0263]
第一时刻确定模块110,用于将获取到行驶对象所属的待派单行程时的时刻,确定为第一时刻;
[0264]
第一位置确定模块111,用于将行驶对象在第一时刻所在的对象定位位置,确定为第一时刻行驶位置。
[0265]
其中,第一时刻确定模块110和第一位置确定模块111的具体功能实现方式请参见图3对应的实施例中的步骤s101,这里不再进行赘述。
[0266]
其中,上述装置1还包括:第二时刻确定模块112和第二位置确定模块113;
[0267]
第二时刻确定模块112,用于将发送预备派单行程给行驶对象所属的对象终端时的时刻,确定为第二时刻;
[0268]
第二位置确定模块113,用于将行驶对象在第二时刻所在的对象定位位置,确定为第二时刻行驶位置。
[0269]
其中,第二时刻确定模块112和第二位置确定模块113的具体功能实现方式请参见图3对应的实施例中的步骤s102,这里不再进行赘述。
[0270]
其中,上述装置1还用于:
[0271]
当检测到第一时刻与第二时刻之间的时刻差大于或等于时刻差阈值时,更新用于获取预备派单行程的派单系统参数,发送针对预备派单行程的派单延时警告消息至派单管理客户端。
[0272]
本申请获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的第二行驶里程;获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。由此可见,本申请提出的装置首先可以获取到行驶对象在第一时刻的预备派单行程,进而在将预备派单行程实际派单给行驶对象时,还会根据行驶对象在此时的第二时刻针对预备派单行程的实际接驾里程(即第二行驶里程),来最终确定是否要将预备派单行程派单给行驶对象。这可以实现当行驶对象在第二时刻针对预备派单行程的实际接驾里程较近时,才会将预备派单行程派单给行驶对象,因此提升了对行驶对象进行派单的准确性。
[0273]
请参见图11,图11是本申请提供的一种计算机设备的结构示意图。如图11所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些
组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0274]
在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0275]
获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程;
[0276]
将预备派单行程发送给行驶对象所属的对象终端,以使对象终端获取所在的第二时刻行驶位置与预备派单行程的行程起始位置之间的第二行驶里程;第二时刻行驶位置所属的第二时刻晚于第一时刻行驶位置所属的第一时刻;
[0277]
获取对象终端根据第二行驶里程所发送的接单指示信息,当接单指示信息为已接单指示信息时,将预备派单行程的行程接单状态更新为行程已接单状态。
[0278]
待派单行程的数量为至少两个。
[0279]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0280]
分别获取每个待派单行程的行程起始位置与第一时刻行驶位置之间的第一行驶里程;
[0281]
将所属的第一行驶里程小于接单里程阈值的待派单行程,确定为待匹配行程;
[0282]
根据待匹配行程,确定预备派单行程。
[0283]
行驶对象包括第一行驶对象和第二行驶对象;第一行驶对象所属的待匹配行程包括第一待匹配行程和第二待匹配行程;第二行驶对象所属的待匹配行程包括第一待匹配行程。
[0284]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0285]
将第一待匹配行程,确定为第一行驶对象的匹配派单行程;
[0286]
当未检测到与第二行驶对象关联的除第一待匹配行程之外的待匹配行程,且检测到第一待匹配行程为第一行驶对象的匹配派单行程时,检测与第一行驶对象关联的除第一待匹配行程之外的待匹配行程;与第一行驶对象关联的除第一待匹配行程之外的待匹配行程包括第二待匹配行程;
[0287]
将检测到的第二待匹配行程重新确定为第一行驶对象的匹配派单行程,将第一待匹配行程确定为第二行驶对象的匹配派单行程;
[0288]
将第一行驶对象的匹配派单行程确定为第一行驶对象的预备派单行程,将第二行驶对象的匹配派单行程确定为第二行驶对象的预备派单行程。
[0289]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序
时,具体执行如下步骤:
[0290]
当接单指示信息为未接单指示信息时,保持预备派单行程的行程接单状态为行程未接单状态,重新执行获取行驶对象所属的待派单行程,根据待派单行程的行程起始位置分别与行驶对象所在的第一时刻行驶位置之间的第一行驶里程,确定针对行驶对象的预备派单行程。
[0291]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0292]
根据行驶对象所在的第一时刻行驶位置,获取行程检索区域;
[0293]
将所属的行程起始位置处于行程检索区域中的已下单行程,确定为行驶对象所属的待派单行程。
[0294]
对象行驶区域被划分成至少两个区域网格;一个区域网格对应于对象行驶区域的一个行驶子区域;
[0295]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0296]
将至少两个区域网格中,第一时刻行驶位置所在的行驶子区域对应的区域网格,确定为中心区域网格;
[0297]
获取区域检索半径,根据区域检索半径和中心区域网格确定网格检索范围;中心区域网格处于网格检索范围的中心;
[0298]
将网格检索范围内的区域网格对应的行驶子区域,确定为行程检索区域。
[0299]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0300]
获取至少两个已下单行程的行程起始位置,分别确定每个已下单行程的行程起始位置所在的行驶子区域对应的区域网格;
[0301]
建立每个已下单行程与所对应的区域网格之间的网格所属关系;
[0302]
将所属的行程起始位置处于行程检索区域中的已下单行程,确定为行驶对象所属的待派单行程,包括:
[0303]
将至少两个已下单行程中,与网格检索范围内的区域网格具有网格所属关系的已下单行程,确定为待派单行程。
[0304]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0305]
获取从第一时刻行驶位置至待派单行程的行程起始位置的至少两条待选行驶路线;
[0306]
获取每条待选行驶路线对应的行驶开销参数;
[0307]
根据每条待选行驶路线对应的行驶开销参数,从至少两条待选行驶路线中确定目标行驶路线;
[0308]
将目标行驶路线对应的行驶里程,确定为第一行驶里程。
[0309]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0310]
将获取到行驶对象所属的待派单行程时的时刻,确定为第一时刻;
[0311]
将行驶对象在第一时刻所在的对象定位位置,确定为第一时刻行驶位置。
[0312]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0313]
将发送预备派单行程给行驶对象所属的对象终端时的时刻,确定为第二时刻;
[0314]
将行驶对象在第二时刻所在的对象定位位置,确定为第二时刻行驶位置。
[0315]
在一种实施方式中,处理器1001在调用存储器1005中存储的设备控制应用程序时,具体执行如下步骤:
[0316]
当检测到第一时刻与第二时刻之间的时刻差大于或等于时刻差阈值时,更新用于获取预备派单行程的派单系统参数,发送针对预备派单行程的派单延时警告消息至派单管理客户端。
[0317]
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0318]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0319]
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1