CN111768018B - 一种数据处理方法、装置以及计算机可读存储介质 - Google Patents
一种数据处理方法、装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111768018B CN111768018B CN202010788947.9A CN202010788947A CN111768018B CN 111768018 B CN111768018 B CN 111768018B CN 202010788947 A CN202010788947 A CN 202010788947A CN 111768018 B CN111768018 B CN 111768018B
- Authority
- CN
- China
- Prior art keywords
- stroke
- travel
- trip
- existing
- pieced
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000008859 change Effects 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012790 confirmation Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 238000011176 pooling Methods 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
- G06Q10/025—Coordination of plural reservations, e.g. plural trip segments, transportation combined with accommodation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Educational Administration (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Navigation (AREA)
Abstract
本申请公开了一种数据处理方法、装置以及计算机可读存储介质,该方法可应用于车辆匹配相关领域,并涉及到车辆的行程拼车相关技术,该方法包括:获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;根据待拼行程和已有行程,确定预测总行程;根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。采用本申请,可提高所得到的待拼行程与已有行程之间的行程拼单结果的准确性。
Description
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种数据处理方法、装置以及计算机可读存储介质。
背景技术
拼车,在日常生活中是很常见的一种约车方式,拼车一般指多个行程可以共同进行。换句话说,在一个拼车行程中,司机可以同时对多个行程分别所属的客户进行接送。
现有技术中,在判断是否可以将一个新行程拼单到一个司机的已有行程中时,通常是衡量该新行程的行程起始位置与司机的当前位置之间的距离。若距离在合理范围内,则认为可以将该新行程与司机的已有行程进行行程拼单(即拼车),若距离不在合理范围内,则认为不能将该新行程与司机的已有行程进行行程拼单。
由此可见,现有技术中,在判断是否可以将一个新行程拼单到司机的已有行程中时,通常是衡量新行程的行程起始位置与司机的当前位置之间的距离是否够小。但是,在很多情形下,由于不断变化的路况信息,即使新行程的行程起始位置与司机的当前位置之间的距离越小,也不能保证司机到达新行程的行程起始位置的里程就越短,且不能保证拼入新行程后对已有行程的影响越小。因此,采用现有技术所提供的方法,来判断是否对新行程和已有行程进行行程拼单时,会导致所得到的拼单结果(可拼单结果或不可拼单结果)并不准确。
发明内容
本申请提供了一种数据处理方法、装置以及计算机可读存储介质,可提高所得到的待拼行程与已有行程之间的行程拼单结果的准确性。
本申请一方面提供了一种数据处理方法,包括:
获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;
根据待拼行程和已有行程,确定预测总行程;
根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;
根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。
本申请一方面提供了一种数据处理装置,包括:
对象获取模块,用于获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;
行程确定模块,用于根据待拼行程和已有行程,确定预测总行程;
指标确定模块,用于根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;
结果确定模块,用于根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。
其中,对象获取模块,包括:
区域确定单元,用于根据待拼行程起始位置,确定对象检索区域;
待定对象确定单元,用于将处于对象检索区域中的行程可拼单对象,确定为待定行驶对象;
已占用座位获取单元,用于获取待定行驶对象所属的驾驶车辆的车辆座位总数,获取驾驶车辆的已占用座位数;
空闲座位确定单元,用于根据车辆座位总数和已占用座位数,确定驾驶车辆的空闲座位数;
行驶对象确定单元,用于当空闲座位数大于或等于待拼行程的所需座位数时,将待定行驶对象确定为行驶对象。
其中,对象行驶区域被划分成至少两个区域网格;一个区域网格对应于对象行驶区域的一个行驶子区域;
区域确定单元,包括:
中心网格确定子单元,用于获取至少两个区域网格中,待拼行程起始位置所在的行驶子区域对应的区域网格,作为中心区域网格;
网格范围确定子单元,用于获取区域检索半径,根据区域检索半径和中心区域网格确定网格检索范围;中心区域网格处于网格检索范围的中心;
检索范围确定子单元,用于将网格检索范围内的区域网格对应的行驶子区域,确定为对象检索区域。
其中,上述数据处理装置,还包括:
网格确定模块,用于获取至少两个行程可拼单对象的对象实时位置,分别确定每个行程可拼单对象的对象实时位置所在的行驶子区域对应的区域网格;
关系建立模块,用于建立每个行程可拼单对象与所对应的区域网格之间的网格所属关系;
待定对象确定单元,用于:
将至少两个行程可拼单对象中,与对象检索区域所包含的区域网格具有网格所属关系的行程可拼单对象,确定为待定行驶对象。
其中,行程确定模块,包括:
位置获取单元,用于获取已有行程的已有行程起始位置和已有行程终止位置,获取待拼行程的待拼行程起始位置和待拼行程终止位置;
位置组合单元,用于对已有行程起始位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置进行位置组合,得到至少两个预测行驶行程;
行程选取单元,用于根据至少两个预测行驶行程对应的行程开销参数,从至少两个预测行驶行程中,获取预测总行程。
其中,行程选取单元,包括:
第一行程选取子单元,用于当行程开销参数中包括每个预测行驶行程分别对应的行程总里程时,将至少两个预测行驶行程中,具有最小的行程总里程的预测行驶行程,确定为预测总行程;
第二行程选取子单元,用于当行程开销参数中包括每个预测行驶行程分别对应的行程总时间时,将至少两个预测行驶行程中,具有最小的行程总时间的预测行驶行程,确定为预测总行程。
其中,行程开销参数包括每个预测行驶行程分别对应的行程总里程、以及每个预测行驶行程分别对应的行程总时间;
行程选取单元,包括:
时间权重获取子单元,用于获取针对行程总里程的里程权重以及针对行程总时间的时间权重;
第一加权子单元,用于基于里程权重对每个预测行驶行程的行程总里程分别进行加权,得到每个预测行驶行程分别对应的加权总里程;
第二加权子单元,用于基于时间权重对每个预测行驶行程的行程总时间分别进行加权,得到每个预测行驶行程分别对应的加权总时间;
参数确定子单元,用于根据每个预测行驶行程分别对应的加权总里程和加权总时间,确定每个预测行驶行程分别对应的行程选取评估参数;
第三行程选取子单元,用于将至少两个预测行驶行程中,具有最小的行程选取评估参数的预测行驶行程,确定为预测总行程。
其中,待拼行程与预测总行程之间的行程变化信息为第一行程里程变化信息;已有行程与预测总行程之间的行程变化信息为第一行程时长变化信息;行程拼单指标包括待拼行程的第一行程绕路比信息和已有行程的第一行程延迟时长;
指标确定模块,用于:
根据预测总行程、以及待拼行程的待拼行程起始位置和待拼行程终止位置,确定第一行程里程变化信息,根据第一行程里程变化信息,确定第一行程绕路比信息;根据预测总行程、以及已有行程的已有行程起始位置和已有行程终止位置,确定第一行程时长变化信息,根据第一行程时长变化信息,确定第一行程延迟时长。
其中,指标确定模块,包括:
第一里程获取单元,用于根据待拼行程起始位置和待拼行程终止位置,获取待拼行程的非拼单行程里程;非拼单行程里程,为待拼行程与已有行程不进行行程拼单时,待拼行程的行程里程;
第二里程获取单元,用于根据预测总里程,确定待拼行程的拼单行程里程;拼单行程里程,为待拼行程与已有行程进行行程拼单时,待拼行程的行程里程;
里程变化确定单元,用于将非拼单行程里程和拼单行程里程之间的里程差值,确定为第一行程里程变化信息;
绕路比信息确定单元,用于将第一行程里程变化信息和非拼单行程里程之间的里程比值,确定为第一行程绕路比信息。
其中,指标确定模块,包括:
第一时长获取单元,用于根据已有行程起始位置和已有行程终止位置,获取已有行程的非拼单行程剩余时长;非拼单行程剩余时长,为已有行程与待拼行程不进行行程拼单时,已有行程的行程剩余时长;
第二时长获取单元,用于根据预测总行程,获取已有行程的拼单行程剩余时长;拼单行程剩余时长,为已有行程与剩余行程进行行程拼单时,已有行程的行程剩余时长;
时长变化确定单元,用于将非拼单行程剩余时长和拼单行程剩余时长之间的时长差值,确定为第一行程时长变化信息;
延迟时长确定单元,用于将第一行程时长变化信息,确定为第一行程延迟时长。
其中,行程拼单结果为行程可拼单结果或行程不可拼单结果;
结果确定模块,包括:
第一结果确定单元,用于当第一行程延迟时长小于或等于时长阈值,且第一行程绕路比信息小于或等于绕路比阈值时,将行程可拼单结果确定为行程拼单结果;
第二结果确定单元,用于当第一行程延迟时长大于时长阈值,或第一行程绕路比信息大于绕路比阈值时,将行程不可拼单结果确定为行程拼单结果。
其中,待拼行程与预测总行程之间的行程变化信息为第二行程时长变化信息;已有行程与预测总行程之间的行程变化信息为第二行程里程变化信息;行程拼单指标包括待拼行程的第二行程延迟时长和已有行程的第二行程绕路比信息;
指标确定模块,用于:
根据预测总行程、以及待拼行程的待拼行程起始位置和待拼行程终止位置,确定第二行程时长变化信息,根据第二行程时长变化信息,确定第二行程延迟时长;根据预测总行程、以及已有行程的已有行程起始位置和已有行程终止位置,确定第二行程里程变化信息,根据第二行程里程变化信息,确定第二行程绕路比信息。
其中,行程拼单结果为行程可拼单结果或行程不可拼单结果;
数据处理装置,还包括:
接单模块,用于当行程拼单结果为行程可拼单结果时,将待拼行程发送至行驶对象所属的用户终端,以使用户终端对待拼行程进行行程接单;
接单对象获取模块,用于当行程拼单结果为行程不可拼单结果时,获取与待拼行程起始位置之间的行驶里程最小的行程不可拼单对象,作为待拼行程的行程可接单对象。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;根据待拼行程和已有行程,确定预测总行程;根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。由此可见,本申请提出的方法首先可以根据待拼行程与已有行程得到预测总行程,进而可以衡量待拼行程和已有行程分别与该预测总行程之间的行程变化信息,来得到用于判断是否要对待拼行程和已有行程进行拼单(即得到行程拼单结果)的行程拼单指标,因此,通过该行程拼单指标所得到的行程拼单结果,同时考量了拼单后,针对待拼行程的影响以及针对已有行程的影响,保证了所得到的行程拼单结果的准确性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请提供的一种拼车匹配的场景示意图;
图3是本申请提供的一种数据处理方法的流程示意图;
图4是本申请提供的一种获取编码串的场景示意图;
图5是本申请提供的一种获取待定行驶对象的场景示意图;
图6是本申请提供的一种获取预测总行程的场景示意图;
图7是本申请提供的一种获取行程拼单指标的场景示意图;
图8是本申请提供的一种执行行程订单的场景示意图;
图9是本申请提供的一种拼车方法的流程示意图;
图10是本申请提供的一种数据处理装置的结构示意图;
图11是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器200和终端设备集群,终端设备集群可以包括一个或者多个终端设备,这里将不对终端设备的数量进行限制。如图1所示,多个终端设备具体可以包括终端设备100a、终端设备101a、终端设备102a、…、终端设备103a;如图1所示,终端设备100a、终端设备101a、终端设备102a、…、终端设备103a均可以与服务器200进行网络连接,以便于每个终端设备可以通过网络连接与服务器200之间进行数据交互。
如图1所示的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。下面以终端设备100a、终端设备101a与服务器200之间的通信为例,进行本申请实施例的具体描述。
请一并参见图2,图2是本申请提供的一种拼车匹配的场景示意图。终端设备100a可以是乘客的终端设备,终端设备101a可以是任意一个司机的终端设备。假设终端设备101a为驾驶车辆101b的司机所持有的终端设备,车辆101b可以是任意一个司机的所驾驶的车辆,当车辆101b在道路上行驶时,车辆101b中的司机可以开启终端设备101a中的定位功能。因此,当车辆101b在道路上行驶的过程中,终端设备101a可以不断获取到自己的定位信息,该定位信息包含了终端设备101a所在的位置信息,该定位信息随着车辆101b的行驶,也会不断变化。该定位信息可以是通过卫星群组100b(包含多个用于定位的卫星)获取到,该定位信息可以是式子102b所表示的信息形式,其中,式子102b具体为(R,θ,ψ),式子102b中的R、θ和ψ分别为终端设备101a在不同维度(例如X轴维度、Y轴维度和Z轴维度)上的位置信息。换句话说,可以理解为车辆101b所在的位置也就是终端设备101a所在的位置,终端设备101a可以将定位信息不断更新为车辆101b所行驶到的实时位置。其中,终端设备101a可以以每秒获取一次最新位置的频率来更新车辆101b所在的实时位置。
其中,终端设备101a还可以将所获取到的定位信息发送给服务器200,若终端设备101a是以每秒一次的频率来获取自己最新的定位信息,则终端设备101a也可以以每秒一次的频率向服务器200发送所获取到的最新的定位信息。终端设备101a通过不断向服务器200发送所获取到的最新的定位信息,可以告知服务器200车辆101b的实时位置。服务器200在获取到终端设备101a发送的定位信息之后,可以存储所获取到的定位信息。因此,通过上述过程,服务器200可以获取到所有司机所驾驶的车辆的实时位置。如区域103b所示,服务器200中除了可以存储有每个司机的实时位置(也就是每个司机所驾驶的车辆的实时位置)之外,还可以存储有每个司机的已有行程起终点、每个司机的已有行程的剩余里程和剩余时间以及待拼行程的起终点等信息。
其中,每个司机的已有行程,也就是当前每个司机已经接单的行程,一个行程可以指某个乘客所创建的订单,该订单为从某个位置(行程起点)到另一个位置(行程终点)的约车订单。每个司机的已有行程的剩余里程,指除了司机已经行驶过的路程之外,还需要行驶多少里程数(可以通过地图定位软件进行预估),才能到达已有行程的终点(即完成已有行程)。每个司机的已有行程的剩余时间,指除了司机已经行驶过的路程之外,还需要行驶多长时间(可以通过地图定位软件进行预估),才能到达已有行程的终点(即完成已有行程)。其中,每个司机的已有行程的剩余里程和剩余时间是随着司机所驾驶的车辆的行驶位置的变化,实时进行更新的。已有行程的起终点也就是已有行程的行程起点和行程终点。
其中,终端设备100a可以为乘客所持有的终端设备。待拼行程可以为乘客通过终端设备100a创建的一个行程订单,待拼行程属于拼单性质的订单,换句话说,待拼行程为可以进行拼车的订单,待拼行程也就是可以与其他行程(例如某个司机的已有行程)进行拼单,以和其他行程同步进行的订单。待拼行程为创建完成还需要匹配可以接单的司机的订单,换句话说,待拼行程不属于司机的已有行程,待拼行程为乘客创建的新订单。
可以理解的是,待拼行程可以有多个,但是为每个待拼行程匹配司机的过程相同,因此,此处以为一个待拼行程匹配合适的司机的过程为例进行说明,假设该个待拼行程为乘客104b创建的行程,并且待拼行程为乘客104b通过所持有的终端设备100a进行创建的。
其中,待拼行程的起终点也就是待拼行程的行程起点和待拼行程的行程终端。在乘客104b通过终端设备100a创建待拼行程的订单时,乘客104b可以开启终端设备100a中的定位功能,因此,终端设备100a可以获取到乘客104b所在的当前位置,作为待拼行程的行程起点。乘客104b通过终端设备100a创建好待拼行程之后,终端设备100a可以获取到该待拼行程的起终点,终端设备100a可以将所获取到的待拼行程的起终点发送给服务器200。
进而,服务器200可以根据所获取到的每个司机的实时位置和待拼行程的行程起点,检索实时位置在待拼行程的行程起点周围的司机。例如,可以设定一个检索半径(例如5千米,即5km),服务器200可以筛选出实时位置处于以待拼行程的行程起点为中心、检索半径为半径的圆形区域106b内的可拼车的司机,作为待定司机。例如,此处处于该圆形区域106b中的司机可以包括车辆100c所属的司机、车辆101c所属的司机、车辆102c所属的司机、车辆103c所属的司机、车辆104c所属的司机和车辆105c所属的司机。而车辆106c所属的司机的实时位置和车辆107c所属的司机的实时位置不处于圆形区域106b中,因此,即使车辆106c所属的司机的实时位置和车辆107c所属的司机为可拼车的司机(即开启了拼车功能的司机),也不会将其作为待定司机。
接着,服务器200可以获取每个待定司机所驾驶的车辆的空闲座位数。首先,由于在拼车性质的行程中,每个行程在被乘客创建时,均需要提交乘客创建的行程所需要的座位数,因此,服务器200还可以获取到每个待定司机的已有行程已经占用的座位数以及每个待定司机所驾驶的车辆的总的座位数。因此,每个待定司机所驾驶的车辆的空闲座位数,就为每个待定司机所驾驶的车辆的总的座位数减去其已有行程已经占用的座位数。此处,假设服务器200获取到车辆100c的空闲座位数为1、车辆101c的空闲座位数为4、车辆102c的空闲座位数为1、车辆103c的空闲座位数为3、车辆104c的空闲座位数为2以及车辆105c的空闲座位数为2。
同样,服务器200也可以获取待拼行程所需要的座位数,此处乘客104b包括2个乘客,因此,待拼行程所需要的座位数可以为2。服务器可以筛选出所属车辆的空闲座位数大于或者等于2的待定司机,作为匹配司机。由于车辆101c的空闲座位数为4、车辆103c的空闲座位数为3、车辆104c的空闲座位数为2以及车辆105c的空闲座位数为2,因此,如区域105b所示,可以将车辆101c所属的司机、车辆103c所属的司机、车辆104c所属的司机以及车辆105c所属的司机作为待拼行程的匹配司机。
接下来,描述如何从多个匹配司机中选出最适合对待拼行程进行接单的实际,请参见下述。
服务器200还可以获取到车辆105c所属的司机的已有行程,可以将该已有行程称之为已有行程1。服务器200还可以获取到车辆104c所属的司机的已有行程,可以将该已有行程称之为已有行程2。服务器200还可以获取到车辆103c所属的司机的已有行程,可以将该已有行程称之为已有行程3。服务器200还可以获取到车辆101c所属的司机的已有行程,可以将该已有行程称之为已有行程4。
接着,服务器200可以对已有行程1和待拼行程进行预测拼单,得到预测总行程1,该预测总行程1包含了当对待拼行程和已有行程1进行拼单之后,车辆105c所属的司机同步完成待拼行程和已有行程1的行程路线,例如该预测总行程1的行程路线可以为:已有行程1的行程起点→待拼行程的行程起点→已有行程的行程终点→待拼行程的行程终点。服务器200还可以对已有行程2和待拼行程进行预测拼单,得到预测总行程2,该预测总行程2包含了当对待拼行程和已有行程2进行拼单之后,车辆104c所属的司机同步完成待拼行程和已有行程2的行程路线。服务器200还可以对已有行程3和待拼行程进行预测拼单,得到预测总行程3,该预测总行程3包含了当对待拼行程和已有行程3进行拼单之后,车辆103c所属的司机同步完成待拼行程和已有行程3的行程路线。服务器200还可以对已有行程4和待拼行程进行预测拼单,得到预测总行程4,该预测总行程4包含了当对待拼行程和已有行程4进行拼单之后,车辆101c所属的司机同步完成待拼行程和已有行程4的行程路线。
接着,服务器200可以通过待拼行程、每个已有行程以及每个预测总行程,分别获取到每个预测总行程的行程拼单指标。一个已有行程与待拼行程之间对应于一个行程拼单指标,该行程拼单指标表征了待拼行程与已有行程之间是否适合进行拼单。
例如,行程拼单指标可以包括待拼行程的行程绕路比信息以及已有行程的行程延迟时长,其中,待拼行程的行程绕路比信息可以表征,当待拼行程与已有行程进行拼单时,要比待拼行程不与已有行程进行拼单时,多出来的里程数的程度。例如,当待拼行程与已有行程不进行拼单时,待拼行程的接单车辆只需要行驶10公里。但当待拼行程与已有行程进行拼单之后,由于待拼行程的接单车辆在对待拼行程所属的乘客进行接送时,中途可能会去接送其已有行程所属的乘客,这就会使得待拼行程的里程数可能会从10公里变得更多,例如变成了15公里。而此时待拼行程的行程绕路比信息就可以为,拼单的里程数减去不拼单的里程数所得到的差值与不拼单的里程数之间的比值,即为(15-10)/10。
其中,已有行程的行程延迟时长,可以指当已有行程不与待拼行程进行拼单时,要比已有行程与待拼行程进行拼单时,多出来的行驶时长。例如,当已有行程与待拼行程不进行拼单时,已有行程的接单车辆可能还需10分钟就可以将已有行程所属的乘客送到行程终点。但当已有行程与待拼行程进行拼单之后,由于已有行程的接单车辆在对已有行程所属的乘客进行接送时,中途可能会去接送待拼行程所属的乘客,这就会使得已有行程的剩余行驶时间会从10分钟变得更多,例如变成了15分钟。而此时已有行程的行程延迟时长就可以为拼单的行驶时长减去不拼单的行驶时长,即为15减去10等于5分钟。
具体的,服务器200可以通过待拼行程、已有行程1以及预测总行程1,获取到行程拼单指标1,该行程拼单指标1表征了待拼行程与已有行程1之间是否适合拼单。服务器200可以通过待拼行程、已有行程2以及预测总行程2,获取到行程拼单指标2,该行程拼单指标2表征了待拼行程与已有行程2之间是否适合拼单。服务器200可以通过待拼行程、已有行程3以及预测总行程3,获取到行程拼单指标3,该行程拼单指标3表征了待拼行程与已有行程3之间是否适合拼单。服务器200可以通过待拼行程、已有行程4以及预测总行程4,获取到行程拼单指标4,该行程拼单指标4表征了待拼行程与已有行程4之间是否适合拼单。服务器200获取已有行程与待拼行程之间的行程拼单指标的具体过程,还可以参见下述图3对应的实施例中的各个步骤。
服务器200可以根据各个匹配车辆对应的行程拼单指标,来判断是否可以将待拼行程与匹配车辆所属的司机的已有行程进行拼单,例如判断行程拼单指标中,拼单行程的行程绕路比信息是否小于或者等于绕路比阈值(可以自行设定),以及判断行程拼单指标中,已有行程的行程延迟时长是否小于或者等于延迟时长阈值。若是符合条件的行程拼单指标有一个,则服务器200可以将符合条件(即行程绕路比信息要小于或者等于绕路比阈值,行程延迟时长要小于或者等于延迟时长阈值)的行程拼单指标对应的车辆所属的司机,作为最终可以对待拼行程进行接单的司机,可以将该司机称之为接单司机。如图2所示,此处筛选出来的待拼行程的接单司机可以为车辆101c所属的司机,还可以将车辆101c称之为接单车辆。若是符合条件的行程拼单指标有多个,则从该多个行程拼单指标对应的车辆所属的司机中筛选出待拼行程最终的接单司机的过程,可以参见下述图3对应的实施例中的步骤S104。
采用本申请所提供的方法,在判断是否可以将待拼行程和已有行程进行拼单时,同时考量了针对待拼行程的行程绕路比信息、以及针对已有行程的行程延迟时长,因此,可以更加准确地判断出待拼行程与已有行程之间是否适合进行拼单。
请参见图3,图3是本申请提供的一种数据处理方法的流程示意图。该数据处理方法的执行主体可以是服务器,也可以是终端设备,还可以是服务器和终端设备共同执行,此处,以执行主体为服务器(可以是一个服务器,也可以是多个服务器构成的集群)为例进行说明。如图3所示,该方法可以包括:
步骤S101,获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;
具体的,服务器可以获取到请求对象的待拼行程,该请求对象可以指乘客,待拼行程可以指乘客创建的一个行程订单。待拼行程可以指从某个位置(行程起点)前往另一个位置(行程终点)的行程订单,可以将待拼行程的行程起点称之为待拼行程起始位置,将待拼行程的行程终点称之为待拼行程终止位置。其中,待拼行程为乘客创建的新订单,换句话说,待拼行程为需要为其匹配司机进行接单的行程。待拼行程为拼单性质的行程,待拼性质的行程指可以与其他行程进行拼单的行程,进行拼单的多个行程可以同步进行,进行拼单的多个行程可以同时被一个司机进行接单,该个司机可以同步对该进行拼单的多个行程分别所属的乘客进行接送。
待拼行程的待拼行程起始位置,可以为创建待拼行程的乘客在创建待拼行程时的所在位置,乘客可以通过所持有的终端设备创建待拼行程,乘客所持有的终端设备中可以安装有乘客端约车软件,乘客可以通过所持有的终端设备中的乘客端约车软件创建待拼行程。乘客所持有的终端设备在创建待拼行程时,可以开启终端设备中的定位功能,待拼行程起始位置可以是通过终端设备所开启的定位功能获取到的。或者,待拼行程起始位置也可以是乘客在创建待拼行程时自行输入的某个位置。
行驶对象可以指与待拼行程起始位置相匹配的司机,下面描述如何筛选出行驶对象:
每个司机(指乘客端约车软件能约到的所有可以接拼单性质的行程的司机)都驾驶有车辆,可以将司机驾驶的车辆称之为驾驶车辆。司机所持有的终端设备中安装有司机端约车软件,乘客通过乘客端约车软件创建行程订单后,司机可以通过司机端约车软件对乘客所创建的行程订单进行接单。司机所持有的终端设备可以开启定位功能,司机所持有的终端设备可以通过所开启的定位功能,持续获取到司机的实时位置。例如,司机所持有的终端设备可以以每秒一次的频率来获取当前的实时位置,即司机所持有的终端设备每秒都会获取到当前的一个实时位置。司机所持有的终端设备所获取到的实时位置,也就是表示了司机驾驶的车辆的实时位置以及司机的实时位置。司机所持有的终端设备可以将获取到的当前的实时位置发送给服务器,服务器可以存储所获取到的司机的终端设备的实时位置。
其中,乘客端约车软件和司机端约车软件可以对应于同一个软件后台,可以将服务器理解为是乘客端约车软件和司机端约车软件的软件后台。
可以将能接拼单性质的行程的司机称之为行程可拼单对象,行程可拼单对象为在司机端约车软件中选择了可以接拼单性质的行程的司机。因此,通过行程可拼单对象所持有的终端设备,服务器可以获取到多个行程可拼单对象的实时位置,该多个行程可拼单对象可以指在司机端注册有的所有行程可拼单司机,可以将行程可拼单司机的实时位置称之为对象实时位置。
其中,可以将司机行驶的区域称之为对象行驶区域,该对象行驶区域可以指城市区域,换句话说,对象行驶区域可以为所有的陆地区域。可以将对象行驶区域划分为多个区域网格,一个区域网格对应于对象行驶区域的一个行驶子区域。换句话说,可以将对象行驶区域分割为多个小区域,一个小区域对应于一个区域网格。
可以通过区域网格来检索得到行驶对象,请参见下述:
更多的,还可以计算对象行驶区域中的每个区域网格的网格索引值(即geoIndex值),该网格索引值可以通过区域网格所包含的任意位置的经度和纬度进行计算,通过一个区域网格中的任意位置处的经度和纬度计算出来的网格索引值都是相同的。下面描述如何通过一个区域网格中的某个位置来计算该个区域网格的网格索引值。
首先,可以根据区域网格中的某个位置的经度和纬度,来计算GeoHash(一种空间索引的方式)二进制编码:其中,可以先对该个位置的纬度进行GeoHash二进制编码,地球纬度的区间为[-90,90],假设该个位置的纬度是39。可以对地球纬度的区间[-90,90]进行二分,得到区间[-90,0]和区间[0,90]。可以将区间[-90,0]称之为左区间,将区间[0,90]称之为右区间,可以看出纬度39处于右区间[0,90]中,则可以将纬度的二进制编码的第1位标记为1。接着,再对纬度39所处的区间[0,90]进行二分,得到左区间[0,45]和右区间[45,90],可以看出纬度39处于左区间[0,45]中,则可以将纬度的二进制编码的第2位标记为0。因此,可以不断对纬度39所在的区间进行二分,得到一个左区间(值更小的区间)和一个右区间(值更大的区间),当纬度39处于左区间,则对应可以将纬度的二进制编码的当前位标记为0,当纬度39处于右区间,则对应可以将纬度的二进制编码的当前位标记为1。可以设置纬度的二进制编码的精度,该精度可以理解为是纬度的二进制编码的位数,该精度决定了对纬度39所在区间的划分次数。例如,该精度可以为10,则纬度39的二进制编码可以为10位,即为10111 00011。
接着,可以对该个位置的经度进行GeoHash二进制编码,地球经度的区间是[-180,180],假设该个位置的经度是116。同样,可以对地球经度的区间[-180,180]进行二分,得到左区间[-180,0]和右区间[0,180],可以看出,经度116处于右区间[0,180]中,因此,可以将经度的二进制编码的第1位记为1。接着,可以再次对经度116所处的右区间[0,180]进行二分,得到左区间[0,90]和右区间[90,180],因此,可以看出,经度116处于右区间[90,180]中,则可以将经度的二进制编码的第2位标记为1。同理,可以不断对经度116所在的区间进行二分,得到一个左区间(值更小的区间)和一个右区间(值更大的区间),当经度116处于左区间,则对应可以将纬度的二进制编码的当前位标记为0,当经度116处于右区间,则对应可以将纬度的二进制编码的当前位标记为1。可以设置经度的二进制编码的精度,该精度可以理解为是经度的二进制编码的位数,该精度决定了对经度116所在区间的划分次数。例如,该精度可以为10,则经度116的二进制编码可以为10位,即为11010 01011。其中,经度的二进制编码的精度通常和纬度的二进制编码的精度相同。
因此,对该个位置的纬度39进行GeoHash编码,可以得到编码串10111 00011,对该个位置的经度116进行GeoHash编码,可以得到编码串11010 01011。接着,可以对纬度的编码和经度的编码串进行组合,得到一个新的编码串。具体的,可以将第1位计数为0(偶数),第2位计数为1(奇数),……,第10位计数为9(奇数)。可以在计数为偶数的位(可以称之为偶数位)放经度,在计数为奇数的位(可以称之为奇数位)放纬度。则对编码串10111 00011和编码串11010 01011进行组合,可以得到新的编码串11100 11101 00100 01111。
请参见图4,图4是本申请提供的一种获取编码串的场景示意图。如图4所示,假设某个位置的经度是116,纬度是39,经度116的编码串100d为11010 01011,纬度39的编码串101d为10111 00011。对编码串100d和编码串101d进行组合,可以得到编码串102d,组合的原理就是,在计数为偶数的位(可以称之为偶数位)放经度,在计数为奇数的位(可以称之为奇数位)放纬度。
其中,编码串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”;编码串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”;编码串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”;编码串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”。
因此,在对某个位置的经度的编码串和纬度的编码串进行组合,得到新的编码串(例如编码串102d)之后,可以将该新的编码串从二进制转换为十进制,所得到的数值即为该个位置所在的区域网格的网格索引值。例如,当对某个位置的经度的编码串和纬度的编码串进行组合,得到的新的编码串为上述编码串102d(即11100 11101 00100 01111)时,该编码串102d的十进制值7325935即为该个位置所属的区域网格的网格索引值。
更多的,在某些场景下,可以将上述所得到的新的编码串(例如编码串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。
而base编码就是根据下述表1中的编码表进行编码。
表1
由上述表1的编码表可知,28对应于w,29对应于x,4对应于4,15对应于g,因此,对编码串102d进行base32编码所得到的字符串就为wx4g,可以将对编码串进行base32编码所得到的字符串记为geohash。
其中,可以使用redis(一种存储系统)的zset(一种数据存储类型)来存储每个区域网格与每个行程可拼单对象之间的网格所属关系。其中,由于服务器可以获取到每个行程可拼单对象的对象实时位置,因此,若某个行程可拼单对象的对象实时位置在某个区域网格对应的行驶子区域中,则服务器可以建立该行程可拼单对象与该区域网格之间的网格所属关系。例如,若区域网格a1与行程可拼单对象a2之间具备网格所属关系,则表明行程可拼单对象a2的对象实时位置处于区域网格a1对应的行驶子区域中。
其中,由于每个行程可拼单对象的对象实时位置是不断变化的,因此,与每个行程可拼单对象具有网格所属关系的区域网格也会不断更新。例如,若是以1秒1次的频率获取行程可拼单对象的对象实时位置,那么,服务器就可以以1秒1次的频率更新与每个行程可拼单对象具有网格所属关系的区域网格。例如,在时刻t1行程可拼单对象k1的对象实时位置为对象实时位置z1,则行程可拼单对象k1可以与区域网格w1具有网格所属关系,对象实时位置z1处于区域网格w1对应的行驶子区域中。随着行程可拼单对象k1驾驶的车辆的行驶,在时刻t2行程可拼单对象k1的对象实时位置变为了对象实时位置z2,则行程可拼单对象k1可以与区域网格w2具有网格所属关系,对象实时位置z2处于区域网格w2对应的行驶子区域中。
其中,服务器在获取到待拼行程时,可以通过待拼行程的待拼行程起始位置的经度和纬度,计算出待拼行程起始位置所在的行驶子区域对应的区域网格的网格索引值,通过该网格索引值服务器可以查找到待拼行程起始位置所属的区域网格,可以将待拼行程起始位置所在的行驶子区域对应的区域网格,称之为中心区域网格。接着,服务器可以获取区域检索半径,该区域检索半径表征了要查找离待拼行程起始位置多远的行程可拼单对象,也就是查找离中心区域网格多远的其他区域网格。
采用不同位数的geohash,区域网格的位置精度就不同。例如,若存储是采用6位的geohash(即上述纬度的二进制编码串和经度的二进制编码串均为6位)时,其位置的精度就为610米,换句话说,在610米内的每个位置所计算出的geohash均是相同的,其对应于同一个区域网格。那么当区域检索半径为5km(即5000米)时,由于5000除以610等于8.2,则需要将中心区域网格周围9圈(因为9为大于8.2的最小的正整数)的区域网格所在的网格范围,作为网格检索范围,中心区域网格为该网格检索范围的中心。具体采用多少位的geohash,根据实际应用场景决定,对此不作限制。
可以将网格检索范围内的区域网格对应的行驶子区域,均作为对象检索区域。可以理解的是,对象实时位置处于对象检索区域中的行程可拼单对象,即指与对象检索区域所包含的区域网格具有网格所属关系的行程可拼单对象。可以将对象实时位置处于对象检索区域的行程可拼单对象,称之为待定行驶对象。
其中,由于是通过zset来存储区域网格与行程可拼单对象之间的网格所属关系,因此,获取待定行驶对象的具体过程可以为:当计算得到待拼行程起始位置所属的区域网格(即中心区域网格)的网格索引值之后,服务器可以通过libgeohash库(一种第三方库,用于与geohash算法(一种经纬度编码算法)交互)计算出以中心区域网格为中心的网格检索范围(例如中心区域网格的周围9圈区域网格的范围)内的全部区域网格的网格索引值。
接着,服务器可以获取到计算出的网格检索范围内的全部区域网格的网格索引值中的最大值(可以称之为最大索引值)和最小值(可以称之为最小索引值)。由于对zset所存储的数据进行检索时,是通过查找范围进行查找的,因此,此处可以指定查找范围就为该最小索引值到该最大索引值之间的范围。服务器可以在zset中查找到网格索引值在最小索引值到最大索引值之间的区域网格,但是通过查找范围在zset中查找到的区域网格中,可能有不属于网格检索范围中的区域网格,因此,还需要将从zset中查找到的不属于网格检索范围内的区域网格过滤掉,即可在zset中查找到网格检索范围内的区域网格,继而可以从zset中获取到与查找到的网格检索范围内的区域网格具有网格所属关系的行程可拼单对象,作为待定行驶对象。该待定行驶对象也可以指上述图2中的待定司机。其中,通过zset来存储区域网格与行程可拼单对象之间的网格所属关系,可以比较快速地查找到与区域网格具有网格所属关系的行程可拼单对象。
其中,可以理解的是,实际上,可以存储所有司机(包括行程可拼单对象以及行程不可拼单对象)与其所在的区域网格之间的网格所属关系,只是此处只需要获取网格检索范围内区域网格与对应的行程可拼单对象之间的网格所属关系。其中,行程不可拼单对象指,不能对拼单性质的行程进行接单的司机。换句话说,行程不可拼单对象指,未开启拼车功能的司机。
请参见图5,图5是本申请提供的一种获取待定行驶对象的场景示意图。网格100e中包括多个区域网格,网格中的一个格子为一个区域网格,格子中的数字为区域网格的网格索引值,一个区域网格对应于一个对象行驶区域的一个行驶子区域。假设,区域网格102e对应的区域网格为待拼行程起始位置所属的区域网格,即区域网格102e为中心区域网格,中心区域网格的网格索引值为60。假设要查找中心区域网格周围一圈的区域网格,即网格检索范围101e为区域网格102e周围一圈的区域网格的范围。那么,由图4所示,网格检索范围101e内的区域网格包括网格索引值为51的区域网格、网格索引值为54的区域网格、网格索引值为55的区域网格、网格索引值为57的区域网格、网格索引值为60的区域网格、网格索引值为61的区域网格、网格索引值为59的区域网格、网格索引值为62的区域网格和网格索引值为63的区域网格。
那么,区域检索范围101e中的区域网格的网格索引值中,最小的网格索引值为51,最大的网格索引值为63。可以在zset中可以查找出网格索引值在51到63中的所有区域网格,因此,如图4所示,在zset中查找出的区域网格除了网格检索区域101e中的区域网格之外,还另外查找到了虚线框中网格索引值为52的区域网格、网格索引值为53的区域网格、网格索引值为56的区域网格以及网格索引值为58的区域网格。因此,需要从zset中查找到的区域网格中过滤掉虚线框中网格索引值为52的区域网格、网格索引值为53的区域网格、网格索引值为56的区域网格以及网格索引值为58的区域网格。过滤完成后,最终在zset中查找到的网格就为区域103e中的区域网格,也就是网格检索区域101e中的区域网格。
由上可知,在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。
因此,服务器可以将行程可拼单对象1、行程可拼单对象2、行程可拼单对象3、行程可拼单对象4、行程可拼单对象5、行程可拼单对象6、行程可拼单对象7、行程可拼单对象8和行程可拼单对象9,均作为待定行驶对象104e。
在获取到待定行驶对象之后,服务器还可以获取待定行驶对象所驾驶的车辆(可以称之为驾驶车辆)的空闲座位数,该空闲座位数就为驾驶车辆的车辆座位总数减去驾驶车辆的已占用座位数。其中,驾驶车辆的已占用座位数为行程可拼单对象的已有行程所占用的座位数。由于每个行程在被创建时,均需要录入行程所需要的座位数。因此,服务器可以获取到行程可拼单对象的已有行程所需要的座位数,该座位数即为驾驶车辆的已占用座位数。并且,行程可拼单对象还可以通过所持有的终端设备,向服务器上报自己的驾驶车辆的车型(例如快车型或者豪车型)以及驾驶车辆的车辆座位总数,因此,服务器也可以获取到驾驶车辆的车辆座位总数。进而,服务器可以通过车辆座位总数减去已占用座位数,即可得到驾驶车辆的空闲座位数。
其中,服务器也可以获取到待拼行程被创建时,所提交的所需座位数,该所需座位数即为待拼行程需要占用的座位的数量。因此,服务器可以将空闲座位数大于或者等于待拼行程的所需座位数的待定行驶对象,作为行驶对象。该行驶对象也可以为上述图2中的匹配司机。
更多的,行程可拼单对象还可以向服务器上报自己的对象状态,该对象状态可以是停止工作的状态、听单中状态和服务中状态等。因此,在筛选行驶对象时,除了需要行程可拼单对象的驾驶车辆的空闲座位数要大于或者等于待拼行程的所需座位数时,还可以需要行程可拼单对象的对象状态是听单中状态(即等待接单,还未接单)或者服务器中状态(即已经接单有拼单性质的已有行程)。
通过上述过程,即可获取到与带拼行程起始位置相匹配的行驶对象。总结一下就是,行驶对象为可以对拼单性质的行程进行接单的司机,行驶对象的对象实时位置在待拼行程起始位置附近(例如在以待拼行程起始位置为中心的对象检索区域中),行驶对象的驾驶车辆的空闲座位数要大于或者等于待拼行程的所需座位数。
更多的,服务器还可以获取到行驶对象的已有行程,该已有行程为行驶对象已经接单的行程。
步骤S102,根据待拼行程和已有行程,确定预测总行程;
具体的,服务器还可以根据待拼行程和行驶对象的已有行程,得到预测总行程,该预测总行程为预测的将待拼行程和行驶对象的已有行程进行拼单之后,行驶对象所需要驾驶的最佳路线,该最佳路线也就是耗时最短或者里程最短的路线。下面描述如何获取预测总行程:
服务器可以获取到已有行程的行程起点和行程终点,可以将已有行程的行程起点称之为已有行程起始位置,将已有行程的行程终点称之为已有行程终止位置。服务器还可以获取到待拼行程的待拼行程起始位置和待拼行程终止位置。服务器还可以获取到当前行驶对象通过所属的终端设备发送的对象实时位置。
服务器可以对行驶对象的对象实时位置、已有行程起始位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置进行位置组合,得到多个(至少两个)预测行驶行程。该多个预测行驶行程对应于多个行驶路线,该多个预测行驶行程包含了要到达已有行程起始位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置,所有可能的路线,一个预测行驶行程对应于一个路线。换句话说,预测行驶行程表示了对已有行程和待拼行程分别所属的乘客的接送驾顺序。例如,一个预测行驶行程可以为:
需要进行说明的是,上述预测行驶行程是根据当前将待拼行程与已有行程进行拼单之后,行驶对象接下来还要到达的位置所得到的,即根据剩余行程所得到的。例如,若在获取行驶对象的已有行程和待拼行程之间的预测总行程时,行驶对象还在去接已有行程所属的乘客的路上,则表明行驶对象还没有到达已有行程起始位置,则需要对行驶对象的对象实时位置、已有行程起始位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置进行位置组合,得到多个预测行驶行程。再例如,若在获取行驶对象的已有行程和待拼行程之间的预测总行程时,行驶对象已经接到了已有行程所属的乘客,还在送已有行程所属的乘客前往已有行程终止位置的路上,则表明行驶对象已经到达了已有行程起始位置未到达已有行程终止位置,则需要对行驶对象的对象实时位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置进行位置组合,得到多个预测行驶行程。换句话说,在获取预测行驶行程时,不需要对行驶对象已经到达过的位置进行位置组合,只需要对接下来还需要到达的位置进行位置组合。
同理,若行驶对象的已有行程有多个,则需要对该多个已有行程的已有行程起始位置和已有行程终止位置、以及待拼行程起始位置、待拼行程终止位置和行驶对象的实时位置,进行位置组合,得到多个预测行驶行程。
更多的,在获取到多个预测行驶行程之后,服务器可以获取到每个预测行驶行程的行程开销参数。其中,一个预测行驶行程的行程开销参数可以包括该预测行驶行程的行程总里程,或者包括该预测行驶行程的行程总时间,或者同时包括该预测行驶行程的行程总里程和行程总时间。
其中,预测行驶行程的行程总里程为完成该预测行驶行程一共需要行驶的里程数(即行驶距离,例如10公里),预测行驶行程的行程总时间为完成该预测行驶行程一共需要行驶的时长(即行驶时长,例如20分钟)。其中,可以使用多对多距离矩阵来计算预估每个预测行驶行程的行程总里程和行程总时间,通过多对多距离矩阵可以获取到预测行驶行程中所组合的任意相邻两个位置之间的行驶里程和行驶时间,因此预测行驶行程的行程总里程,就为该预测行驶行程中所有相邻两个位置之间的行驶里程之和。预测行驶行程的行程总时间,就为该预测行驶行程中所有相邻两个位置之间的行驶时间之和。其中,预测行驶行程的行程总里程和行程总时间均可以是通过当前的路况信息预测得到的。
当预测行驶行程的行程开销参数中包括预测行驶行程的行程总里程时,则可以将多个预测行驶行程中,行程总里程最小的预测行驶行程,作为预测总行程。当预测行驶行程的行程开销参数中包括预测行驶行程的行程总时间时,则可以将多个预测行驶行程中,行程总时间最小的预测行驶行程,作为预测总行程。
当预测行驶行程的行程开销参数中同时包括预测行驶行程的行程总里程和行程总时间时,则可以获取针对行程总里程的里程权重以及针对行程总时间的时间权重。该里程权重和该时间权重可以根据实际情况自行设定,可以使用里程权重分别对每个预测行驶行程的行程总里程进行加权,得到每个预测行驶行程分别对应的加权总里程。一个预测行驶行程对应于一个加权总里程,某个预测行驶行程的加权总里程就为该个预测行驶行程的行程总里程与里程权重之间的乘积。同样,可以使用时间权重分别对每个预测行驶行程的行程总时间进行加权,得到每个预测行驶行程分别对应的加权总时间。一个预测行驶行程对应于一个加权总时间,某个预测行驶行程的加权总时间就为该个预测行驶行程的行程总时间与时间权重之间的乘积。
可以将每个预测行驶行程分别对应的加权总里程(可以以千米为单位)和加权总时间(可以以分钟为单位)之和,作为每个预测行驶行程分别对应的行程选取评估参数。可以将多个预测总行程中,行程选取评估参数最小的预测行驶行程,作为预测总行程。例如,一个预测行驶行程的行程总里程可以为10千米,行程总时间可以为20分钟,里程权重可以为0.4,时间权重可以为0.6,则该个预测行驶行程的行程选取评估参数可以为10*0.4+20*0.6等于16。
请参见图6,图6是本申请提供的一种获取预测总行程的场景示意图。如图6所示,司机当前位置Xs为行驶对象的对象实时位置,行程A可以是待拼行程,行程B可以是行驶对象的已有行程。因此,起点As为待拼行程起始位置,终点Ae为待拼行程终止位置,起点Bs为已有行程起始位置,Be为已有行程终止位置。假设现在行驶对象还未到达起点,因此,可以对司机当前位置Xs、起点As、终点Ae、起点Bs和终点Be进行位置组合,进而得到多个预测行驶行程。
具体的,由图6的树状图100f可知,此处得到的预测行驶行程一共可以有6个,分别为:第1个预测行驶行程: 第2个预测行驶行程: 第3个预测行驶行程: 第4个预测行驶行程: 第5个预测行驶行程: 第6个预测行驶行程:
其中,在树状图100f中的位置与位置之间的箭头上的数字,代表位置与位置之间的里程数(即行驶里程)。针对上述第1个预测行驶行程,司机当前位置Xs与起点As之间的行驶里程为1,起点As与起点Bs之间的行驶里程为5,起点Bs与终点Ae之间的行驶里程为3,终点Ae与终点Be之间的行驶里程为1,因此,第1个预测行驶行程的行程总里程就为1+5+3+1等于10。
针对上述第2个预测行驶行程,司机当前位置Xs与起点As之间的行驶里程为1,起点As与起点Bs之间的行驶里程为5,起点Bs与终点Be之间的行驶里程为6,终点Be与终点Ae之间的行驶里程为7,因此,第1个预测行驶行程的行程总里程就为1+5+6+7等于19。
针对上述第3个预测行驶行程,司机当前位置Xs与起点As之间的行驶里程为1,起点As与终点Ae之间的行驶里程为2,终点Ae与起点Bs之间的行驶里程为1,起点Bs与终点Be之间的行驶里程为3,因此,第3个预测行驶行程的行程总里程就为1+2+1+3等于7。
针对上述第4个预测行驶行程,司机当前位置Xs与起点Bs之间的行驶里程为2,起点Bs与起点As之间的行驶里程为3,起点As与终点Ae之间的行驶里程为3,终点Ae与终点Be之间的行驶里程为5,因此,第4个预测行驶行程的行程总里程就为2+3+3+5等于13。
针对上述第5个预测行驶行程,司机当前位置Xs与起点Bs之间的行驶里程为2,起点Bs与起点As之间的行驶里程为3,起点As与终点Be之间的行驶里程为2,终点Be与终点Ae之间的行驶里程为7,因此,第5个预测行驶行程的行程总里程就为2+3+2+7等于14。
针对上述第6个预测行驶行程,司机当前位置Xs与起点Bs之间的行驶里程为2,起点Bs与终点Be之间的行驶里程为1,终点Be与起点As之间的行驶里程为6,起点As与终点Ae之间的行驶里程为1,因此,第6个预测行驶行程的行程总里程就为2+1+6+1等于10。
因此,若将每个预测行驶行程的行程总里程作为每个预测行驶行程的行程开销参数,则可以将具有最小的行程总里程7(因此min(10,19,7,13,14,10)=7)的上述第3个预测行驶行程作为预测总行程101f。预测总行程101f也就是:
步骤S103,根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;
具体的,通常待拼行程的乘客通常更关注行程的里程(例如需要行驶多少公里),而行驶对象的已有行程的乘客通常更关注行程所需的剩余时长(例如还需多少时间到达已有里程终点位置),因此,待拼行程与预测总行程之间的行程变化信息,可以为第一行程里程变化信息,行驶对象的已有行程与预测总行程之间的行程变化信息,可以为第一行程时长变化信息。行程拼单指标可以包括待拼行程的第一行程绕路比信息、以及行驶对象的已有行程的第一行程延迟时长。具体参见下述。
其中,服务器可以通过预测总行程、待拼行程起始位置和待拼行程终止位置,得到待拼行程与预测总行程之间的第一行程里程变化信息,进而可以通过该第一行程里程变化信息,计算得到待拼行程的第一行程绕路信息:
服务器可以获取到待拼行程起始位置和待拼行程终止位置之间的非拼单行程里程,该非拼单行程里程指当单独接送待拼行程所属的乘客,不对待拼行程和行驶对象的已有行程进行拼单时,从待拼行程起始位置到待拼行程终止位置之间一共需要行驶的里程数(例如10公里)。换句话说,非拼单行程里程为,待拼行程不与行驶对象的已有行程进行拼单时,待拼行程原本的行程里程。该非拼单行程里程可以是服务器根据当前的实时路况,所预测得到的从待拼行程起始位置到待拼行程终止位置之间一共需要行驶的里程数。
服务器还可以根据预测总里程,获取到待拼行程的拼单行程里程,该拼单行程里程指当将待拼行程与行驶对象的已有行程进行拼单(拼单后的行程即为预测总行程)时,待拼行程的拼单后的行程里程。由于对待拼行程与行驶对象的已有行程进行拼单之后,在对待拼行程所属的乘客进行接送时,也会对行驶对象的已有行程所属的乘客进行接送。对于待拼行程而言,在对待拼行程的乘客进行接送时,往往会绕路去接送已有行程所属的乘客,因此,通常待拼行程的拼单行程里程会大于待拼行程的非拼单行程里程,也有拼单行程里程与非拼单行程里程相等的情况。
在得到上述待拼行程的非拼单行程里程和拼单行程里程之后,服务器可以计算拼单行程里程与非拼单行程里程之间的差值,该差值即为上述待拼行程与预测总行程之间的第一行程里程变化信息。接着,服务器可以将该第一行程里程变化信息与待拼行程的非拼单行程里程之间的里程比值,作为上述待拼行程的第一行程绕路比信息。该第一行程绕路比信息表征了,对待拼行程与已有行程进行拼单后,相较于不对待拼行程与已有行程进行拼单时,待拼行程绕路的程度,即里程数的增加程度。
举个例子,待拼行程的非拼单行程里程可以是10,拼单行程里程可以是15,则待拼行程的第一行程里程变化信息可以为15减去10等于5,待拼行程的第一行程绕路比信息可以为5/10等于0.5。
其中,服务器可以通过预测总行程、已有行程起始位置和已有行程终止位置,得到行驶对象的已有行程与预测总行程之间的第一行程时长变化信息,进而可以通过该第一行程时长变化信息,计算得到行驶对象的已有行程的第一行程延迟时长:
服务器可以根据行驶对象的已有行程的已有行程起始位置和已有行程终止位置,获取已有行程的非拼单行程剩余时长。其中,行驶对象在行驶过程中,行驶对象所属的终端设备,还可以向服务器发送(例如每隔1秒发送一次)预计从行驶对象当前的对象实时位置到达已有行程起始位置(若是还未到达已有行程起始位置则会发送)、以及行程终点的剩余时长和剩余里程。该剩余时长和剩余里程可以是根据当前实时的路况信息(例如堵车与否、有无交通事故或者有无被封路等信息)预估得到的。
其中,若是服务器已经到达过已有行程起始位置,则服务器获取到的预计从行驶对象的对象实时位置到已有行程终止位置的剩余时长(该剩余时长具体包含了从行驶对象的对象实时位置到达已有行程终止位置的时长),就可以为上述已有行程的非拼单行程剩余时长。若是服务器还未到达过已有行程起始位置,则服务器获取到的预计从行驶对象的对象实时位置到已有行程终止位置的剩余时长(该剩余时长具体包含了从行驶对象的对象实时位置到达已有行程起始位置的时长、以及从已有行程起始位置到达已有行程终止位置的时长),就可以为上述已有行程的非拼单行程剩余时长。该非拼单行程剩余时长也就是当已有行程与待拼行程不进行拼单时,完成已有行程还需的剩余时长(例如还需10分钟到达已有行程终止位置)。
服务器还可以根据预测总行程,预估得到行驶对象的已有行程的拼单行程剩余时长,该拼单行程剩余时长,指当行驶对象的已有行程与待拼行程进行拼单后(拼单后的行程即为预测总行程),完成已有行程还需的剩余时长。由于对已有行程与待拼行程进行拼单之后,在对已有行程所属的乘客进行接送时,也会对待拼行程所属的乘客进行接送,因此,已有行程的拼单行程剩余时长,通常会比已有行程的非拼单剩余时长要长。
服务器可以将已有行程的拼单行程剩余时长和非拼单行程剩余时长之间的差值,作为已有行程与预测总行程之间的第一行程时长变化信息,可以直接将该第一行程时长变化信息作为已有行程的第一行程延迟时长。该第一行程延迟时长表征了对已有行程和待拼行程进行拼单后,比已有行程与待拼行程不进行拼单时,完成已有行程多花费的时间。
请参见图7,图7是本申请提供的一种获取行程拼单指标的场景示意图。如图7所示,位置101h为驾驶车辆100h所属的行驶对象的当前位置(即对象实时位置),位置102h为待拼行程起始位置,位置103h为已有行程终止位置,位置104h为待拼行程终止位置。对驾驶车辆100h所属的行驶对象的已有行程和待拼行程进行拼单后的预测总行程为: 如图7所示,位置101h到达位置102h的行驶里程为19公里,位置101h到达位置103h的行驶里程为20公里,位置102h到达位置103h的行驶里程为18公里,位置103h到达位置104h的行驶里程为23公里,位置102h到达位置104h的行驶里程为22公里。
因此,若是已有行程不与待拼行程进行拼单,则驾驶车辆100h可以直接从位置101h到达位置103h,即可完成已有行程,但是待拼行程与已有行程进行拼单之后,驾驶车辆100h则需要从位置101h先到位置102h,再从位置102h到位置103h,才能完成已有行程。假设驾驶车辆100h从位置101h到达位置103h耗时h1(即非拼单行程剩余时长),从位置101h到达位置102h再到达位置103h耗时h2(即拼单行程剩余时长),则已有行程的第一行程延迟时长106h就为h2减去h1。
更多的,若是待拼行程不与已有行程进行拼单,则可以直接从位置102h到达位置104h,以完成待拼行程,此时行驶的里程总数就为22公里(即非拼单行程里程)。若是待拼行程与已有行程进行拼单,则需要从位置102h先到位置103h,再从位置103h到位置104h,才能完成待拼行程,此时行驶的里程总数为18公里加上23公里等于41公里(即拼单行程里程)。则上述待拼行程的第一行程绕路比信息105h就为(41-22)/22。
因此,驾驶车辆100h所属的行驶对象对应的行程拼单指标,就包括上述第一行程绕路比信息105h和第一行程延迟时长106h。
可选的,待拼行程与预测总行程之间的行程变化信息,也可以为第二行程时长变化信息,行驶对象的已有行程与预测总行程之间的行程变化信息,可以为第二行程里程变化信息。因此,行程拼单指标可以包括待拼行程的第二行程延迟时长、以及行驶对象的已有行程的第二行程绕路比信息。
其中,计算第二行程时长变化信息的原理与计算上述第一行程时长变化信息的原理相同,第二行程时长变化信息就为,对待拼行程和已有行程进行拼单后待拼行程需要的行程总时间、与不对待拼行程和已有行程进行拼单时待拼行程所需要的行程总时间之间的差值。计算第二行程里程变化信息的原理,与计算上述第一行程里程变化信息的原理相同,第二行程里程变化信息就为,对已有行程和待拼行程进行拼单后已有行程剩余的行程里程数、与不对已有行程和待拼行程进行拼单时已有行程的剩余里程数之间的差值。
其中,计算第二行程延迟时长的原理与计算上述第一行程延迟时长的原理相同,第二行程延迟时长就为上述第二行程时长变化信息。计算第二行程绕路比信息的原理与上述计算第一行程绕路比信息的原理相同,第二行程绕路比信息就为,第二行程里程变化信息与不对已有行程和待拼行程进行拼单时已有行程的剩余里程数之间的比值。
步骤S104,根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果;
具体的,行程拼单结果可以为行程可拼单结果或行程不可拼单结果。该行程可拼单结果,表征了待拼行程和行驶对象的已有行程之间可以进行拼单,拼单后,对待拼行程和行驶对象的已有行程的影响程度在可接受范围内。该行程不可拼单结果,表征了待拼行程与已有行程之间不可以进行拼单,拼单后,对待拼行程或者行驶对象的已有行程的影响程度不在可接受范围内。
若上述行程拼单指标包括待拼行程的第一行程绕路比信息、以及行驶对象的已有行程的第一行程延迟时长,则当第一行程绕路比信息小于或者等于绕路比阈值(可以根据实际情况自行设置),并且第一行程延迟时长小于或者等于时长阈值(可以根据实际情况自行设置)时,可以得到上述行程可拼单结果。反之,当第一行程绕路比信息大于绕路比阈值,或者第一行程延迟时长大于时长阈值时,可以得到上述行程不可拼单结果。
其中,第一行程绕路比信息小于或者等于绕路比阈值,表明待拼行程与已有行程进行拼单后,完成待拼行程时多出来的里程数在可接受范围内。第一行程延迟时长小于或者等于时长阈值时,表明已有行程与待拼行程进行拼单后,完成已有行程的剩余时间的增长幅度在可接受范围内。
可选的,若上述行程拼单指标包括待拼行程的第二行程延迟时长、以及行驶对象的已有行程的第二行程绕路比信息,则当第二行程绕路比信息小于或者等于绕路比阈值,并且第二行程延迟时长小于或者等于时长阈值时,可以得到上述行程可拼单结果。反之,当第二行程绕路比信息大于绕路比阈值,或者第二行程延迟时长大于时长阈值时,可以得到上述行程不可拼单结果。
其中,若是行驶对象有多个,则一个行驶对象对应于一个行程拼单结果。若具有行程可拼单结果的行驶对象只有一个,则服务器可以将待拼行程发送给该行驶对象所属的用户终端(即行驶对象所持有的终端设备),行驶对象所属的用户终端可以响应行驶对象针对该待拼行程的接单操作,实现对待拼行程的接单。行驶对象对待拼行程接单后,就可以按照上述预测总行程所指示的接送顺序,对待拼行程所属的乘客和自己的已有行程的乘客进行接送。可以将最终对待拼行程进行接单的行驶对象称之为上述图2中的接单司机。
其中,服务器在将待拼行程发送给行驶对象所属的用户终端之前,还可以向待拼行程所属的乘客的终端设备发送该行驶对象的对象信息(例如行驶对象的驾驶车辆的车型、行驶对象的驾驶车辆的已占用座位数以及行驶对象的联系电话等信息),当服务器获取到待拼行程所属的乘客的终端设备返回的针对该行驶对象的对象信息的确认信息(例如确认选中该行驶对象执行待拼行程的提示信息),则服务器可以将待拼行程发送至该行驶对象所属的用户终端,使得该行驶对象所属的用户终端可以对该待拼行程进行接单。
请参见图8,图8是本申请提供的一种执行行程订单的场景示意图。如图8所示,假设是车辆101g所属的行驶对象对待拼行程进行了接单,待拼行程为小红的创建的行程。车辆101g所属的行驶对象的已有行程为小明创建的行程。车辆101g所属的行驶对象的已有行程与待拼行程之间的预测总行程为行程100g,预测总行程100g具体为从司机当前位置到小明的起始位置(即已有行程起始位置),再从小明的起始位置到小红的起始位置(即待拼行程起始位置),再从小红的起始位置到小明的终止位置(即已有行程终止位置),再从小明的终止位置到小红的终止位置(即待拼行程终止位置),待拼行程与已有行程拼单后的行程结束。
因此,如图8所示,车辆101g所属的行驶对象首先可以从司机当前位置102g,行驶到已有行程起始位置103g接小明上车,再行驶到待拼行程起始位置104g接小红上车,再行驶到已有行程终止位置105g让小明下车,再行驶到待拼行程终止位置让小红下车。至此,整个行程结束。
若具有行程可拼单结果的行驶对象有多个,且上述行程拼单指标包括第一行程延迟时长和第一行程绕路比信息,则服务器可以获取针对第一行程延迟时长的延迟时长权重(可以根据实际情况自行设置)、以及针对第一行程绕路比信息的绕路比权重(可以根据实际情况自行设置)。服务器可以使用延迟时长权重,对具有行程可拼单结果的每个行驶对象的行程拼单指标中的第一行程延迟时长进行加权(即相乘),得到具有行程可拼单结果的每个行驶对象分别对应的加权延迟时长。服务器还可以使用绕路比权重对具有行程可拼单结果的每个行驶对象的行程拼单指标中的第一行程绕路比信息进行加权(即相乘),得到具有行程可拼单结果的每个行驶对象分别对应的加权绕路比信息。服务器可以将具有行程可拼单结果的每个行驶对象分别对应的加权延迟时长和加权绕路比信息之和,作为每个行驶对象分别对应的对象选取评估参数。服务器可以将具有最小的对象选取评估参数的行驶对象,作为最终对待拼行程进行接单的行驶对象。服务器可以将待拼行程发送给具有最小的对象选取评估参数的行驶对象所持有的终端设备,使得该行驶对象可以通过所持有的终端设备实现对待拼行程的接单。
更多的,当没有具有行程可拼单结果的行驶对象,则服务器可以查找与待拼行程的待拼行程起始位置之间具有最小的行驶里程的行程不可拼单对象,作为待拼行程的行程可接单对象。该行程不可拼单对象指同一时间只对一个行程进行接单的司机,换句话说,行程不可拼单对象不能对拼单性质的行程进行接单,可以将行程不可拼单对象理解为专车司机。服务器可以将该行程可接单对象的对象信息(例如行程可接单对象的驾驶车辆的车型以及行程可接单对象的联系电话等信息)发送给待拼行程所属的乘客的终端设备。待拼行程所属的乘客的终端设备,可以响应待拼行程所属的乘客针对该行程可接单对象的对象信息的确认操作(例如选中该行程可接单对象来执行待拼行程的操作),生成确认信息。待拼行程所属的乘客的终端设备,可以将该确认信息发送给服务器,服务器在获取到该确认信息之后,就可以将待拼行程发送给该行程可接单对象所持有的终端设备,使得该行程可接单对象所持有的终端设备可以响应行程可接单对象的接单操作,实现对待拼行程的接单。
本申请获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;根据待拼行程和已有行程,确定预测总行程;根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。由此可见,本申请提出的方法首先可以根据待拼行程与已有行程得到预测总行程,进而可以衡量待拼行程和已有行程分别与该预测总行程之间的行程变化信息,来得到用于判断是否要对待拼行程和已有行程进行拼单(即得到行程拼单结果)的行程拼单指标,因此,通过该行程拼单指标所得到的行程拼单结果,同时考量了拼单后,针对待拼行程的影响以及针对已有行程的影响,保证了所得到的行程拼单结果的准确性。
请参见图9,图9是本申请提供的一种拼车方法的流程示意图。如图9所示,该方法包括:
1.1,乘客创建订单;
具体的,乘客可以通过乘客端软件创建订单。其中,乘客端软件可以是任意一个可以用于约车的app(即软件),乘客所创建的订单可以是一个拼车类型(即拼车性质)的行程订单,该行程订单也就是一个约车的订单,例如从某一个地方(行程起点)到另一个地方(行程终点)的一个行程的订单。当乘客在乘客端软件创建订单之后,乘客端软件可以将乘客所创建的订单同步至约车后台。约车后台即为约车软件的app的后台,乘客端软件和司机端软件的后台可以为同一个约车后台,该约车后台可以是后台服务器。
1.2,订单同步,创建订单;
约车后台可以将乘客在乘客端软件创建的订单,同步至司机匹配后台,该司机匹配后台,可以是用于为乘客所创建的订单检索合适的可接单的司机的后台。
1.3,返回确认信息;
司机匹配后台在接收到约车后台同步的订单之后,可以在司机匹配后台也同步创建该订单。当司机匹配后台成功创建该订单之后,可以向约车后台返回确认信息,以通过该确认信息告知约车后台已经成功创建了此新订单。
1.4,返回确认信息;
约车后台在接收到司机匹配后台所返回的确认信息之后,可以同步向乘客端软件返回确认信息。乘客端软件在接收到该确认信息之后,可以在乘客端软件所属的终端设备的终端页面中显示其所创建的订单信息。
通过上述过程,司机匹配后台和约车后台中就获取到了乘客所创建的订单,可以将该订单作为上述待拼行程。接下来可以进行下述过程,但步骤2.1不一定是要在步骤1.4之后执行,而是随时可执行。
2.1,开启定位,听单中;
所有司机(包括所有行程可拼单司机和所有行程不可拼单司机)均可以在各自的司机端软件中开启定位。其中,可以通过司机端软件调用司机端定位工具包(sdk)开启定位。
2.2,1秒1次的频率取定位点;
所有司机在司机端软件中开启定位之后,均可以以1秒1次的频率获取定位点,即每秒获取1次司机当前的实时位置,定位点也就是实时位置。并可以将获取到的司机的实时位置同步给司机端司乘同显工具包(即司机端司乘同显sdk)。其中,司乘同显指司机和乘客可以同步查看到对方的位置信息、剩余里程(例如司机的已有行程的剩余里程)或者剩余时间(例如司机的已有行程的剩余时间)等。
2.3,轨迹上报(定位点,司机状态,订单类型);
司机端司乘同显sdk可以向司机匹配后台上报每个司机的轨迹信息,该轨迹信息可以包括每个司机最新的定位点、司机状态(例如停止接单状态、听单中状态等)以及订单类型。该订单类型可以指每个司机可以接单的订单的类型,订单的类型可以包括拼单性质的订单类型和不是拼单性质的订单类型。
2.4,更新司机所在格子,更新司机的最新位置,更新到达每个子订单的起终点的预估里程和预估时间(如果有订单则需要);
司机匹配后台可以根据获取到的每个司机最新的定位点,更新司机所在格子。此处,司机所在格子,指与司机具有网格所属关系的区域网格。司机匹配后台还可以将获取到的每个司机最新的定位点,作为每个实际的最新位置。在司机行驶过程中,司机匹配后台还会不断更新到达每个子订单的起终点的预估里程(即预计的剩余里程)和预估时间(即预计的剩余时间)。此处的子订单可以指司机的已有行程。
通过上述过程,司机匹配后台即可随时知道每个司机的实时位置、每个司机所在的格子以及每个司机到达其已有行程的行程起点和行程终点的预估里程和预估时间等信息。接下来可以进行下述过程,但步骤3.1不一定是要在步骤1.4之后执行。
3.1,拼车派单建议(参数:乘客订单起点,召回半径,乘客数);
约车后台可以向司机匹配后台发送拼车派单建议,以通过该拼车派单建议向匹配司机后台请求为待拼行程匹配司机。该拼车派单建议可以携带乘客订单起点(即待拼行程起始位置)、召回半径(也就是上述区域检索半径)以及乘客数(也就是待拼行程的所需座位数)。
3.2,查询召回半径内的所有司机,查询这些司机的最新位置、状态、以及订单类型,过滤出可以接拼车单,同时车上剩余座位数能满足需求的司机;
司机匹配后台可以查询召回半径内的所有司机,即查询出上述对象检索区域中的所有司机。并查询召回半径内的所有司机的最新位置、状态(例如停止接单状态或听单中状态等)、以及订单类型(例如拼单性质的订单类型或者不是拼单性质的订单类型)。若司机的订单类型为拼单性质的订单类型,则说明该司机可以对拼单性质的行程订单进行接单(即可以接拼车单)。若司机的订单类型不是拼单类型的订单类型,则说明该实际不可以对拼单性质的行程订单进行接单。
司机匹配后台可以将状态为听单中状态、订单类型为拼单性质的订单类型、并且车上剩余座位数(即空闲座位数)大于或者等于待拼行程的所需座位数的司机过滤出来,过滤出来的司机即为上述行驶对象。
3.3,返回已经在拼车单中的司机(最新位置,当前所有行程详情(历史拼单数、当前子订单详情(子订单id,到达子订单的起终点的剩余里程和剩余时间)),剩余座位数);
司机匹配后台可以向约车后台返回在步骤3.2中查找到的行驶对象的最新位置、行驶对象的当前所有行程详情以及行驶对象的驾驶车辆的剩余座位数(即空闲座位数)。该当前所有行程详情可以包括行驶对象的历史拼单数(即行驶对象当前的已有行程的订单数量)、当前子订单(即已有行程)id(标识)、到达当前子订单的行程起点的剩余里程/剩余时间、以及到达当前子订单的行程终点的剩余里程/剩余时间。
3.4,对于返回的列表中的每个订单分别调用绕路比接口,判断将此订单拼入现有行程是否合适;
返回的列表中的每个订单指每个待拼行程,该每个待拼行程所属不同的乘客,该每个待拼行程可以是通过上述步骤1.1-步骤1.4所创建的行程订单。约车后台可以对每个待拼行程分别调用绕路比接口,来判断将待拼行程拼入行驶对象的现有行程(即已有行程)是否合适。
3.5,调用绕路比接口,输入:司机的最新位置、剩余所有途经点(拼车行程中未经过的子订单的起终点)、要插入的订单A的起终点;
约车后台可以通过司机匹配后台来调用绕路比接口,针对绕路比接口的输入可以包括行驶对象的最新位置(即行驶对象的对象实时位置)、剩余所有途经点(即拼车行程中未经过的已有行程的起终点)、以及要插入的订单A(订单A可以为任意一个待拼行程)的起终点。通过绕路比接口,可以输出每个待拼行程(包括订单A)的上述第一行程绕路比信息。
3.6,返回插入订单A的起终点之后,订单A的接驾时间,订单A的绕路比((拼单后订单A上下车之间的行驶距离-订单A的原始距离)/订单A的原始距离),到达已拼入每个子订单的起终点的剩余里程和剩余时间,最优接送驾顺序;
司机匹配后台可以向约车后台,返回当在行驶对象的已有行程中插入订单A的起终点(已有行程起始位置和已有行程终止位置)之后,针对订单A所属的乘客的接驾时间(即到达已有行程起始位置的时间),并返回订单A的绕路比(即订单A的第一行程绕路比信息)。订单A的绕路比等于:将订单A与行驶对象的已有行程进行拼单后订单A上下车之间的行驶距离(即行驶里程,也就是上述待拼行程的拼单行程里程),减去订单A的原始距离(即原始的行驶里程,也就是上述待拼行程的非拼单行程里程)后,所得到的差值与订单A的原始距离之间的比值。
司机匹配后台还可以向约车后台,返回行驶对象到达每个子订单(即已有行程)的起终点的剩余里程和剩余时间,并返回最优接送驾顺序。该最优接送驾顺序可以指上述预测总行程。约车后台可以向司机端司乘同显sdk所在的终端设备,发送到达每个子订单(即已有行程)的起终点的剩余里程和剩余时间,司机端司乘同显sdk所在的终端设备可以在终端页面中,显示该剩余里程和剩余时间。约车后台还可以通过最优接送驾顺序、以及到达每个子订单(即已有行程)的起终点剩余时间,计算得到已有行程的上述第一行程延迟时长。如果有合适的可拼入的行程(即可拼入的待拼行程,例如第一行程绕路比信息小于或者等于绕路比阈值,且已有行程的第一行程延迟时长小于或者等于时长阈值时所拼入的待拼行程),则约车后台可以将该可拼入的待拼行程,同步给对应的行驶对象的司机端司乘同显sdk。
3.7,如果有合适的可拼入的行程,则通过订单同步通知乘客订单已关联到现有拼车行程中;
司机端司乘同显sdk所在的终端设备,可以在终端页面中显示约车后台同步过来的可拼入的待拼行程,并响应司机的操作,对该待拼行程进行接单。接单后,可以通过订单同步通知乘客,其待拼行程已经被关联到该司机的现有拼车行程中(即待拼行程已经拼入了该司机的已有行程)。司机端司乘同显工具包所在的终端设备,可以将待拼行程与行驶对象的已有行程已经完成拼单的事件同步给司机匹配后台。
3.8,更新司机行程的历史拼单数和剩余座位数;
司机匹配后台可以根据获取到的待拼行程与行驶对象的已有行程已经完成拼单的事件,更新该行驶对象的历史拼单数以及剩余座位数。例如,该行驶对象原本的历史拼单数(即已有行程的订单数)为1,当拼入待拼行程之后,历史拼单数就可以加1,更新为2。该行驶对象的车辆中原本的剩余座位数(即车辆座位总数减去已有行程所占用的座位数)为2,拼入待拼行程之后,待拼行程又占用了1个座位,则可以将行驶对象的车辆中的剩余座位数由2减去1,更新为1。
3.9,返回订单确认信息;
当司机匹配后台,对获取到的待拼行程与行驶对象的已有行程已经完成拼单的事件的相关数据(例如步骤3.8中所更新的数据)更新完成之后,可以向司机端司乘同显sdk所在的终端设备,返回订单确认信息,以告知司机端司乘同显sdk所在的终端设备,对待拼行程和已有行程的拼单行程更新完成。
3.10,司机端按照绕路比接口返回的最优接送驾顺序进行导航;
司机端(即对待拼行程进行接单的行驶对象)可以按照绕路比接口返回的最优接送驾顺序(即预测总行程所指示的接送驾顺序),进行导航,实现对已有行程所属的乘客和待拼行程所属的乘客进行接送。
3.11,如果没有合适的可拼入的行程,则调用周边车辆服务,查询周围的听单中司机(参数:乘客订单起点,召回半径,乘客数);
此步骤为与上述步骤3.7并列的步骤。如果没有合适的可拼入的行程,即没有行程拼单结果为行程可拼单结果的行驶对象,则司机端司乘同显工具包所在的终端设备可以通过司机匹配后台,调用周边车辆服务,查询周围听单中的司机,即查询在待拼行程起始位置附近的行程不可拼单对象。查询在待拼行程起始位置附近的行程不可拼单对象时需要的参数包括:乘客订单起点(即待拼行程起始位置)、召回半径(即区域检索半径)以及乘客数(即待拼行程所需的座位数)。查询的目的,就是查询出上述对象检索区域(即以待拼行程起始位置为中心,召回半径为半径的圆形区域)中的行程不可拼单对象。
3.12,查询召回半径内的所有司机,查询这些司机的最新位置和状态,过滤出状态为听单中的司机,计算出司机到乘客订单起点的驾车距离;
司机匹配后台查询到召回半径内的所有司机(所有行程不可拼单对象)之后,可以查询所查询到的司机的最新位置(即当前的实时位置)和状态(停止接单状态或者听单状态等),并预估出该司机到达乘客订单起点(即待拼行程起始位置)的驾车距离。
3.13,返回周围听单中的司机的司机id,最新位置,和到达乘客上车位置的驾车距离;
司机匹配后台可以向司机端司乘同显sdk返回召回半径内所有行程不可拼单对象的对象id(即司机id,也就是司机标识)、最新位置以及到达乘客上车位置(即待拼行程起始位置)的驾车距离(即行驶里程)。
3.14,选择出驾车距离最近的司机,将乘客订单派单给司机;
司机端司乘同显sdk可以将,与待拼行程起始位置之间的驾车距离最小的行程不可拼单对象,作为待拼行程的行程可接单司机,并将待拼行程派单给该行程可接单司机。
3.15,调用订单同步服务
司机端司乘同显sdk可以将步骤3.14中行程可接单司机对待拼行程进行接单的事件同步给司机匹配后台。
3.16,返回订单信息;
司机匹配后台可以向司机端司乘同显sdk返回订单确认信息,以告知行程可接单司机对待拼行程进行接单的事件更新成功。
3.17,司机导航到乘客的上车点;
司机可以通过司机端司乘同显sdk在司机端软件中导航到乘客的上车点(即待拼行程起始位置)。
由于在本申请中,行程拼单指标(例如可以包括第一行程绕路比信息和第一行程延迟时长,或者可以包括第二行程绕路比信息和第二行程延迟时长)是通过实时路况信息获取到的,因此,最终判断出的待拼行程和已有行程之间是否适合进行拼单的结果(即上述行程拼单结果),考虑到了实时路况信息,并且考虑到了对拼单后对待拼行程的影响程度(例如第一行程绕路比信息)、以及拼单后对已有行程的影响程度(例如第一行程延迟时长),因此,可以得到非常准确的行程拼单结果。
请参见图10,图10是本申请提供的一种数据处理装置的结构示意图。如图10所示,该数据处理装置1可以包括:对象获取模块11、行程确定模块12、指标确定模块13和结果确定模块14;
对象获取模块11,用于获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;
行程确定模块12,用于根据待拼行程和已有行程,确定预测总行程;
指标确定模块13,用于根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;
结果确定模块14,用于根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。
其中,对象获取模块11、行程确定模块12、指标确定模块13和结果确定模块14的具体功能实现方式请参见图3对应的实施例中的步骤S101-步骤S104,这里不再进行赘述。
其中,对象获取模块11,包括:区域确定单元111、待定对象确定单元112、已占用座位获取单元113、空闲座位确定单元114和行驶对象确定单元115;
区域确定单元111,用于根据待拼行程起始位置,确定对象检索区域;
待定对象确定单元112,用于将处于对象检索区域中的行程可拼单对象,确定为待定行驶对象;
已占用座位获取单元113,用于获取待定行驶对象所属的驾驶车辆的车辆座位总数,获取驾驶车辆的已占用座位数;
空闲座位确定单元114,用于根据车辆座位总数和已占用座位数,确定驾驶车辆的空闲座位数;
行驶对象确定单元115,用于当空闲座位数大于或等于待拼行程的所需座位数时,将待定行驶对象确定为行驶对象。
其中,区域确定单元111、待定对象确定单元112、已占用座位获取单元113、空闲座位确定单元114和行驶对象确定单元115的具体功能实现方式请参见图3对应的实施例中的步骤S101,这里不再进行赘述。
其中,对象行驶区域被划分成至少两个区域网格;一个区域网格对应于对象行驶区域的一个行驶子区域;
区域确定单元111,包括:中心网格确定子单元1111、网格范围确定子单元1112和检索范围确定子单元1113;
中心网格确定子单元1111,用于获取至少两个区域网格中,待拼行程起始位置所在的行驶子区域对应的区域网格,作为中心区域网格;
网格范围确定子单元1112,用于获取区域检索半径,根据区域检索半径和中心区域网格确定网格检索范围;中心区域网格处于网格检索范围的中心;
检索范围确定子单元1113,用于将网格检索范围内的区域网格对应的行驶子区域,确定为对象检索区域。
其中,中心网格确定子单元1111、网格范围确定子单元1112和检索范围确定子单元1113的具体功能实现方式请参见图3对应的实施例中的步骤S101,这里不再进行赘述。
其中,上述数据处理装置1,还包括:网格确定模块15和关系建立模块16;
网格确定模块15,用于获取至少两个行程可拼单对象的对象实时位置,分别确定每个行程可拼单对象的对象实时位置所在的行驶子区域对应的区域网格;
关系建立模块16,用于建立每个行程可拼单对象与所对应的区域网格之间的网格所属关系;
待定对象确定单元,用于:
将至少两个行程可拼单对象中,与对象检索区域所包含的区域网格具有网格所属关系的行程可拼单对象,确定为待定行驶对象。
其中,网格确定模块15和关系建立模块16的具体功能实现方式请参见图3对应的实施例中的步骤S101,这里不再进行赘述。
其中,行程确定模块12,包括:位置获取单元121、位置组合单元122和行程选取单元123;
位置获取单元121,用于获取已有行程的已有行程起始位置和已有行程终止位置,获取待拼行程的待拼行程起始位置和待拼行程终止位置;
位置组合单元122,用于对已有行程起始位置、已有行程终止位置、待拼行程起始位置和待拼行程终止位置进行位置组合,得到至少两个预测行驶行程;
行程选取单元123,用于根据至少两个预测行驶行程对应的行程开销参数,从至少两个预测行驶行程中,获取预测总行程。
其中,位置获取单元121、位置组合单元122和行程选取单元123的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,行程选取单元123,包括:第一行程选取子单元1231和第二行程选取子单元1232;
第一行程选取子单元1231,用于当行程开销参数中包括每个预测行驶行程分别对应的行程总里程时,将至少两个预测行驶行程中,具有最小的行程总里程的预测行驶行程,确定为预测总行程;
第二行程选取子单元1232,用于当行程开销参数中包括每个预测行驶行程分别对应的行程总时间时,将至少两个预测行驶行程中,具有最小的行程总时间的预测行驶行程,确定为预测总行程。
其中,第一行程选取子单元1231和第二行程选取子单元1232的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,行程开销参数包括每个预测行驶行程分别对应的行程总里程、以及每个预测行驶行程分别对应的行程总时间;
行程选取单元123,包括:时间权重获取子单元1233、第一加权子单元1234、第二加权子单元1235、参数确定子单元1236和第三行程选取子单元1237;
时间权重获取子单元1233,用于获取针对行程总里程的里程权重以及针对行程总时间的时间权重;
第一加权子单元1234,用于基于里程权重对每个预测行驶行程的行程总里程分别进行加权,得到每个预测行驶行程分别对应的加权总里程;
第二加权子单元1235,用于基于时间权重对每个预测行驶行程的行程总时间分别进行加权,得到每个预测行驶行程分别对应的加权总时间;
参数确定子单元1236,用于根据每个预测行驶行程分别对应的加权总里程和加权总时间,确定每个预测行驶行程分别对应的行程选取评估参数;
第三行程选取子单元1237,用于将至少两个预测行驶行程中,具有最小的行程选取评估参数的预测行驶行程,确定为预测总行程。
其中,时间权重获取子单元1233、第一加权子单元1234、第二加权子单元1235、参数确定子单元1236和第三行程选取子单元1237的具体功能实现方式请参见图3对应的实施例中的步骤S102,这里不再进行赘述。
其中,待拼行程与预测总行程之间的行程变化信息为第一行程里程变化信息;已有行程与预测总行程之间的行程变化信息为第一行程时长变化信息;行程拼单指标包括待拼行程的第一行程绕路比信息和已有行程的第一行程延迟时长;
指标确定模块13,用于:
根据预测总行程、以及待拼行程的待拼行程起始位置和待拼行程终止位置,确定第一行程里程变化信息,根据第一行程里程变化信息,确定第一行程绕路比信息;根据预测总行程、以及已有行程的已有行程起始位置和已有行程终止位置,确定第一行程时长变化信息,根据第一行程时长变化信息,确定第一行程延迟时长。
其中,指标确定模块13,包括:第一里程获取单元131、第二里程获取单元132、里程变化确定单元133和绕路比信息确定单元134;
第一里程获取单元131,用于根据待拼行程起始位置和待拼行程终止位置,获取待拼行程的非拼单行程里程;非拼单行程里程,为待拼行程与已有行程不进行行程拼单时,待拼行程的行程里程;
第二里程获取单元132,用于根据预测总里程,确定待拼行程的拼单行程里程;拼单行程里程,为待拼行程与已有行程进行行程拼单时,待拼行程的行程里程;
里程变化确定单元133,用于将非拼单行程里程和拼单行程里程之间的里程差值,确定为第一行程里程变化信息;
绕路比信息确定单元134,用于将第一行程里程变化信息和非拼单行程里程之间的里程比值,确定为第一行程绕路比信息。
其中,第一里程获取单元131、第二里程获取单元132、里程变化确定单元133和绕路比信息确定单元134的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,指标确定模块13,包括:第一时长获取单元135、第二时长获取单元136、时长变化确定单元137和延迟时长确定单元138;
第一时长获取单元135,用于根据已有行程起始位置和已有行程终止位置,获取已有行程的非拼单行程剩余时长;非拼单行程剩余时长,为已有行程与待拼行程不进行行程拼单时,已有行程的行程剩余时长;
第二时长获取单元136,用于根据预测总行程,获取已有行程的拼单行程剩余时长;拼单行程剩余时长,为已有行程与剩余行程进行行程拼单时,已有行程的行程剩余时长;
时长变化确定单元137,用于将非拼单行程剩余时长和拼单行程剩余时长之间的时长差值,确定为第一行程时长变化信息;
延迟时长确定单元138,用于将第一行程时长变化信息,确定为第一行程延迟时长。
其中,第一时长获取单元135、第二时长获取单元136、时长变化确定单元137和延迟时长确定单元138的具体功能实现方式请参见图3对应的实施例中的步骤S103,这里不再进行赘述。
其中,行程拼单结果为行程可拼单结果或行程不可拼单结果;
结果确定模块14,包括:第一结果确定单元141和第二结果确定单元142;
第一结果确定单元141,用于当第一行程延迟时长小于或等于时长阈值,且第一行程绕路比信息小于或等于绕路比阈值时,将行程可拼单结果确定为行程拼单结果;
第二结果确定单元142,用于当第一行程延迟时长大于时长阈值,或第一行程绕路比信息大于绕路比阈值时,将行程不可拼单结果确定为行程拼单结果。
其中,第一结果确定单元141和第二结果确定单元142的具体功能实现方式请参见图3对应的实施例中的步骤S104,这里不再进行赘述。
其中,待拼行程与预测总行程之间的行程变化信息为第二行程时长变化信息;已有行程与预测总行程之间的行程变化信息为第二行程里程变化信息;行程拼单指标包括待拼行程的第二行程延迟时长和已有行程的第二行程绕路比信息;
指标确定模块13,用于:
根据预测总行程、以及待拼行程的待拼行程起始位置和待拼行程终止位置,确定第二行程时长变化信息,根据第二行程时长变化信息,确定第二行程延迟时长;根据预测总行程、以及已有行程的已有行程起始位置和已有行程终止位置,确定第二行程里程变化信息,根据第二行程里程变化信息,确定第二行程绕路比信息。
其中,行程拼单结果为行程可拼单结果或行程不可拼单结果;
数据处理装置1,还包括:接单模块17和接单对象获取模块18;
接单模块17,用于当行程拼单结果为行程可拼单结果时,将待拼行程发送至行驶对象所属的用户终端,以使用户终端对待拼行程进行行程接单;
接单对象获取模块18,用于当行程拼单结果为行程不可拼单结果时,获取与待拼行程起始位置之间的行驶里程最小的行程不可拼单对象,作为待拼行程的行程可接单对象。
其中,接单模块17和接单对象获取模块18的具体功能实现方式请参见图3对应的实施例中的步骤S104,这里不再进行赘述。
本申请获取请求对象的待拼行程,获取与待拼行程的待拼行程起始位置相匹配的行驶对象,获取行驶对象的已有行程;根据待拼行程和已有行程,确定预测总行程;根据待拼行程和已有行程分别与预测总行程之间的行程变化信息,确定与已有行程和待拼行程相关联的行程拼单指标;根据行程拼单指标,确定待拼行程与已有行程之间的行程拼单结果。由此可见,本申请提出的方法首先可以根据待拼行程与已有行程得到预测总行程,进而可以衡量待拼行程和已有行程分别与该预测总行程之间的行程变化信息,来得到用于判断是否要对待拼行程和已有行程进行拼单(即得到行程拼单结果)的行程拼单指标,因此,通过该行程拼单指标所得到的行程拼单结果,同时考量了拼单后,针对待拼行程的影响以及针对已有行程的影响,保证了所得到的行程拼单结果的准确性。
请参见图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中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图3所对应实施例中对数据处理方法的描述。应当理解,本申请中所描述的计算机设备1000也可执行前文图10所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。
Claims (13)
1.一种数据处理方法,其特征在于,对象行驶区域被划分成至少两个区域网格;任一个区域网格对应于所述对象行驶区域的一个行驶子区域;任一个区域网格对应一个网格索引值,至少两个行程可拼单对象与所述至少两个区域网格之间具有网格所属关系,任一个行程可拼单对象的对象实时位置处于与该行程可拼单对象具有网格所属关系的区域网格对应的行驶子区域中;所述至少两个行程可拼单对象与所述至少两个区域网格之间的网格所属关系基于有序集合zset进行存储;所述方法包括:
获取请求对象的待拼行程,并将所述待拼行程的待拼行程起始位置所在的行驶子区域对应的区域网格确定为中心区域网格;
根据所述中心区域网格和区域检索半径确定网格检索范围,并获取所述网格检索范围内的区域网格所对应网格索引值中的最大索引值和最小索引值;
基于所述最大索引值和所述最小索引值在所述有序集合zset中,查找与所述网格检索范围内的区域网格具有网格所属关系的行程可拼单对象,作为待定行驶对象;
基于所述待定行驶对象确定与所述待拼行程起始位置相匹配的行驶对象,获取所述行驶对象的已有行程;
根据所述待拼行程和所述已有行程,确定预测总行程;
根据所述待拼行程和所述已有行程分别与所述预测总行程之间的行程变化信息,确定与所述已有行程和所述待拼行程相关联的行程拼单指标;
根据所述行程拼单指标,确定所述待拼行程与所述已有行程之间的行程拼单结果;
其中,若所述待拼行程与所述预测总行程之间的行程变化信息为针对所述待拼行程的第一行程里程变化信息,所述已有行程与所述预测总行程之间的行程变化信息为针对所述已有行程的第一行程时长变化信息,所述行程拼单指标包括根据所述第一行程里程变化信息所确定的所述待拼行程的第一行程绕路比信息、及根据所述第一行程时长变化信息所确定的所述已有行程的第一行程延迟时长,则所述根据所述行程拼单指标,确定所述待拼行程与所述已有行程之间的行程拼单结果,包括:
当所述第一行程延迟时长小于或等于时长阈值,且所述第一行程绕路比信息小于或等于绕路比阈值时,确定所述行程拼单结果是行程可拼单结果;
当所述第一行程延迟时长大于所述时长阈值,或所述第一行程绕路比信息大于所述绕路比阈值时,确定所述行程拼单结果是行程不可拼单结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待定行驶对象确定与所述待拼行程起始位置相匹配的行驶对象,包括:
获取所述待定行驶对象所属的驾驶车辆的车辆座位总数,获取所述驾驶车辆的已占用座位数;
根据所述车辆座位总数和所述已占用座位数,确定所述驾驶车辆的空闲座位数;
当所述空闲座位数大于或等于所述待拼行程的所需座位数时,将所述待定行驶对象确定为所述行驶对象。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述至少两个行程可拼单对象的对象实时位置,分别确定每个行程可拼单对象的对象实时位置所在的行驶子区域对应的区域网格;
建立所述每个行程可拼单对象与所对应的区域网格之间的网格所属关系。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述待拼行程和所述已有行程,确定预测总行程,包括:
获取所述已有行程的已有行程起始位置和已有行程终止位置,获取所述待拼行程的所述待拼行程起始位置和待拼行程终止位置;
对所述已有行程起始位置、所述已有行程终止位置、所述待拼行程起始位置和所述待拼行程终止位置进行位置组合,得到至少两个预测行驶行程;
根据所述至少两个预测行驶行程对应的行程开销参数,从所述至少两个预测行驶行程中,获取所述预测总行程。
5.根据权利要求4所述的方法,其特征在于,所述根据所述至少两个预测行驶行程对应的行程开销参数,从所述至少两个预测行驶行程中,获取所述预测总行程,包括:
当所述行程开销参数中包括每个预测行驶行程分别对应的行程总里程时,将所述至少两个预测行驶行程中,具有最小的行程总里程的预测行驶行程,确定为所述预测总行程;
当所述行程开销参数中包括所述每个预测行驶行程分别对应的行程总时间时,将所述至少两个预测行驶行程中,具有最小的行程总时间的预测行驶行程,确定为所述预测总行程。
6.根据权利要求4所述的方法,其特征在于,所述行程开销参数包括每个预测行驶行程分别对应的行程总里程、以及所述每个预测行驶行程分别对应的行程总时间;
所述根据所述至少两个预测行驶行程对应的行程开销参数,从所述至少两个预测行驶行程中,获取所述预测总行程,包括:
获取针对行程总里程的里程权重以及针对行程总时间的时间权重;
基于所述里程权重对所述每个预测行驶行程的行程总里程分别进行加权,得到所述每个预测行驶行程分别对应的加权总里程;
基于所述时间权重对所述每个预测行驶行程的行程总时间分别进行加权,得到所述每个预测行驶行程分别对应的加权总时间;
根据所述每个预测行驶行程分别对应的加权总里程和加权总时间,确定所述每个预测行驶行程分别对应的行程选取评估参数;
将所述至少两个预测行驶行程中,具有最小的行程选取评估参数的预测行驶行程,确定为所述预测总行程。
7.根据权利要求1所述的方法,其特征在于,若所述待拼行程与所述预测总行程之间的行程变化信息为所述第一行程里程变化信息,且所述已有行程与所述预测总行程之间的行程变化信息为所述第一行程时长变化信息,且所述行程拼单指标包括所述第一行程绕路比信息和所述第一行程延迟时长,则所述根据所述待拼行程和所述已有行程分别与所述预测总行程之间的行程变化信息,确定与所述已有行程和所述待拼行程相关联的行程拼单指标,包括:
根据所述预测总行程、以及所述待拼行程的所述待拼行程起始位置和待拼行程终止位置,确定所述第一行程里程变化信息,根据所述第一行程里程变化信息,确定所述第一行程绕路比信息;根据所述预测总行程、以及所述已有行程的已有行程起始位置和已有行程终止位置,确定所述第一行程时长变化信息,根据所述第一行程时长变化信息,确定所述第一行程延迟时长。
8.根据权利要求7所述的方法,其特征在于,所述根据所述预测总行程、以及所述待拼行程的所述待拼行程起始位置和待拼行程终止位置,确定所述第一行程里程变化信息,根据所述第一行程里程变化信息,确定所述第一行程绕路比信息,包括:
根据所述待拼行程起始位置和所述待拼行程终止位置,获取所述待拼行程的非拼单行程里程;所述非拼单行程里程,为所述待拼行程与所述已有行程不进行行程拼单时,所述待拼行程的行程里程;
根据所述预测总行程,确定所述待拼行程的拼单行程里程;所述拼单行程里程,为所述待拼行程与所述已有行程进行行程拼单时,所述待拼行程的行程里程;
将所述非拼单行程里程和所述拼单行程里程之间的里程差值,确定为所述第一行程里程变化信息;
将所述第一行程里程变化信息和所述非拼单行程里程之间的里程比值,确定为所述第一行程绕路比信息。
9.根据权利要求7所述的方法,其特征在于,所述根据所述预测总行程、以及所述已有行程的已有行程起始位置和已有行程终止位置,确定所述第一行程时长变化信息,根据所述第一行程时长变化信息,确定所述第一行程延迟时长,包括:
根据所述已有行程起始位置和所述已有行程终止位置,获取所述已有行程的非拼单行程剩余时长;所述非拼单行程剩余时长,为所述已有行程与所述待拼行程不进行行程拼单时,所述已有行程的行程剩余时长;
根据所述预测总行程,获取所述已有行程的拼单行程剩余时长;所述拼单行程剩余时长,为所述已有行程与所述待拼行程进行行程拼单时,所述已有行程的行程剩余时长;
将所述非拼单行程剩余时长和所述拼单行程剩余时长之间的时长差值,确定为所述第一行程时长变化信息;
将所述第一行程时长变化信息,确定为所述第一行程延迟时长。
10.根据权利要求1所述的方法,其特征在于,若所述待拼行程与所述预测总行程之间的行程变化信息为第二行程时长变化信息,且所述已有行程与所述预测总行程之间的行程变化信息为第二行程里程变化信息,且所述行程拼单指标包括第二行程延迟时长和第二行程绕路比信息,则所述根据所述待拼行程和所述已有行程分别与所述预测总行程之间的行程变化信息,确定与所述已有行程和所述待拼行程相关联的行程拼单指标,包括:
根据所述预测总行程、以及所述待拼行程的所述待拼行程起始位置和待拼行程终止位置,确定所述第二行程时长变化信息,根据所述第二行程时长变化信息,确定所述第二行程延迟时长;根据所述预测总行程、以及所述已有行程的已有行程起始位置和已有行程终止位置,确定所述第二行程里程变化信息,根据所述第二行程里程变化信息,确定所述第二行程绕路比信息。
11.根据权利要求1所述的方法,其特征在于,所述行程拼单结果为行程可拼单结果或行程不可拼单结果;
所述方法还包括:
当所述行程拼单结果为所述行程可拼单结果时,将所述待拼行程发送至所述行驶对象所属的用户终端,以使所述用户终端对所述待拼行程进行行程接单;
当所述行程拼单结果为所述行程不可拼单结果时,获取与所述待拼行程起始位置之间的行驶里程最小的行程不可拼单对象,作为所述待拼行程的行程可接单对象。
12.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-11中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788947.9A CN111768018B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法、装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788947.9A CN111768018B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法、装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111768018A CN111768018A (zh) | 2020-10-13 |
CN111768018B true CN111768018B (zh) | 2022-06-14 |
Family
ID=72729473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010788947.9A Active CN111768018B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法、装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111768018B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248913B1 (en) * | 2016-01-13 | 2019-04-02 | Transit Labs Inc. | Systems, devices, and methods for searching and booking ride-shared trips |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768614B2 (en) * | 2011-12-19 | 2014-07-01 | Sap Ag | Increasing throughput for carpool assignment matching |
CN103531025B (zh) * | 2013-11-08 | 2015-11-18 | 宁波市康惠网络科技有限公司 | 一种利用线路分段方法来匹配信息的拼车方法 |
CN105957337A (zh) * | 2016-06-02 | 2016-09-21 | 深圳市永兴元科技有限公司 | 订单处理方法及装置 |
CN109583605A (zh) * | 2017-09-29 | 2019-04-05 | 北京嘀嘀无限科技发展有限公司 | 拼车方法及装置、计算机设备和可读存储介质 |
CN111353837A (zh) * | 2018-12-20 | 2020-06-30 | 北京嘀嘀无限科技发展有限公司 | 一种拼车方法、系统及计算机可读介质 |
CN110910191A (zh) * | 2019-09-05 | 2020-03-24 | 杭州飞步科技有限公司 | 拼车订单生成方法及设备 |
-
2020
- 2020-08-07 CN CN202010788947.9A patent/CN111768018B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248913B1 (en) * | 2016-01-13 | 2019-04-02 | Transit Labs Inc. | Systems, devices, and methods for searching and booking ride-shared trips |
Also Published As
Publication number | Publication date |
---|---|
CN111768018A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11062415B2 (en) | Systems and methods for allocating networked vehicle resources in priority environments | |
US11386359B2 (en) | Systems and methods for managing a vehicle sharing facility | |
CN110889601B (zh) | 一种信息确定方法、装置、服务器及存储介质 | |
US11132626B2 (en) | Systems and methods for vehicle resource management | |
US11392861B2 (en) | Systems and methods for managing a vehicle sharing facility | |
US10260896B2 (en) | Route planning device and associated method | |
CN109409982B (zh) | 共享车辆推荐方法及装置 | |
EP3262831B1 (en) | Telephone call placement | |
GB2529058A (en) | Vehicle parking management | |
JP2019168827A (ja) | 情報処理装置及びプログラム | |
US20180075566A1 (en) | System and method of calculating a price for a vehicle journey | |
CN110782052A (zh) | 车辆预约系统、车辆预约方法和存储程序的存储介质 | |
CN109102093B (zh) | 一种网约车下单热点区域的确定方法、装置及电子设备 | |
CN109840632A (zh) | 一种行车路线评估规划方法及装置 | |
CN112580945B (zh) | 基于多相关系数的派单方法及车辆调度优化系统 | |
EP3262596A1 (en) | Systems and methods for managing networked vehicle resources | |
CN110517524B (zh) | 合乘辅助系统、合乘辅助装置及合乘辅助方法 | |
CN112668919B (zh) | 一种数据处理方法、装置、计算机设备以及存储介质 | |
CN111768018B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN113449902B (zh) | 信息处理装置、信息处理方法以及信息处理系统 | |
CN113240897B (zh) | 车辆调度方法、系统和计算机可读存储介质 | |
JP7158118B2 (ja) | 車両検索システム | |
Lam et al. | Developing A Network Algorithm for Demand Responsive Transit Service in A Rural Area of Sweden | |
CN117236646B (zh) | 车辆调度方法、装置、电子设备和计算机可读介质 | |
KR102655088B1 (ko) | 캠퍼스 모빌리티 통합 관리 플랫폼 |
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: 40030157 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |