基于GIS技术的自动派车方法和装置与流程

文档序号:12126777阅读:395来源:国知局
基于GIS技术的自动派车方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于GIS技术的自动派车方法和装置。



背景技术:

在大家电配送中,需要提前将所属承运商的订单分配到该承运商不同的车辆中,然后进行仓库生产和配送。在这种场景中需要实现尽可能将同一时间、相邻位置的订单分配到同一辆车中,提高承运商配送的时效,降低承运商配送的成本。

现有的派车方法主要是依靠人工来完成:

1.人工查询出当天需要派车的订单;

2.人工根据四级地址选择相邻地址的订单;

3.将这些订单派到同一车上,并根据订单总体积判断是否可以装入同一辆车;

4.若没装满,重复步骤2,直到车辆装满为止。

在这种派车方法中,主要通过人工经验进行派车,系统只起到自动计算体积之和的作用。

现有派车技术中存在如下缺陷:首先,人工派车对派车人业务要求极高,且工作效率较低,导致派车成本较高;其次,凭人为经验派车,导致派车准确性较低;再次,由于派车人在派车时会出现派车不精准,那么在实际装车时,承运商会根据实际情况进行线下调整,导致车辆配送的订单与派车单中的订单不符,造成信息流和物流不统一。



技术实现要素:

有鉴于此,本发明提供一种基于GIS技术的自动派车方法和装置,能够根据承运商派车策略的不同实现多策略自动派车,降低派车成本,提高派车效率。

为实现上述目的,根据本发明的一个方面,提供了一种基于GIS技术的自动派车方法和装置。

本发明的基于GIS技术的自动派车方法包括:从数据库输入订单;按照预设规则将符合业务条件的订单加入待派车订单池;对所述待派车订单池中的订单进行派车;并且输出派车结果,

其中所述对所述待派车订单池中的订单进行派车还包括:当车辆存在未配送派车单时,利用GIS技术从所述待派车订单池中选择与所述未配送派车单的订单的区域相同和/或距离最接近的订单,依次加入所述车辆;当车辆不存在未配送派车单时,根据司机区域进行派车或采用带属性GIS聚合算法对订单进行聚合,并利用规避算法进行派车。

可选地,所述按照预设规则将符合条件的订单加入待派车订单池包括:将属于同一承运商且派车日期小于等于派车当日日期的订单加入所述待派车订单池。

可选地,所述采用带属性GIS聚合算法对订单进行聚合,并利用规避算法进行派车包括:将待派车订单的订单编号属性与订单地址相结合,随机抽取某个订单地址的坐标作为参照坐标,分别计算其余订单地址的坐标与所述参照坐标的距离,将距离小于等于预设阈值的订单聚合为一堆,直至比对完所有订单地址的坐标;若剩余未聚合的订单地址,则从剩余订单地址中再随机抽取一个订单地址的坐标作为参照坐标,重复前述聚合步骤;若剩余的某个订单地址与剩余的任何一个未聚合的订单地址之间的距离都大于预设阈值,则将所述剩余的某个订单地址单独聚合为一堆。

可选地,所述利用规避算法进行派车包括:将所有的堆划分到若干区域;选择订单数量最多的一个堆为X;若X的订单体积大于所述车辆容积,则将X中的订单依次加入所述车辆;若X的订单体积小于所述车辆容积,则将X中的订单全部加入所述车辆,并选择与X同处于一个区域中的最接近的堆为Y;判断Y的订单体积与车辆剩余容积,若Y的订单体积大于所述车辆剩余容积,则将Y中的订单依次加入所述车辆;若Y的订单体积小大于所述车辆剩余容积,则重复选择与X同处于一个区域中的另一个最接近的堆为新的Y,直至所述车辆的订单体积达到所述车辆的容积;若所述区域中无其它堆,则选择相邻区域中距离X最接近的堆为新的Y,并重复上述步骤,直至所述车辆的订单体积达到所述车辆的容积。

为实现上述目的,根据本发明的另一方面,提供一种基于GIS技术的自动派车装置。

本发明的基于GIS技术的自动派车装置,包括:输入模块,用于从数据库输入订单;订单模块,用于按照预设规则将符合业务条件的订单加入待派车订单池;派车模块,用于对所述待派车订单池中的订单进行派车;以及输出模块,用于输出派车结果,

其中所述派车模块还包括:有未配送派车单处理单元,用于当车辆存在未配送派车单时,利用GIS技术从所述待派车订单池中选择与所述未配送派车单的订单的区域相同和/或距离最接近的订单,依次加入所述车辆;无未配送派车单处理单元,用于当车辆不存在未配送派车单时,根据司机区域进行派车或采用带属性GIS聚合算法对订单进行聚合,并利用规避算法进行派车。

可选地,所述订单模块还用于:将属于同一承运商且派车日期小于等于派车当日日期的订单加入所述待派车订单池。

可选地,所述无未配送派车单处理单元还用于:将待派车订单的订单编号属性与订单地址相结合,随机抽取某个订单地址的坐标作为参照坐标,分别计算其余订单地址的坐标与所述参照坐标的距离,将距离小于等于预设阈值的订单聚合为一堆,直至比对完所有订单地址的坐标;若剩余未聚合的订单地址,则从剩余订单地址中再随机抽取一个订单地址的坐标作为参照坐标,重复前述聚合步骤;若剩余的某个订单地址与剩余的任何一个未聚合的订单地址之间的距离都大于预设阈值,则将所述剩余的某个订单地址单独聚合为一堆。

可选地,所述无未配送派车单处理单元还用于:将所有的堆划分到若干区域;选择订单数量最多的一个堆为X;若X的订单体积大于所述车辆容积,则将X中的订单依次加入所述车辆;若X的订单体积小于所述车辆容积,则将X中的订单全部加入所述车辆,并选择与X同处于一个区域中的最接近的堆为Y;判断Y的订单体积与车辆剩余容积,若Y的订单体积大于所述车辆剩余容积,则将Y中的订单依次加入所述车辆;若Y的订单体积小大于所述车辆剩余容积,则重复选择与X同处于一个区域中的另一个最接近的堆为新的Y,直至所述车辆的订单体积达到所述车辆的容积;若所述区域中无其它堆,则选择相邻区域中距离X最接近的堆为新的Y,并重复上述步骤,直至所述车辆的订单体积达到所述车辆的容积。

根据本发明的技术方案,通过将属于同一承运商、订单派车日期小于等于派车当日日期的订单选入待派车订单池,从而能够有助于派车效率的提高;通过根据多策略自动派车,能够针对派车工作中不同的实际情况进行针对性的派车,从而提高派车的准确度,并降低派车的成本;通过采用带属性GIS聚合算法,从而能将分散于不同坐标的不同订单按照距离的远近进行聚合;通过利用规避算法进行派车,从而能在将最近订单分派到同一辆车的同时,防止剩余订单分散在不同区域,对其它订单派车造成影响。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的基于GIS技术的自动派车方法的主要步骤示意图;

图2是本发明实施例的基于GIS技术的自动派车方法的主要流程的示意图;

图3是根据本发明实施例的基于GIS技术的自动派车方法的车辆有派车单时派车流程示意图;

图4是根据本发明实施例的基于GIS技术的自动派车方法的车辆无派车单时按司机区域派车流程示意图;

图5是根据本发明实施例的基于GIS技术的自动派车方法的车辆无派车单时利用带属性GIS聚合算法派车流程示意图;

图6是根据本发明实施例的基于GIS技术的自动派车装置的主要模块的示意图;

图7是本发明实施例的基于GIS技术的自动派车装置架构的示意框图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的基于GIS技术的自动派车方法的主要步骤示意图。

如图1所示,本发明实施例的基于GIS技术的自动派车方法的主要步骤包括:

步骤S11:从数据库输入订单。此步骤是为了获取所有的待派车 订单,获取到订单之后,从步骤S12进行订单筛选。

步骤S12:按照预设规则将符合业务条件的订单加入待派车订单池。

由于电子商务的兴起,物流派送订单日益繁多,在现有的派车系统中,存在诸多需要派车的订单,这些订单的派车日期可能会有不一样,并且配送的承运商也有可能不同,目前针对众多订单,主要靠人工的方式进行判断,将同一日期、同一承运商的订单手动派入到承运商的车辆中。在本发明的实施例中,为了提高自动派车的精确度,减少派车的成本,需要先对待派车订单进行过滤,将符合业务条件的订单加入待派车订单池。在本发明具体实施方式中,主要是过滤出属于同一承运商且订单派车日期小于等于派车当日日期的订单加入到待派车订单池进行派车。

在本步骤的过滤之后,待派车订单池中的订单为同一承运商、派车日期小于等于派车当日日期的订单,从步骤S 13开始进行派车处理。

步骤S13:对所述待派车订单池中的订单进行派车。经过上述步骤的过滤之后,对待派车订单池中的订单进行自动派车。在派车之前,首先需要先获取承运商车辆的已派车信息,即判断该车是否存在已派车未配送的派车单,根据有无派车单的不同而采用不同的自动派车算法。此外,还需获取各承运商的派车策略,包括承运商是否按司机区域派车、车辆的最大装载率、容积偏差等基本信息。获取车辆的基本信息,有助于自动派车过程中做出正确的判断。

在获取了车辆的已派车信息和承运商的基本信息之后,对待派车订单池中的订单进行多策略自动派车。

图2是本发明实施例的基于GIS技术的自动派车方法的主要流程 的示意图。

如图2所示,在按照预设规则将符合业务条件的订单加入待派车订单池后,对待派车订单根据车辆是否存在已派车未配送订单采取不同的派车算法进行派车:有派车单算法和无派车单算法。其中有派车单算法具体是指当车辆存在未配送派车单时,利用GIS技术从所述待派车订单池中选择与所述未配送派车单的订单的区域相同和/或距离最接近的订单,依次加入所述车辆;无派车单算法包括:当车辆不存在未配送派车单时,获取承运商的派车策略,若承运商派车策略中明确按照司机区域派车,则直接将属于司机区域内的订单派入车辆,若承运商派车策略不按司机区域派车,则采用带属性GIS聚合算法对订单进行聚合,并利用规避算法进行派车。

图3是根据本发明实施例的基于GIS技术的自动派车方法的车辆有派车单时派车流程示意图。

如图3所示,在本发明具体实施例中,车辆已存在未配送派车单时,首先应考虑车辆的剩余装载体积,即图示“剩余容积”,若车辆的剩余容积小于0,则判断待派车订单池中的订单总体积是否小于剩余容积和容积偏差之和,若大于,则订单加入车辆失败,若小于,则说明待派车订单池中的订单可以全部放入所述车辆,则将订单派入所述车辆,算法结束;

若车辆的剩余容积大于0,则通过GIS技术获取已派车订单的外围区域,判断属于该区域的待派车订单总体积,若大于剩余容积,则依次选择该区域内的订单加入所述车辆;若小于剩余容积,则选择该区域订单以及距离该区域最近的订单依次加入,即将该区域的订单全部派入所述车辆,并继续选择该区域以外的距离该区域最近的其它订单依次加入,直到所述车辆的剩余容积小于需要派车的某一订单,说明车辆装满,该算法结束。

当车辆不存在未配送派车单时,则采用无派车单算法。

图4是根据本发明实施例的基于GIS技术的自动派车方法的车辆无派车单时按司机区域派车流程示意图。

如图4所示,本发明实施例中基于GIS技术的自动派车方法的车辆无派车单时按司机区域派车具体流程如下:

首先根据待派车订单池的订单体积判断是否可以全部加入该车辆,若可以,全部加入,算法结束;若不可以,再根据承运商派车策略判断该承运商是否按照司机区域派车,若按照区域派车,则直接根据司机区域选择该区域订单以及距离该区域最近的订单依次加入,具体过程如前有派车订单算法中所述,此处不再赘述。

若不按照区域派车,则通过带属性聚合算法进行计算。

图5是根据本发明实施例的基于GIS技术的自动派车方法的车辆无派车单时利用带属性GIS聚合算法派车流程示意图。

如图5所示,本发明实施例中基于GIS技术的自动派车方法的车辆无派车单是利用带属性GIS聚合算法派车具体流程如下:

首先利用GIS聚合技术,将待派车订单池中的订单按照订单地址聚合成堆,并将订单属性加入到聚合算法中,再采用规避算法将相近订单派入到同一车辆。

订单的地址坐标是订单的一个属性,在系统中生成订单记录的时候,坐标这一属性便根据收货地址随之转化产生。聚合算法根据每条订单记录的地址坐标属性的聚合,聚合算法返回的结果中应当支持订单的多个属性。为达该目的,在本发明具体实施方式中,采用list存储对每个订单记录进行储存。在编程语言中List是标准类库中的一个类, 可以简单视之为双向链表,以线性列的方式管理物件集合。list的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list是类库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。list以模板方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料型态例如:它可以是一个放置整数(int)型态的list、也可以是放置字串(char或string)型态的list、或者放置使用者自定类别(user-defined class)的list。

在本发明的具体实施方式中,考虑到订单聚合的性能,只保存订单编号这一唯一值属性,这样,在保证每一堆数据中的每一条的唯一性的同时,也可以根据订单编号作为提取其它属性的唯一标识。因此,对于每一个订单,依照一个订单编号,以及对应的地址的经纬度坐标属性作为该订单属性数据进行一个list存储。一个list代表一个订单的信息。这样在订单依据地址的经纬度坐标进行聚合后还可以重新对应回原订单编号,也方便了根据订单编号去查询该订单的其它信息。

将订单编号与订单地址坐标进行对应存储后,将所有订单地址的坐标点聚合成堆,在本发明的实施例,采用GIS聚合技术进行聚合。GIS聚合是将空间数据集中的对象分成有相似对象组成的类。同类中的对象间具有较高的相似度,而不同类中的对象间差异较大。对于本发明而言,同类中的对象具有较高的相似度即指不同订单的地理位置的距离在一定阈值范围内的各订单数据。

在本发明具体实施例中,利用GIS聚合技术,将所有订单按照地理位置属性进行聚合,预先设定的阈值大小,根据地理位置距离远近的不同,将距离符合阈值范围的订单聚合为一堆,最终得到若干订单堆。

具体而言,利用GIS聚合技术将待派车订单进行GIS聚合的过程如下所述:将待派车订单的订单编号属性与订单地址利用list存储进行 结合后,随机抽取某个订单地址的坐标作为参照坐标,分别计算其余订单地址的坐标与所述参照坐标的距离,将距离小于等于预设阈值的订单聚合为一堆,直至比对完所有订单地址的坐标;若剩余未聚合的订单地址,则从剩余订单地址中再随机抽取一个订单地址的坐标作为参照坐标,重复前述聚合步骤;若剩余的某个订单地址与剩余的任何一个未聚合的订单地址之间的距离都大于预设阈值,则将所述剩余的某个订单地址单独聚合为一堆。

在将所有订单的按照订单地址坐标聚合成堆后,需要将距离最近的订单分配到同一辆车上,但是在将距离最近的订单分派到同一辆车上的同时还需要注意避免余下的订单过于分散影响后续派车的问题。

因此,在本发明的实施方式中,采用规避算法将聚合后形成的若干堆按照位置较近的原则将较近堆中的订单自动派到一个车上,并使剩余待派车订单位置相对集中的,避免剩余订单过于分散影响后续派车。

具体过程如下:将所有堆划分为若干个区域,在本发明实施例中,可以将先寻找所有堆的边界长方形,然后将所有堆划分为若干区域,本发明中为8个区域;选择订单数量最多的一个堆为X;若X的订单体积大于所述车辆容积,则将X中的订单依次加入所述车辆;若X的订单体积小于所述车辆容积,则将X中的订单全部加入所述车辆,并选择与X同处于一个区域中的最接近的堆为Y;判断Y的订单体积与车辆剩余容积,若Y的订单体积大于所述车辆剩余容积,则将Y中的订单依次加入所述车辆;若Y的订单体积小大于所述车辆剩余容积,则重复选择与X同处于一个区域中的另一个最接近的堆为新的Y,直至所述车辆的订单体积达到所述车辆的容积;若所述区域中无其它堆,则选择相邻区域中距离X最接近的堆为新的Y,并重复上述步骤,直至所述车辆的订单体积达到所述车辆的容积。

利用规避算法将聚合后的订单进行派车,能在将最近订单分派到同一辆车的同时,防止剩余订单分散在不同区域,对其它订单派车造成影响。

步骤S14:输出派车结果。

根据上述基于GIS技术的自动派车方法可以看出,通过将属于同一承运商、订单派车日期小于等于派车当日日期的订单选入待派车订单池,从而能够有助于派车效率的提高;通过根据多策略自动派车,能够针对派车工作中不同的实际情况选择针对性的派车策略,从而提高派车的准确度,并降低派车的成本;通过采用带属性GIS聚合算法,从而能将分散于不同坐标的不同订单按照距离的远近进行聚合;通过利用规避算法进行派车,从而能在将最近订单分派到同一辆车的同时,防止剩余订单分散在不同区域,对其它订单派车造成影响。

图6是根据本发明实施例的基于GIS技术的自动派车装置的主要模块的示意图。

如图6所示,本发明实施例的基于GIS技术的自动派车装置60主要包括如下模块:输入模块601、订单模块602、派车模块603、输出模块604。

输入模块601用于从数据库输入订单;订单模块602用于按照预设规则将符合业务条件的订单加入待派车订单池;派车模块603用于对所述待派车订单池中的订单进行派车;输出模块604用于输出派车结果,

其中派车模块603还包括:有未配送派车单处理单元,用于当车辆存在未配送派车单时,利用GIS技术从所述待派车订单池中选择与所述未配送派车单的订单的区域相同和/或距离最接近的订单,依次加入所述车辆;无未配送派车单处理单元,用于当车辆不存在未配送派 车单时,根据司机区域进行派车或采用带属性GIS聚合算法对订单进行聚合,并利用规避算法进行派车。

订单模块602还用于:将属于同一承运商且派车日期小于等于派车当日日期的订单加入所述待派车订单池。

无未配送派车单处理单元还用于:

将待派车订单的订单编号属性与订单地址相结合,随机抽取某个订单地址的坐标作为参照坐标,分别计算其余订单地址的坐标与所述参照坐标的距离,将距离小于等于预设阈值的订单聚合为一堆,直至比对完所有订单地址的坐标;

若剩余未聚合的订单地址,则从剩余订单地址中再随机抽取一个订单地址的坐标作为参照坐标,重复前述聚合步骤;

若剩余的某个订单地址与剩余的任何一个未聚合的订单地址之间的距离都大于预设阈值,则将所述剩余的某个订单地址单独聚合为一堆。

无未配送派车单处理单元还用于:将所有的堆划分到若干区域;选择订单数量最多的一个堆为X;若X的订单体积大于所述车辆容积,则将X中的订单依次加入所述车辆;若X的订单体积小于所述车辆容积,则将X中的订单全部加入所述车辆,并选择与X同处于一个区域中的最接近的堆为Y;判断Y的订单体积与车辆剩余容积,若Y的订单体积大于所述车辆剩余容积,则将Y中的订单依次加入所述车辆;若Y的订单体积小大于所述车辆剩余容积,则重复选择与X同处于一个区域中的另一个最接近的堆为新的Y,直至所述车辆的订单体积达到所述车辆的容积;若所述区域中无其它堆,则选择相邻区域中距离X最接近的堆为新的Y,并重复上述步骤,直至所述车辆的订单体积达到所述车辆的容积。

图7是本发明实施例的基于GIS技术的自动派车装置架构的示意 框图。

如图7所示,待派车订单池是对所有输入待派车订单进行业务条件过滤后形成需处理的待派车订单池;

数据获取单元:获取车辆的已派车信息,判断该车辆是否存在已派车未配送的派车单,并根据结果使用不同的算法流程;获取各承运商的派车策略,包括是否按司机区域派车、车辆最大装载率、容积偏差等,供算法中使用;

GIS计算单元:首先根据数据获取单元中的已派车数据,若车辆不存在未配送派车单,再根据策略中是否按照司机区域派车,若否,则利用带属性GIS聚合算法先对订单进行聚合,然后再通过规避算法寻找派车方案的最优解;若是;则直接获取司机区域内的订单加入;若车辆存在未配送派车单,则获取该派车单的区域,将该区域内及距离该区域最近的订单加入车辆;

派车结果集:将计算出来的订单加入车辆,形成派车结果集。

从以上描述可以看出,在本发明实施例中,通过将属于同一承运商、订单派车日期小于等于派车当日日期的订单选入待派车订单池,从而能够有助于派车效率的提高;通过根据多策略自动派车,能够针对派车工作中不同的实际情况选择针对性的派车策略,从而提高派车的准确度,并降低派车的成本;通过采用带属性GIS聚合算法,从而能将分散于不同坐标的不同订单按照距离的远近进行聚合;通过利用规避算法进行派车,从而能在将最近订单分派到同一辆车的同时,防止剩余订单分散在不同区域,对其它订单派车造成影响。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1