路径规划方法和系统
分案说明
1.本技术是2017年6月13日提交的、题为“路径规划方法和系统”的中国申请201780035236.0的分案。
技术领域
2.本技术总体上涉及路径规划方法和系统,具体涉及基于预先计算的路径表的路径规划方法和系统。
背景技术:3.数字导航已变得越来越流行。当前的导航应用程序通常推荐用户从他或她的起始位置到目的地的路径。当前的方法可以包括计算起始位置和目的地之间的一些可能的路径。然后,从可能的路径中选择一个或以上路径。但是,当同时计算大量路径时,路径规划可能会变慢。
技术实现要素:4.本说明书一个或多个实施例提供一种用于路径规划的系统,包括:存储一组指令的存储设备;以及至少一个处理器,被配置为与存储设备通信,当执行一组指令时,至少一个处理器被配置为使系统:获取包括起始位置和目的地的信息;以及根据特征信息或实时情况,基于两个或以上路径生成从所述起始位置到所述目的地的目标路径;其中,所述两个或以上路径基于区域中两个或以上位置生成,所述起始位置和所述目的地与所述区域中所述两个或以上位置相关。
5.本说明书一个或多个实施例提供一种用于路径规划的方法,包括:获取包括起始位置和目的地的信息;以及根据特征信息或实时情况,基于两个或以上路径生成从所述起始位置到所述目的地的目标路径;其中,所述两个或以上路径基于区域中两个或以上位置生成,所述起始位置和所述目的地与所述区域中所述两个或以上位置相关。
6.本说明书一个或多个实施例提供一种非暂时性计算机可读介质,包括可执行指令,可执行指令在由电子设备的至少一个处理器执行时致使至少一个处理器执行以下动作:获取包括起始位置和目的地的信息;以及根据特征信息或实时情况,基于两个或以上路径生成从所述起始位置到所述目的地的目标路径;其中,所述两个或以上路径基于区域中两个或以上位置生成,所述起始位置和所述目的地与所述区域中所述两个或以上位置相关。
附图说明
7.本技术将结合示例性实施例进一步进行描述。参考附图可以详细描述所述示例性实施例。这些实施例并非限制性的,在这些实施例中,相同的组件符号表示相同的结构,其中:
8.图1是根据本技术的一些实施例所示的示例性路径规划系统的框图;
9.图2是实现本技术中公开的特定系统的示例性计算设备的框图;
10.图3是实现本技术中公开的特定系统的示例性移动设备的框图;
11.图4是根据本技术的一些实施例所示的路径规划过程的示例性流程图;
12.图5是根据本技术的一些实施例所示的生成路径表过程的示例性流程图;
13.图6是根据本技术的一些实施例所示的基于两个或以上组路径生成一个路径过程的示例性流程图;
14.图7是根据本技术的一些实施例所示的路径规划过程的示例性流程图;
15.图8是根据本技术的一些实施例所示的示例性路径表的结构示意图;
16.图9a和图9b是根据本技术的一些实施例所示的路径规划示意图;以及
17.图10是根据本技术的一些实施例所示的示例性路径规划的示意图。
具体实施方式
18.以下描述是为了使本领域的普通技术人员能够实施和利用本发明,并在特定应用及其要求的上下文中提供。对于本领域的普通技术人员来讲,对本技术披露的实施例进行的各种修改是显而易见的,并且本技术定义的通则可以适用于其他实施例和应用,而不背离本技术的精神和范围。因此,本技术不限于所示的实施例,而是符合与权利要求一致的最宽范围。
19.应该理解,这里使用的术语“系统”,“引擎”,“单元”,“模块”和/或“块”是区分不同级别的不同部件、元件、零件、部分或组件的一种方法升序。但是,如果他们达到相同的目的,这些术语可能会被另一个表达式所取代。
20.本技术所使用的术语仅为了描述特定实施例,并不限制本技术的范围。如本文所使用的,除非上下文另外清楚地指出,否则单数形式“一”,“一个”和“该”也可以旨在包括复数形式。还应当理解,如在本说明书中所示,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、元件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、元件、部件和/或其组合的情况。
21.本技术所述的特征和其他的特征、操作方法、相关组件的功能和经济的结构更加显而易见,这些都构成说明书的一部分。然而,要明确理解的是,附图仅用于说明和描述的目的,并不意图限制本技术的范围。应当理解的是,附图并不是按比例绘制的。
22.本技术中使用的流程图示出根据本技术中的一些实施例的系统实施的操作。应当理解的是,流程图的操作不一定按照顺序来精确地执行。相反,这些操作可以以相反的顺序或同时执行。而且,可以将一个或以上其他操作添加到流程图。一个或以上操作也可能会从流程图中删除。
23.本技术的系统或方法可以应用于不同环境的路径规划系统,包括陆地、海洋、航空航天等或其任何组合。运输系统的车辆可以包括出租车、私家车、挂车、公共汽车、火车、子弹头列车、高速铁路、地铁、船舶、飞机、宇宙飞船、热气球、无人驾驶车辆等或其任意组合。
24.本技术中的术语“乘客”、“请求者”、“服务请求者”和“客户”可互换地用于指代可以请求或订购服务的个体、实体或工具。另外,本技术中的术语“司机”、“提供者”、“服务提供者”和“供应者”可互换地用于指代可提供服务或促进提供服务的个人、实体或工具。本申
请中的术语“用户”可以指个人、可以请求服务、订购服务、提供服务或促进提供服务的实体或工具。例如,用户可以是乘客、司机、操作员等或其任意组合。在本技术中,“乘客”、“用户设备”、“用户终端”和“乘客终端”可以互换使用,并且“司机”和“司机终端”可以互换使用。
25.本技术中的术语“服务请求”和“订单”可互换使用,指的是可由乘客、请求者、服务请求者、客户、司机、提供者、服务提供者、供应商等或其任意组合发起的请求。该服务请求可以由乘客、请求者、服务请求者、客户、司机、提供者、服务提供者或供应商中的任何一个接受。服务请求可能是收费的或免费的。
26.本技术的一个方面涉及路径规划方法。该方法可以由路径规划系统(例如,服务器、用户设备和司机终端)中的一个或以上一个或以上部件来实现。该方法包括基于包括两个或以上位置和两个或以上路径的路径表生成从起始位置到目的地的目标路径。在一些实施例中,所述路径表还可以包括安全信息、价格信息、道路信息等。服务器可以从用户设备和/或司机终端接收包括所述起始位置和所述目的地的信息。所述起始位置可以是服务提供者(例如,司机、送货员)的当前位置,并且所述目的地可以是订单或服务请求者(例如,乘客、顾客)的当前位置。然后,服务器访问数据库以获取路径表。服务器可以基于历史数据、路径规划算法和/或实时情况获取路径表中的所述两个或以上位置和所述两个或以上路径。所述实时情况可以包括在发出服务请求时的天气情况、交通情况和事件情况。为了减少计算负载,服务器可以仅生成在距离阈值内的路径并将它们存储在路径表中。所述距离阈值可以与路径表中位置的数量、根据历史数据确定或估计的用户(例如,司机、乘客)的数量、基于实时情况确定或估计的用户(例如,司机、乘客)的数量、当前订单或历史订单的数量等相关。服务器可以基于所述两个或以上路径生成从所述起始位置到所述目的地的目标路径。在一些实施例中,服务器可以首先基于所述实时情况从所述两个或以上路径中获取一个或以上路径。然后,服务器可以基于特征信息获取目标路径。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
27.图1是根据本技术的一些实施例所示的示例性路径规划系统100的框图。如图1所示,路径规划系统100可以包括服务器110、网络120、用户设备130、司机终端140和存储器150。例如,路径规划系统100可以用于诸如打车、专车服务、快车、拼车、公共汽车服务、代驾、班车服务、送货服务等的运输服务。
28.在一些实施例中,服务器110可以是单个服务器或服务器组。服务器组可以是集中的或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以通过网络120访问存储在用户设备130、司机终端140和/或存储器150中的信息和/或数据。又例如,服务器110可以直接连接到用户设备130、司机终端140和/或存储器150以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实现。云平台可以包括私有云、公共云、混合云、社区云、分布式云、内部云、多重云等或其任意组合。在一些实施例中,服务器110可以在图2中示出的计算设备200上实现。
29.在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与服务请求有关的信息和/或数据以执行本技术中描述的一个或以上功能。例如,处理引擎112可以基于历史数据和/或路径规划算法生成与两个或以上位置相关的两个或以上路径。又例
如,处理引擎112可以通过受欢迎程度(例如,对特定位置的访问次数、与特定位置相关的历史订单的数量、在特定位置处停留的时间长度)对历史订单的两个或以上位置进行排序,并基于排序结果获取所述两个或以上位置。在一些实施例中,处理引擎112可以包括一个或以上处理引擎(例如,单核处理引擎或多核处理器)。处理引擎112可以包括中央处理单元(cpu),专用集成电路(asic)、专用指令集处理器(asip)、图形处理单元(gpu)、物理处理单元(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或其任意组合。
30.网络120可以促进信息和/或数据的交换。在一些实施例中,路径规划系统100中的一个或以上一个或以上部件(例如,服务器110、用户设备130、司机终端140和存储器150)可以通过网络120将信息和/或数据发送到路径规划系统100中的其它组件。例如,服务器110可以通过网络120从用户设备130获得/获取服务请求。在一些实施例中,网络120可以是任何类型的有线或无线网络或其任意组合。网络120可以包括有线网络、无线网络、光纤网络、电信网络、内联网、因特网、局域网(lan)、广域网(wan)、无线局域网(wlan)、城域网(man)、广域网(wan)、公共电话交换网络(ptsn)、蓝牙网络、紫蜂(zigbee)网络、近场通信(nfc)网络等中或其任意组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,例如,基站和/或互联网交换点120-1、120-2、...,路径规划系统100中的一个或以上一个或以上部件可以通过所述接入点连接到网络120以交换数据和/或信息。
31.在一些实施例中,服务请求者可以是用户设备130的用户。在一些实施例中,用户设备130的用户可以是不同于服务请求者的人。例如,用户设备130的用户a可以使用用户设备130向用户b发送服务请求,或者从服务器110接收服务和/或信息或指令。在一些实施例中,服务提供者可以是司机终端140的用户。在一些实施例中,司机终端140的用户可以是除服务提供者之外的其他人。例如,司机终端140的用户c可以使用司机终端140接收用户d的服务请求,和/或来自服务器110的信息或指令。
32.用户设备130可以被配置为从用户接收包括起始位置和/或目的地的信息的输入。可选地或附加地,用户设备130可以从服务器110接收指令以获取包括开始位置和/或目的地的信息。在一些实施例中,用户设备130可以基于特性信息从路径表中的所述起始位置和所述目的地之间的两个或以上路径中选择目标路径。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在的区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
33.在一些实施例中,用户设备130可以包括移动设备130-1、平板电脑130-2、膝上型计算机130-3、机动车辆130-4的内置设备等或其任意组合。在一些实施例中,移动设备130-1可以包括智能家居设备、可穿戴设备、智能移动装置、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电气设备的控制设备、智能监控设备、智能电视、智能摄像机、对讲机等或其任意组合。在一些实施例中,可穿戴设备可以包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能服装、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字助理(pda)、游戏设备、导航设备、销售点(pos)设备等或其任意组合。在一些实施例中,虚拟现
实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括google glass、oculus rift、hololens、gear vr等。在一些实施例中,机动车辆130-4中的内置设备可以包括车载计算机、车载电视等。在一些实施例中,用户设备130可以是具有用于定位服务请求者和/或用户设备130的位置的定位技术的设备。
34.在一些实施例中,司机终端140可以是具有用于定位司机和/或司机终端140的位置的定位技术的设备。在一些实施例中,用户设备130和/或司机终端140可以与其他定位设备通信以确定服务请求者、用户设备130、司机和/或司机终端140的位置。在一些实施例中,用户设备130和/或司机终端140可以将定位信息发送到服务器110。
35.司机终端140可以被配置为从用户接收包括起始位置(例如,司机的当前位置)信息的输入。可选地或附加地,司机终端140可以从服务器110接收指令以获取包括所述起始位置的信息。在一些实施例中,司机终端140可以基于特性信息从路径表中的所述起始位置和所述目的地之间的两个或以上路径中选择目标路径。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
36.存储器150可以存储数据和/或指令。在一些实施例中,存储器150可以存储从用户设备130和/或司机终端140获取的数据。在一些实施例中,存储器150可以存储服务器110可以执行或用于执行本技术中描述的示例性方法的数据和/或指令。例如,存储器150可以被配置为存储历史数据。所述历史数据可以包括历史订单中包括的起始位置和目的地、司机或乘客的历史位置、乘客或司机停留的历史位置等。又例如,存储设备150可以被配置为存储用于路径规划的路径表。所述路径表可以包括位置、路径、路径距离和序列信息。在一些实施例中,所述路径表还可以包括安全信息(例如,道路宽度、交通灯、速度)、价格信息(例如,收费站、燃料消耗)、道路信息(道路类型、道路宽度、交通灯、交通控制、道路拥堵)等或其任意组合。
37.在一些实施例中,存储器150可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。示例性大容量存储器可以包括磁盘、光盘、固态驱动器等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性的易失性读写存储器可以包括随机存取存储器(ram)。示例性的ram可以包括动态ram(dram)、双倍数据速率同步动态ram(ddr sdram)、静态ram(sram)、晶闸管ram(t-ram)和零电容器ram(z-ram)等。示例性rom可以包括掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、光盘rom(cd-rom)和数字多功能磁盘rom等。在一些实施例中,存储器150可以在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布式云、内部云、多重云等中的一种或多种组合。
38.在一些实施例中,存储器150可以与网络120连接并与路径规划系统100中的一个或以上一个或以上部件(例如,服务器110、用户设备130、司机终端140)通信。路径规划系统100中的一个或以上一个或以上部件可以通过网络120访问存储在存储器150中的数据和/或指令。在一些实施例中,存储装置150可以直接与路径规划系统100中的一个或以上一个或以上部件(例如,服务器110、用户设备130、司机终端140)连接到或通信。在一些实施例
中,存储器150可以是服务器110的一部分。
39.在一些实施例中,路径规划系统100中的一个或以上一个或以上部件(例如,服务器110、用户设备130、司机终端140)可以访问存储器150。在一些实施例中,路径规划系统100中的一个或以上一个或以上部件可以在满足一个或以上条件时读取和/或修改与服务请求者、司机和/或公众有关的信息。例如,服务器110可以在服务之后读取和/或修改一个或以上用户的信息。又例如,当从用户设备130接收到服务请求时,司机终端140可以访问与服务请求者相关的信息,但司机终端140不能修改所述服务请求者的相关信息。
40.在一些实施例中,路径规划系统100的一个或以上部件的信息交换可以通过请求服务来实现。服务请求的对象可以是任何产品。在一些实施例中,所述产品可以是有形产品或无形产品。有形产品可以包括食品、医药、商品、化学产品、电器、衣服、汽车、房屋、奢侈品等或其任意组合。无形产品可以包括服务产品、金融产品、知识产品、互联网产品等或其任意组合。互联网产品可以包括个人主机产品、网络产品、移动互联网产品、商业主机产品、嵌入式产品等或其任何组合。移动互联网产品可以用于移动终端、程序、系统等的软件或其任意组合中。移动终端可以包括平板电脑、手提电脑、移动电话、个人数字助理(pda)、智能手表、销售点(pos)设备、车载计算机、车载电视、可穿戴设备等或其任意组合。例如,该产品可以是在计算机或移动电话上使用的任何软件和/或应用程序。该软件和/或应用程序可涉及社交、购物、运输、娱乐、学习、投资等或其任意组合。在一些实施例中,与运输有关的软件和/或应用可以包括旅行软件和/或应用、车辆调度软件和/或应用、地图绘制软件和/或应用等。在车辆调度软件和/或应用中,车辆可以包括马、马车、人力车(例如,独轮车、自行车、三轮车等)、汽车(例如,出租车、公共汽车、私家车等)、火车、地铁、船舶、飞机(例如,飞机、直升机、航天飞机、火箭、热气球等)等或其任意组合。
41.图2是实现本技术中公开的特定系统的示例性计算设备(例如,服务器110)的框图。所述特定系统可以使用功能性框图来解释包含一个或以上用户界面的硬件平台。该计算机可能是具有一般或特定功能的计算机。两种类型的计算机可以被配置为根据本技术的一些实施例实施任何特定系统。计算设备200可以被配置为实施提供本说明书中公开的路径规划所需信息的任何部件。例如,服务器110可以通过计算设备200等计算机的硬件设备、软件程序、固件或其任意组合来实现。仅仅作为示例,用于实现服务器110的计算设备200可以基于历史订单和/或路径规划算法生成与所述两个或以上位置相关的两个或以上路径。又例如,计算设备200可以通过受欢迎程度(例如,对特定位置的访问次数、与特定位置相关的历史订单的数量、在特定位置处停留的时间长度)对历史订单的两个或以上位置进行排序,并基于排序结果获取所述两个或以上位置。为了简便起见,图2只描绘了一台计算机。在一些实施例中,提供路径规划所需信息的计算机功能可以由分布式模式的一组类似平台来实现,以分散系统的处理负载。
42.计算设备200可以包括与可以实现数据通信的网络连接的通信终端250。计算设备200还可以包括被配置为执行指令并且包括一个或以上处理器的cpu。示例性计算机平台可以包括内部通信总线210、不同类型的程序存储单元和数据存储单元(例如,硬盘270、rom 230、ram 240)、适用于计算机处理和/或通信的各种数据文件以及可能由cpu执行的一些程序指令。计算设备200还可以包括i/o设备260,其可以支持计算机和其他部件(例如用户界面280)之间的数据流的输入和输出。另外,计算设备200可以通过通信网络接收程序和数
据。
43.图3是实现本技术中公开的特定系统的示例性移动设备(例如,用户设备130和/或司机终端140)的框图。在一些实施例中,用于显示和传送与位置相关的信息的用户设备130和/或司机终端140可以是移动设备300。移动设备300可以包括但不限于智能手机、平板电脑、音乐播放器、便携式游戏机、gps接收器、可穿戴计算设备(例如眼镜、手表)等。移动设备300可以包括一个或以上cpu 340、一个或以上gpu 330、显示器320、内存360、天线310(例如,无线通信单元)、内存390以及一个或以上输入/输出(i/o)设备350。此外,移动设备300也可以是包括但不限于系统总线或控制器(图3中未示出)的任何其他合适的部件。如图3所示,移动操作系统370(例如ios、android、windows phone)和一个或以上应用程序380可以从内存390加载到内存360并由cpu 340实现。应用程序380可以包括用于接收和处理与移动设备300中的位置有关的信息的浏览器或其他移动应用程序。
44.为了实现上述各种模块、单元及其功能,计算机硬件平台可以用作一个或以上元件的硬件平台(例如,图1中描述的系统100的服务器110和/或其他部分)。由于这些硬件元件、操作系统和程序语言是共同的,因此可以认为,本领域技术人员可以熟悉这些技术,并且他们能够根据本发明描述的技术来提供按需服务中所需的信息。带有用户界面的计算机可以用作个人计算机(pc)或其他类型的工作站或终端设备。经过正确编程后,具有用户界面的计算机可以用作服务器。可以认为,本领域技术人员也可以熟悉这种类型的计算机设备的结构、程序或一般操作。因此,附图中没有描述额外的解释。
45.图4是根据本技术的一些实施例所示的路径规划过程400的示例性流程图。过程400可以由路径规划系统100中的设备(例如,服务器110、用户设备130和司机终端140)执行。例如,过程400可以通过存储在存储介质中的一组指令(例如,应用程序)来实现。
46.在410中,服务器110可以获取区域中的两个或以上位置。所述两个或以上位置可以分别对应于一个或以上对象,包括建筑物、河流、桥梁、道路、人物、风景、地标等或其任意组合。仅作为示例,位置可以对应所述一个或以上对象的入口、出口、中心点。例如,住宅区的位置可以是其入口或出口。又例如,一条道路的位置可能是它的起点、终点、中心点或交点。在一些实施例中对于一个对象,在410中仅获取预设数量(例如,一个、两个、三个)的位置。例如,在410中,可以只获取动物园的两个位置(例如前门和后门)。在一些实施例中,所述两个或以上位置可以各自包括物理地址,并且该物理地址可以包括纬度和经度或与参考位置相对应的相对位置。可选地或附加地,该位置可以包括与地图中的地址或点相关的一个或以上兴趣点(poi)。该区域可以是街区、道路、地区、城镇、城市、省等。可以基于历史数据获取所述两个或以上位置。例如,服务器110可以获取一个或以上历史订单并且从接收到的历史订单中获取两个或以上位置,包括例如包括在历史订单中的所述起始位置和目的地、用户搜索或输入的历史位置、司机或乘客的历史位置、乘客或司机停留的历史位置等。该历史数据可从存储器150获取。在一些实施例中,可以在410中获取该区域中的对象及其对应的位置。可选地或附加地,该区域的位置可以首先根据其受欢迎程度(例如,对特定位置的访问次数、与特定位置相关的历史订单的数量、在特定位置处停留的时间长度)进行排名。然后,可以根据排名结果在410中获取部分所述位置。在一些实施例中,所述两个或以上位置可以由用户通过用户设备130输入或者从存储器150获取。
47.在420中,服务器110可以生成与所述两个或以上位置相关的两个或以上路径。在
一些实施例中,可以根据历史数据生成两个或以上路径。例如,服务器110可以从存储器150获取包括部分或全部所述两个或以上位置的历史订单以及与该历史订单相对应的路径。在一些实施例中,可以获取这些历史订单的全部路径。可选地或附加地,可以仅获取所述两个或以上位置中的部分或全部位置之间的路径(或路径段)。
48.在一些实施例中,可以通过一个或以上路径规划算法基于所述两个或以上位置生成所述两个或以上路径。所述路径规划算法可以包括但不限于dijkstra算法、floyd-warshall算法或bellman-ford算法。例如,对于(两个或以上位置中的)两个位置,可以首先生成所述两个位置之间的两个或以上可能路径。然后,可以基于路径情况选择所述两个或以上路径中的一个或以上。路径情况可以包括最安全路径、最短路径、风景最多路径、交通量较少路径。例如,该最短路径可以基于所述起始位置和所述目的地之间的路径的距离来确定。在一些实施例中,服务器110可以获取路径情况相对应的额外参数。例如,最安全路径可以基于诸如道路类型、道路宽度、交通状况、速度限制、曲线半径、交叉路口数量等的额外参数来确定。仅作为示例,该最安全路径可以是具有很少交叉口和交通量的高速公路。
49.在一些实施例中,所述两个或以上路径可以被存储在表、列表、数据库、图表、动画、插件等中。在一些实施例中,可以存储所有420中生成的两个或以上路径。可选地或附加地,对于每两个所述位置,可以存储它们之间的最短路径(和/或最安全路径、风景最多路径或交通量最少路径)在一些实施例中,所述路径表可以以无损压缩的格式存储。
50.在一些实施例中,还可以生成与所述两个或以上路径相关的更多信息。例如,所述两个或以上路径可以以图形或动画的格式存储,所述路径可以以图形信息而存储(和显示)。例如,所述图形信息可以包括连接数字地图中所示的所述起始位置和目的地的二维或三维曲线或形状。又例如,所述两个或以上路径可以存储在表、列表或数据库中,可以生成和存储路径中的位置或地点以及位置或地点的相应序列。例如,表可以包括所述多条路径中的每条路径的起始位置和目的地。该表也可以包括两个或以上所述多条路径中的每条路径经过的一个或以上位置以及所述一个或以上位置的序列。另外,该表可以包括所述多条路径中的每条路径的距离。所述距离可以包括直线距离、实际距离、道路距离等。可选地或附加地,所述表可以进一步包括从一个位置到另一个位置的预计到达时间(eta)。可以在本技术的其他地方找到所述表的生成的详细描述(例如,图5)。
51.在一些实施例中,可基于不同的实时情况生成两个或以上路径组。所述实时情况可以与接收所述起始位置和目的地的时间相关。在一些实施例中,所述实时情况可以包括在做出服务请求(历史或当前服务请求或订单)时的天气情况、交通情况和事件情况。不同组的路径可能有相同或不同的起始位置或目的地。例如,可以基于历史数据(例如,历史订单)生成(或确定)所述两个或以上路径,以及服务器110可以首先确定历史订单当时的实时情况。具有相同或相似实时情况的历史订单可以划为相同的组。该两个或以上路径组可以基于一组历史订单生成。例如,所述两个或以上路径由路径规划算法生成,服务器110可以首先获取该位置周围的道路参数。所述参数可以包括道路长度、道路宽度、道路类型、限速、交通状况、交叉路口的数量和位置等。服务器110还可以获取、计算或预估不同实时情况对应的参数变化。例如,服务器110可以预估在高峰时段的汽车数量增加量,这种增加量可能导致狭窄并交通繁忙的道路发生交通堵塞。然后,服务器110可以决定在生成与该高峰时段相对应的所述路径组时不包括这些类型的道路。服务器110可以对不同的实时情况重复执
行上述方法,以生成对应于不同实时情况的两个或以上组路径。所述不同路径组可以存储在相同或不同的表中。例如,对应于雨天的第一组路径可以存储在第一表中,以及对应于晴天的第二组路径可以存储在第二表中。又例如,对应于高峰时段的第三组路径可以存储在第三表中,以及与正常时段对应的第四组路径可以存储在第四表中。在一些实施例中,不同路径组可以存储在同一个表中,但是存储在不同的列或行中。
52.在430中,服务器110可以获取包括起始位置和目的地的信息。在一些实施例中,所述包括起始位置和目的地的信息可以由用户通过用户设备130或司机终端140输入并可以通过网络120发送到服务器110。可选地或附加地,服务器110可以向用户设备130和/或司机终端140发送指令以获取包括所述起始位置和目的地的信息。
53.在一些实施例中,所述起始位置可以是服务提供者(例如,司机、送货员)的当前位置,所述目的地可以是订单或服务请求者(例如,乘客、顾客)的当前位置。在一些实施例中,所述起始位置可以是司机接载乘客的位置,所述目的地可以是乘客想要去的位置。在一些实施例中,所述起始位置和目的地可以在420中生成的表中找到(即,与该表中的一些位置相同)。在该表中找不到所述起始位置和/或目的地的情况下,可以获取该表中靠近所述起始位置和/或目的地的一个或以上位置作为起始位置和/或目的地。
54.在440中,服务器110可以生成从所述起始位置到目的地的路径。在一些实施例中,在430中获取的所述起始位置和目的地可以与表中所述两个或以上路径中的一个或以上路径的起始位置和目的地相同或相似。在这种情况下,可以生成类似于一个或以上的所述两个或以上路径中的路径。另外,可以基于特征信息从所述一个或以上路径中选择目标路径。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
55.在一些实施例中,在430中获取的所述起始位置和目的地可以在表中找到,但是位于不同路径中。换句话说,该表可能不包含直接从所述起始位置到目的地的任何路径。在这种情况下,可以通过组合该表中的两个或以上路径来生成从所述起始位置到目的地的路径。例如,a和b可能分别是服务订单的起始位置和目的地。在表中没有找到直接从a到b的路径。从a到c的路径和从c到b的路径位于该表中。然后,服务器110可以组合或连接从a到c的路径和从c到b的路径以生成从a到c的路径。关于组合所述两个或以上路径的方法的详细描述可以在本技术的其他地方找到(例如,图7及其描述)。
56.应该注意的是,以上关于过程400的描述是为了说明的目的而提供的,并不旨在限制本技术的范围。对于本领域普通技术人员来说,在不脱离本技术的原理的情况下,可以对上述方法和系统的应用的形式和细节进行各种修改和变化。在一些实施例中,过程400中的操作的顺序可以改变。例如,可以基于420中的历史数据首先获取两个或以上路径。然后,可以基于所述两个或以上路径在410中获取两个或以上位置。所述两个或以上位置可以包括所述两个或以上路径中的起始位置、目的地、交叉点或其他位置。又例如,410和420可以同时执行,例如,可以基于历史订单同时获取两个或以上路径和两个或以上位置。然而,这些变化和修改也落入本技术的范围内。
57.图5是根据本技术的一些实施例所示的生成路径表过程的示例性流程图。过程500可以由路径规划系统100中的设备(例如,服务器110、用户设备130和司机终端140)执行。例
如,过程500可以通过存储在存储介质中的一组指令(例如,应用程序)来实现。
58.在510中,服务器110可以获取区域中的两个或以上位置。所述两个或以上位置可以分别对应于一个或以上对象,包括建筑物、河流、桥梁、道路、人物、风景、地标等或其任意组合。在一些实施例中,所述两个或以上位置可以各自包括物理地址,并且该物理地址可以包括纬度和经度或与参考位置相对应的或相对位置。可选地或附加地,该位置可以包括与地图中的地址或地点相关的一个或以上兴趣点(poi)。在一些实施例中,该区域可以是街区、道路、地区、城镇、城市、省等。可以基于历史数据获取所述两个或以上位置。在一些实施例中,所述两个或以上位置可以由用户通过用户设备130输入或者从存储器150获取。可以在本技术内容的其他地方(例如,操作410)找到获取服务器110在一个区域中的两个或以上位置的详细描述。
59.在520中,服务器110可以获取距离阈值。对于所述两个或以上位置中的任何两个位置,服务器110可以生成连接这两个位置的路径且该路径比距离阈值短。在一些实施例中,服务器110可以首先获取所述两个或以上位置中的任意两个位置之间的距离(例如直线距离)。服务器110可以将测量距离与该距离阈值进行比较以确定是否应在所述两个位置之间生成路径。例如,服务器110可以生成连接所述两个或以上位置中的每两个相近位置的路径。术语“相近”可以指两个位置之间的距离小于距离。在一些实施例中,位置对应的距离阈值可以相同或不同。所述距离阈值可以与表中位置的数量、根据历史数据确定或估计的用户(例如,司机、乘客)的数量、基于实时情况确定或估计的用户(例如,司机、乘客)的数量、当前订单或历史订单的数量等相关。在一些实施例中,该距离阈值可以是恒定值,例如200m、500m、1km、3km、5km或10km。可选地或附加地,该距离阈值可以由服务器110根据实时情况进行调整,如天气情况、交通情况和做出服务请求时的事件情况(历史或当前服务请求或订单)。
60.该距离阈值可以由路径规划系统100或由用户通过用户设备130预设。在一些实施例中,该距离阈值在不同区域中可以不同。例如,在具有大量位置的区域中(即,由路径规划系统100获取的表中的位置),该距离阈值可以相对较小以减少计算负荷。在具有少量位置的区域中,距离阈值可以较大以生成足够的路径。例如,在有成千上万名司机和订单的区域,该距离阈值可能相对较小,例如2km。又例如在拥有数百名司机和服务订单的区域,该距离阈值可能相对较大,例如6km。
61.在一些实施例中,操作520可以删掉。对于该区域中的两个或以上位置中的任意两个位置,服务器110可以生成连接这些两个位置的路径。例如,在一个有10名司机和10个订单的区域中,根据历史数据和/或路径规划算法可以获取任意两个位置(即,与10名司机相关的位置和10个服务订单的位置)之间的一个或以上路径。
62.在530中,服务器110可以基于距离阈值获取与所述两个或以上位置相关的一个或以上路径。例如,服务器110可以生成与所述两个或以上位置中的任意两个位置(也可以指一对位置)相关的两个或以上路径。在一些实施例中,服务器110可以指定所述两个位置中的一个位置为起点,另一个位置为终点。服务器可以生成从该起点到终点的路径。服务器110可以从与任意两个位置相关的两个或以上路径中选择比距离阈值短的一个或以上路径。在一些实施例中,服务器110可以首先获取所述两个或以上位置中的任意两个位置之间的距离(例如直线距离)。服务器110可以将该测量距离与该距离阈值进行比较以确定是否
应在所述两个位置之间生成路径。例如,服务器110可以生成连接所述两个或以上位置中的每两个相近位置的路径。术语“相近”可以指两个位置之间的距离小于距离。在一些实施例中,所述一个或以上路径可以根据历史数据生成。例如,服务器110可以从存储器150获取包括部分或全部所述两个或以上位置的历史订单以及与该历史订单相对应的路径。在一些实施例中,服务器110可以仅获取部分或全部所述两个或以上位置中小于距离阈值的路径(或路径段)。
63.在一些实施例中,服务器110可以基于一个或以上路径规划算法生成与所述两个或以上位置相关的一个或以上路径。该路径规划算法可以包括dijkstra算法、floyd-warshall算法或bellman-ford算法。例如,对于(所述两个或以上位置中的)两个位置,可以首先生成小于距离阈值的这两个位置之间的可能路径。然后,可以基于路径情况选择所述两个或以上路径中的一个或以上。所述路径情况可以包括最安全路径、最短路径、风景最多路径、交通量较少路径。例如,该最短路径可以基于所述起始位置和所述目的地之间的路径的距离来确定。在一些实施例中,服务器110可以获取路径情况相对应的额外参数。例如,最安全路径可以基于诸如道路类型、道路宽度、交通状况、速度限制、曲线半径、交叉路口数量等的额外参数来确定。仅作为示例,该最安全路径可以是具有很少交叉口和交通量的高速公路。
64.在一些实施例中,服务器110可以将所述一个或以上路径存储在表、列表、数据库、图表、动画、插件等中。在一些实施例中,服务器110可以存储所有530中生成的一个或以上路径。可选地或附加地,对于每两个所述位置,可以存储它们之间的最短路径(和/或最安全路径、风景最多路径或交通量最少路径)。
65.在540中,服务器110可以确定与所述一个或以上路径相关的路径信息。该路径信息可以包括所述一个或以上路径的一个或以上路径距离和序列信息。所述路径距离可以是车辆从一个位置移动到另一个位置的实际距离。在一些实施例中,计算一个或以上路径距离的方法可以包括min-max标准化、z-score标准化、小数定标标准化、线性函数法、对数函数法、反余切函数法、定额法、历史阈值迭代、建模方法、最小二乘法、消元法、缩减法、替换法、镜像法、比较法、放缩法、矢量法、归纳法、反证法、穷举法、配方法、待定系数法、变元法、分裂项法、附加项法、分解法、平移法、函数逼近法、插值法、曲线拟合法、积分法、微分法、微扰法等或其任意组合。
66.所述序列信息可以包括所述一个或以上路径中每一个路径经过的位置序列。每个所述位置可以包括一个描述和一个物理地址。该描述可以包括名称、房屋编号、建筑物名称等或其任意组合。该地址可以包括纬度和经度或者与参考位置相对应的相对位置。
67.在550中,服务器110可以生成包括所述一个或以上路径的路径表。所述路径表还可包括与所述一个或以上路径和/或对应位置有关的路径信息。例如,该路径表可包括该路径的路径距离和序列信息。所述路径表还可以包括安全信息(例如,道路宽度、交通灯、速度)、价格信息(例如,收费站、燃料消耗)、道路信息(道路类型、道路宽度、交通灯、交通控制、道路拥堵)等或其任意组合。服务器110可以基于所述道路信息(例如,道路类型、交通灯)和路径距离确定每个路径的预计到达时间(eta)。服务器110还可以将eta信息存储在该表中。
68.在一些实施例中,路径表还可以包括对应于不同实时情况的两个或以上部分(例
如,两个或以上行和列)。所述实时情况可以与接收所述起始位置和目的地的时间相关。在一些实施例中,该实时情况可以包括做出服务请求(历史或当前服务请求或订单)时的天气情况(例如,温度、湿度)、交通情况(例如,道路信息、交通拥堵、交通控制)、事件情况(例如,节假日、重大事件)等或其任意组合。
69.在一些实施例中,服务器110可以基于不同实时情况生成两个或以上路径表。例如,高峰时段对应的第一组路径可以存储在第一路径表中,正常时段对应的第二组路径可以存储在第二路径表中。在一些实施例中,所述两个或以上路径表可以具有相同或不同的位置。该两个或以上路径表可以基于历史数据和/或路径规划算法获取。例如,可以基于历史数据(例如,历史订单)生成(或确定)所述两个或以上路径,并且服务器110可以首先确定历史订单当时的实时情况。具有相同或相似实时情况的历史订单可以划为相同的组。该两个或以上路径组可以基于一组历史订单生成。例如,所述两个或以上路径可以由路径规划算法生成,服务器110可以首先获取该位置周围的道路参数。所述参数可以包括道路长度、道路宽度、道路类型、限速、交通状况、交叉路口的数量和位置等。服务器110还可以获取、计算或预估不同实时情况对应的参数变化。例如,服务器110可以预估在高峰时段的汽车数量增加量,这种增加量可能导致狭窄并交通繁忙的道路发生交通堵塞。然后,服务器110可以决定在生成与该高峰时段相对应的所述路径组时不包括这些类型的道路。服务器110可以对不同的实时情况重复执行上述方法,以生成对应于不同实时情况的两个或以上组路径。例如,可以基于在高峰时段进行的历史订单获取与该高峰时段对应的第一组路径,可以基于在正常时段进行的历史订单来获取与该正常时段对应的第二组路径。又例如,服务器110可以分别估计或获取在高峰时段和正常时段内的参数(例如,道路长度、道路宽度、道路类型、速度限制、交通状况、交叉路口的数量和位置)的变化。服务器110可以基于估计的高峰时段参数的变化生成包括与该高峰时段相对应的第一组路径的第一表。类似地,服务器110可以基于估计的正常时段参数的变化生成包括与该正常时段相对应的第二组路径的第二表。
70.当在实时情况下请求从起始位置到目的地的路径时,服务器110可以基于该实时情况选择对应的表。例如,当在高峰时段进行订单或服务请求时,服务器110可以选择对应于高峰时间的路径表,并且服务器110还可以从选定的路径表中选择与该订单的起始位置和目的地相关的一个或以上路径。在一些实施例中,服务器110可以基于实时情况切换到其他路径表。例如,在正常时段内,服务器110可以切换到正常时段对应的路径表,服务器110还可以从切换到的路径表中选择与该订单的起始位置和目的地相关的一个或以上路径。
71.在一些实施例中,服务器110可以生成路径表,并且存储器150或用户设备130可以存储该路径表。例如,北京的距离阈值可以设置为3km。根据北京的路径和距离阈值,可以生成路径表。该路径表可以以小于10千兆字节(gb)的无损压缩格式存储。这可能是存储在服务器、计算机或移动设备上的理想大小。例如,该路径表可以存储在用户设备130中,可以离线生成路径。当请求从用户的起始位置和目的地开始的路径时,可以直接使用该路径表,并且可以在不进行计算的情况下生成路径。该路径表的示例性结构可以在图8中找到。
72.服务器110可以是单个服务器或服务器组。在一些实施例中,服务器110可以包括被配置为生成两个或以上路径表的第一服务器和被配置为存储该路径表并响应来自路径规划系统100中的用户或部件的请求而从所述两个或以上路径表中输出路径的第二服务
器。在一些实施例中,所述第二服务器可以包括一个或以上服务器。例如,当基于不同的实时情况生成两个或以上路径表时,可以将所述两个或以上路径表中的每一个表分开存储在该一个或以上服务器中。可选地或附加地,可以复制部分或全部路径表并将其存储在部分或全部所述一个或以上服务器中。
73.在一些实施例中,用户可以在用户设备130和/或司机终端140上输入包括起始位置和目的地的信息。所述包括起始位置和目的地的信息可以通过网络120发送到所述第二服务器。然后,所述第二服务器可以搜索与该起始位置和目的地相关的路径表并通过网络120将一个或以上路径发送给用户。所述一个或以上路径可以具有与用户输入相同的起始位置和目的地。在一些实施例中,该用户可以进一步输入特征信息,所述第二服务器可以基于该特征信息在所述一个或以上路径中发送目标路径(例如,最安全路径、最短路径、风景最多路径、交通量较少路径)。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
74.图6是根据本技术的一些实施例所示的基于两个或以上组路径生成一个路径过程的示例性流程图。过程600可以由路径规划系统100中的设备(例如,服务器110、用户设备130、司机终端130)执行。例如,过程600可以通过存储在存储介质中的一组指令(例如,应用程序)来实现。
75.在610中,服务器110可以获取两个或以上组路径。例如,服务器110可以从存储器150(或另一服务器)获取第一组路径和第二组路径。服务器110可根据本技术其他地方所述的不同情况(例如,使用上述过程400和/或过程500)来生成所获取的路径组。所述情况可以包括天气信息(例如,温度、湿度)、交通信息(例如,道路信息、交通拥堵、交通控制)、事件信息(例如,节假日、重大事件)等或其任意组合。例如,一组路径可能对应雨天的路径,而另一组路径可能对应晴天的路径。又例如,一组路径可能对应高峰时段的路径,而另一组路径可能对应正常时段的路径。服务器110可以将所述两个或以上组路径存储在两个或以上路径表中或一个路径表的两个或以上列或行中。
76.在620中,服务器110可以基于实时情况选择一组路径。例如,如果服务器110从特定下雨的区域获取路径规划请求(例如,来自乘客的出租车服务请求),则服务器110可以从路径表中选择与雨天相对应的路径组。又例如,如果服务器110从特定的高峰时段获取路径规划请求,则服务器110可以选择与高峰时段对应的路径表。在一些实施例中,服务器110可基于当前时间(例如,服务器110搜索路径表的时间)来切换路径表。例如,服务器110可以访问两个路径表,第一路径表包括与高峰时段(例如,上午7-9点和下午5-7点)相关的第一组路径,第二路径表包括与正常时段(即,除了高峰时段外的时段)相关的第二组路径。在高峰时段(例如上午7点到上午9点)之前,服务器110可以使用该第二表响应终端设备的请求并搜索(或生成)路径。在高峰时段(例如上午7点到上午9点)内,服务器110可以切换到第一路径表。在高峰时段之后,服务器110可以切换回第二路径表。在一些实施例中,如果服务器110找不到与所述实时情况对应的一组路径,则可以选择默认路径组。例如,该默认路径组可以是基于所述起始位置和目的地之间的路径距离确定的最短路径组。
77.在630中,服务器110可以基于所选的路径组生成从所述起始位置到目的地的路
径。在一些实施例中,所述起始位置和目的地可以与路径表中一个或以上的所述两个或以上路径的起始位置和目的地相同或相似。在这种情况下,服务器110可以生成与所述两个或以上路径中的一个或多个类似的路径。另外,可以基于特征信息从所述一个或以上路径中选择目标路径。所述特征信息可以包括与所述起始位置和/或所述目的地相关的信息、从所述起始位置到所述目的地的预计到达时间(eta)、区域信息(例如,所述起始位置和/或所述目的地所在区域的交通)、时间信息、用户信息(例如,乘客偏好)或服务请求信息。
78.在一些实施例中,所述起始位置和目的地可以在路径表中找到,但位于不同路径中。换句话说,该路径表可能不包含直接从所述起始位置到目的地的任何路径。在这种情况下,可以通过组合该路径表中的两个或以上路径来生成从所述起始位置到目的地的路径。
79.图7是根据本技术的一些实施例所示的路径规划过程的示例性流程图。过程700可以由路径规划系统100中的设备(例如,服务器110、用户设备130和司机终端140)执行。例如,过程700可以通过存储在存储介质中的一组指令(例如,应用程序)来实现。在一些实施例中,过程700示出了起始位置和距离较远(例如,该起始位置和目的地之间的距离大于距离阈值)的目的地之间的路径规划方法。
80.在710中,服务器110可以获取包括起始位置和目的地的信息。与上述操作430所公开内容类似,所述包括起始位置和目的地的信息可以由用户通过用户设备130或司机终端140输入并可以通过网络120发送到服务器110。可选地或附加地,服务器110可以向用户设备130和/或司机终端140发送指令以获取包括所述起始位置和目的地的信息。
81.在一些实施例中,所述起始位置可以是服务提供者(例如,司机、送货员)的当前位置,所述目的地可以是订单或服务请求者(例如,乘客、顾客)的当前位置。在一些实施例中,所述起始位置可以是司机接载乘客的位置,所述目的地可以是乘客想要去的位置。在一些实施例中,所述起始位置和目的地可以在420中生成的路径表中找到(即,与该路径表中的一些位置相同)。如果在该路径表中找不到所述起始位置和/或目的地的,服务器110可以获取该路径表中靠近所述起始位置和/或目的地的一个或以上位置作为起始位置和/或目的地。
82.在720中,服务器110可以获取距离阈值。与上述操作520中公开的内容类似,对于所述两个或以上位置中的任意两个位置,服务器110可以生成连接这两个位置的路径且该路径比距离阈值短。可选地或附加地,服务器110可以生成所述两个或以上位置中的任意两个相近(例如,它们之间的距离小于距离阈值)位置的路径。在一些实施例中,位置对应的距离阈值可以相同或不同。所述距离阈值可以与路径表中位置的数量、根据历史数据确定或估计的用户(例如,司机、乘客)的数量、基于实时情况确定或估计的用户(例如,司机、乘客)的数量、当前订单或历史订单的数量等相关。在一些实施例中,该距离阈值可以是恒定值,例如200m、500m、1km、3km、5km或10km。可选地或附加地,该距离阈值可以根据在做出服务请求(历史或当前服务请求或订单)时的实时情况而发生变化,例如天气情况、交通情况和事件情况。
83.该距离阈值可以由路径规划系统100或由用户通过用户设备130预设。在一些实施例中,该距离阈值在不同区域中可以不同。例如,在具有大量位置的区域中(即,路径规划系统100获取的路径表中的位置),该距离阈值可以相对较小以减少计算负荷。在具有少量位置的区域中,距离阈值可以较大以生成足够的路径。例如,在有成千上万名司机和成千上万
个订单的区域,该距离阈值可能相对较小,例如2km。又例如,在有一百名司机和一百个订单的区域,该距离阈值可能相对较大,例如6km。
84.在一些实施例中,720可以删除。例如,在位置很少的区域,可能会生成该区域任意两个位置之间的路径。例如,在一个有10名司机和10个订单的区域中,可以根据历史数据和/或路径规划算法获取任意两个位置之间的一个或以上路径。
85.在730中,在第一次循环中,服务器110可以基于所述起始位置、目的地和距离阈值来获取第一位置。如本技术中其他地方所述,可以从路径表中的两个或以上位置中选择该第一位置。在一些实施例中,服务器110可以基于所述起始位置(或目的地)和所述两个或以上位置之间的距离从所述两个或以上位置中选择所述第一位置。在一些实施例中,服务器110可以计算从该起始位置到目的地的向量与从该起始位置到所述两个或以上位置的向量之间的角度。可以基于该角度和距离来确定所述第一位置。在随后的循环中,可以基于先前位置(先前循环中的位置)、目的地和距离阈值来生成当前位置(当前循环中的位置)。在后续循环中获取该当前位置的方法类似于获取所述第一位置的方法,此处不再重复。
86.在740中,服务器110可以判断该当前位置与目的地之间的距离是否小于距离阈值。如果该当前位置与目的地之间的距离小于距离阈值,则过程700可以前进到750;否则,过程700可以回到730。
87.在750中,服务器110可以依次连接所述位置以生成从所述起始位置到目的地的路径。当连续循环中的任意两个位置彼此接近(例如,二者之间的距离小于距离阈值),可以生成与连续循环中两个位置中的每一个位置相对应的路径。所述生成路径的方法可以在例如操作440中找到。然后,服务器110可以依次连接所生成的路径以生成从所述起始位置到目的地的最终路径。
88.图8是根据本技术的一些实施例所示的示例性路径表的结构示意图。如图8所示,a、b、c和d可以表示两个或以上位置中的四个示例性位置。路径1和路径2可以是从a到c(或从c到a)的两个不同路径。路径1可以经过位置11、位置12、位置13和位置14(也称为序列信息)。路径1的距离可以是2.7km。路径2可以经过位置21、位置22、位置23、位置24和位置25。路径2的距离可以是2.8km。
89.类似地,路径3以是从a到d(或从d到a)的路径。路径3可以经过位置31和位置32。路径3的距离可以是1.5km。路径4、路径5和路径6可以是从b到c(或从c到b)的路径。路径4、路径5和路径6的距离分别为2.1km、2.1km和2km。
90.在一些实施例中,距离阈值可以是3km。又例如,b和d之间的路径距离可以是3.5km。由于该路径距离大于距离阈值,不选择b和d之间的路径并返回到路径表中。
91.图9a和图9b是根据本技术的一些实施例所示的路径规划示意图。在一些实施例中,图9a和图9b是对应于图8中的路径表的示例性实施例,其中910a、910b、910c和910d分别对应该路径表中的位置a、b、c和d。路径930可以与路径4对应,921、922和923分别对应位置41、42和43。
92.如图9a所示,在该区域中有两个或以上位置,包括位置910a、910b、910c和910d(例如,图9a和9b所示的示例性圆仅用于说明目的)。以位置910b为中心的圆可以具有与距离阈值相同的半径(例如,3km、5km)。在一些实施例中,可以如本技术中其他地方所描述的那样获取所述两个或以上位置。对于靠近位置910b(在阈值距离的圆内)的位置,例如位置910a、
位置910c等,可以选择(或生成)位置910b与该位置之间的路径。对于远离位置910b(在阈值距离的圆之外)的位置,例如位置910d,为减少计算负荷,不生成路径。所述位置和路径可以以表(例如图8中的路径表)的形式存储在存储设备中。在一些实施例中,服务器110可以从用户设备130和/或司机终端140获取包括用户的起始位置和目的地的信息,所述起始位置和目的地可以是所述两个或以上位置中的两个位置。
93.如图9b所示,路径930可以表示从位置910b到位置910c的路径。位置921、922和923可以表示路径930通过的位置。在一些实施例中,位置910b和910c可以作为路径930的起始位置和目的地存储在路径表中,位置921、922、923可以依次存储在该路径表中作为序列信息。当服务器110从用户设备130和/或司机终端140接收到类似的起始位置和目的地时,可以通过提取所述起始位置、目的地和序列信息生成并显示路径。
94.图10是根据本技术的一些实施例所示的示例性路径规划的示意图。在一些实施例中,图10是与过程700相对应的示例性实施例。
95.如图10所示,位置1010可以是起始位置,位置1050可以是目的地。在一些实施例中,起始位置1010和目的地1050可以相距较远(例如,不在阈值距离的圆内)。服务器110可以基于起始位置1010和目的地1050获取1010的圆内的位置1020。位置1020也可以指如过程700所示的第一位置。服务器110可以基于位置1020和1050获取位置1020的圆内的位置1030。类似地,服务器110可以获取位置1040。由于位置1040位于位置1050的圆内,所以不需要生成额外的位置。然后,可以如本技术其他地方所描述的那样生成相邻位置之间的路径(例如,1015、1025、1035和1045)。服务器110可以基于所述相邻位置之间的路径生成从起始位置1010到目的地1050的最终路径。例如,可以通过连接1015、1025、1035和1045来生成最终路径。
96.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本技术的限定。虽然此处并没有明确说明,本领域技术人员可以对本技术进行各种修改、改进和修正。该类修改、改进和修正在本技术中被建议,所以该类修改、改进、修正仍属本技术示范实施例的精神和范围。
97.同时,本技术使用了特定术语来描述本技术的实施例。例如,术语“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征、结构或特性被包括在本技术的至少一个实施例中。因此,应该强调并注意的是,在本说明书的各个部分中两次或多次提到的“实施例”或“一个实施例”或“替代实施例”不一定都指的是相同的实施例。此外,本技术的一个或以上实施例中的某些特征、结构或特征可以进行适当的组合。
98.此外,本领域的普通技术人员可以理解,本技术的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的制程、机器、产品或物质的组合,或对其任何新的和有用的改良。因此,本技术的各个方面可以完全由硬件、完全由软件(包括固件、常驻软件、微代码)或由软件和硬件组合执行,其在本文中通常可以被称为“单元”,“模块”或“系统”。此外,本技术的各方面可以表现为位于一个或以上计算机可读介质中的计算机程序产品,该产品包含有计算机可读程序代码。
99.计算机可读信号介质可以包括其中包含有计算机可读程序代码的传播数据信号,例如,在基带中或者作为载波的一部分。这样的传播信号可以采用多种形式中的任何形式,包括电磁、光学等或其任何合适的组合。计算机可读信号介质可以是非计算机可读存储介
质并且可以传送,传播或传输供指令执行系统、装置或设备使用或与其结合使用的程序的任何计算机可读介质。体现在计算机可读信号介质上的程序代码可以使用任何适当的介质来传输,包括无线、有线、光缆、rf等或者前述的任何适当的组合。
100.本技术各方面操作所需的计算机程序代码可以用一种或多种程序语言的任意组合编写,包括如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb、net、python等的面向对象程序设计语言、诸如“c”编程语言、visual basic、fortran 2003、perl、cobol 2002、php、abap、动态编程语言(诸如python,ruby和groovy)或其他编程的常规过程编程语言语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上、部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,通过互联网使用互联网服务提供者)或者在云计算环境中提供或作为诸如软件即服务(saas)的服务提供。
101.此外,处理元件或序列的叙述顺序或因此使用数字、字母或其他标记并非意图将要求保护的过程和方法限制为除了权利要求中可能指定的顺序之外的任何顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本技术实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件装置实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动装置上安装所描述的系统。
102.同理,应当注意的是,为了简化本技术披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本技术实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本技术对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。