用于发送空间数据的系统和方法与流程

文档序号:20013057发布日期:2020-02-22 04:42阅读:204来源:国知局
用于发送空间数据的系统和方法与流程

本申请一般涉及数据处理的系统和方法,尤其涉及遍历空间数据的系统和方法。



背景技术:

在使用传统的数据处理方法时,工程师需要读取所有数据。读取所有数据可能需要很长时间。而且,在大数据场景下,缓存所有数据可能需要大量的内部存储器。例如,在线上到线下服务系统中,空间元素数据较大,如司机的轨迹和乘客的轨迹,需要大量的内部存储器。因此,需要有效处理空间元素数据的方法。



技术实现要素:

根据本发明的一个方面,系统可以包括存储设备,存储一组指令以及与存储设备通信的一个或多个处理器。当执行指令时,一个或多个处理器可以被配置为使得系统经由网络从所述用户终端获取与所述地理区域有关的数据的请求,并且确定多个数据组,多个数据组用于存储与多个地理位置点有关的数据。在一些实施例中,地理区域可以包括多个地理位置点。在一些实施例中,多个数据组可以与多个空间索引值相关联。一个或多个处理器可以被配置为使系统基于所述多个数据组生成包括第一缓冲范围数据的优先队列和从与所述多个空间索引值中的最小空间索引值相关联的数据组开始,遍历所述多个数据组。在一些实施例中,所述第一缓冲范围数据可以与多个第一队列索引值、第一参考索引值和所述地理区域的第一部分相关联。所述一个或多个处理器可以进一步被配置为使所述系统确定当前遍历的数据组的空间索引值是否等于或大于所述第一参考索引值;以及响应于所述确定所述当前遍历的数据组的所述空间索引值等于或大于所述第一参考索引值,向所述用户终端发送与所述地理区域的所述第一部分有关的数据。

在一些实施例中,所述一个或多个处理器也可以被配置为使所述系统确定与所述多个地理位置点相关的多个希尔伯特距离,并将与具有相同希尔伯特距离的地理位置点相关联的数据存储到同一数据组中。在一些实施例中,所述一个或多个处理器还可以使所述系统将所述多个希尔伯特距离指定为所述多个空间索引值。

在一些实施例中,所述一个或多个处理器也可以使所述系统基于所述多个希尔伯特距离确定与所述多个地理位置点有关的空间索引值。

在一些实施例中,与所述多个地理位置点相关的所述数据可以包括以下中的至少一个:人的轨迹、动物的轨迹、交通工具的轨迹、与建筑物有关的信息或与道路有关的信息。

在一些实施例中,所述第一缓冲范围数据可以包括第一范围数据和第一缓冲数据。在一些实施例中,所述第一范围数据可以对应于所述地理区域的所述第一部分的地理位置点。在一些实施例中,所述第一缓冲数据可以对应于围绕所述地理区域的所述第一部分的地理位置点。

在一些实施例中,所述第一参考索引值可以是所述多个第一队列索引值中的最大值。

在一些实施例中,所述一个或多个处理器也可以被配置为使所述系统基于所述多个空间索引值,以升序排列所述多个数据组以生成有序数据组,以及遍历所述有序数据组。

在一些实施例中,所述第一缓冲范围数据可以包括多个高速缓存在一些实施例中,每个高速缓存与第一队列索引值相关联。

在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统从与所述多个空间索引值中的所述最小空间索引值相关联的数据组开始,遍历所述有序数据组,以及确定遍历的数据组的数据。在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统将所述遍历的数据组的数据存储到高速缓存中,所述高速缓存的第一队列索引值等于与遍历的数据组相关联的空间索引值。

在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统从所述优先队列中获取第二缓冲范围数据,并将所述多个第二队列索引值中最大的第二队列索引值指定为第二参考索引值。在一些实施例中,所述第二缓冲范围数据可以与多个第二队列索引值、第二参考索引值和所述地理区域的第二部分相关联。在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统确定所述第二参考索引值是否小于所述第一参考索引值,以及响应于所述确定所述第二参考索引值小于所述第一参考索引值,将所述第二缓冲范围数据指定为所述第一缓冲范围数据。在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统响应于所述确定所述第二参考索引值小于所述第一参考索引值,将所述第二参考索引值指定为所述第一参考索引值,以及确定所述当前遍历的数据组的所述空间索引值是否等于或大于所述指定的第一参考索引值。

在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统确定所述第一缓冲范围数据中的每个高速缓存是否存储对应数据组的数据,以及响应于所述确定所述缓冲范围数据中的每个高速缓存存储了相应数据组的数据,从优先队列输出第一缓冲范围数据。在一些实施例中,所述一个或多个处理器还可以被配置为使所述系统通过从所述优先队列中移除所述第一缓冲区范围数据来更新所述优先队列,以及基于所述更新的优先队列获取新的第一缓冲范围数据和新的第一参考索引值。

根据本申请的另一个方面,一种计算机实现的方法可以包括由一个或多个处理器执行以下操作中的一个或多个。所述方法可以包括经由网络从用户终端获取与地理区域有关的数据的请求,以及确定用于存储与所述多个地理位置点相关的数据的多个数据组。在一些实施例中,所述地理区域可以包括多个地理位置点。在一些实施例中,所述多个数据组可以与多个空间索引值相关联。所述方法也可以包括基于所述多个数据组生成包括第一缓冲范围数据的优先队列,以及从与所述多个空间索引值中的最小空间索引值相关联的数据组开始,遍历所述多个数据组。在一些实施例中,所述第一缓冲范围数据与多个第一队列索引值、第一参考索引值和所述地理区域的第一部分相关联。所述方法还可以包括确定当前遍历的数据组的空间索引值是否等于或大于所述第一参考索引值,以及响应于所述确定所述当前遍历的数据组的所述空间索引值等于或大于所述第一参考索引值,向所述用户终端发送与所述地理区域的所述第一部分有关的数据。

根据本申请公开的又一个方面,一种非暂时性计算机可读介质可以存储指令。当所述指令在由系统的一个或多个处理器执行时可以使所述系统经由网络从所述用户终端获取与所述地理区域有关的数据的请求以及确定多个数据组,所述多个数据组用于存储与所述多个地理位置点相关的数据。在一些实施例中,所述地理区域可以包括多个地理位置点。在一些实施例中,多个数据组可以与多个空间索引值相关联。所述指令也可以使所述系统基于所述多个数据组生成包括第一缓冲范围数据的优先队列,以及从与所述多个空间索引值中的最小空间索引值相关联的数据组开始,遍历所述多个数据组。在一些实施例中,所述第一缓冲范围数据可以与多个第一队列索引值、第一参考索引值和所述地理区域的第一部分相关联。所述指令还可以使所述系统确定当前遍历的数据组的空间索引值是否等于或大于第一参考索引值,以及响应于确定当前遍历的数据组的空间索引值等于或大于第一参考索引值,向用户终端发送与所述地理区域的第一部分有关的数据。

根据本申请公开的又一个方面,系统可以包括获取模块、确定模块、生成模块、遍历模块、比较模块和传输模块。获取模块被配置为经由网络从用户终端获取与地理区域有关的数据的请求。在一些实施例中,所述地理区域可以包括多个地理位置点。所述确定模块可以被配置为确定用于存储与所述多个地理位置点相关的数据的多个数据组。在一些实施例中,多个数据组可以与多个空间索引值相关联。所述生成模块被配置为基于所述多个数据组生成包括第一缓冲范围数据的优先队列。在一些实施例中,所述第一缓冲范围数据可以与多个第一队列索引值、第一参考索引值和所述地理区域的第一部分相关联。所述遍历模块被配置为从与所述多个空间索引值中的最小空间索引值相关联的数据组开始遍历所述多个数据组。所述比较模块被配置为确定当前遍历的数据组的空间索引值是否等于或大于所述第一参考索引值。所述传输模块被配置为响应于所述确定所述当前遍历的数据组的所述空间索引值等于或大于所述第一参考索引值,向所述用户终端发送与所述地理区域的所述第一部分有关的数据。

附图说明

根据示例性实施例可以进一步描述本申请。参考附图可以详细描述所述示例性实施例。所述实施例并非限制性的示例性实施例,其中相同的附图标记代表附图的几个视图中相似的结构,并且其中:

图1是根据一些实施例所示的示例性随选服务系统的框图;

图2是根据一些实施例所示的示例性计算设备的组件和软件组件的示意图;

图3是根据本申请公开的一些实施例所示的移动设备的示例性硬件组件和/或软件组件的示意图;

图4是根据本申请公开的一些实施例所示的示例性处理引擎112的框图;

图5是根据本申请公开的一些实施例所示的用于向客户终端传输与地理区域的第一部分有关的数据的示例性过程的流程图;

图6是根据本申请公开的一些实施例所示的用于将遍历数据组的数据存储到高速缓存的示例性过程的流程图;

图7是根据本申请公开的一些实施例所示的用于确定指定的第一缓冲范围数据和指定的第一参考索引值的示例性过程的流程图;

图8是根据本申请公开的一些实施例所示的用于遍历多个数据组的示例性过程的流程图;和;

图9是根据本申请公开的一些实施例所示的优先队列的示意图。

具体实施方式

下述描述是为了使本领域具有通常知识者能制造和使用本申请并且该描述是在特定的应用场景及其要求的背景下提供的。对于本领域的普通技术人员来讲,对本申请披露的实施例进行的各种修改是显而易见的,并且本申请定义的通则可以适用于其他实施例和应用,而不背离本申请的精神和范围。因此,本申请不限于所示的实施例,而是符合与权利要求一致的最广泛范围。

本申请所使用的术语仅为了描述特定实施例,并不限制本申请的范围。如本文所使用的“一“、“一个“、“所述“、“该”并非特指单数,也可包括复数形式,除非上下文明确提示例外情形。应该被理解的是,本申请中所使用的术语“包含”,“包含”和/或“包括”仅提示已明确标识的特征、整数、步骤、操作、元素和/或部件,而不排除可以存在或添加其他一个或多个特征、整数、步骤、操作、元素、部件和/或其组合。

根据以下对附图的描述,本申请所述的和其他的特征、操作方法、相关组件的功能和经济的结构更加显而易见,这些都构成说明书的一部分。然而,应当理解,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例的。

本申请中使用了流程图用于说明根据本申请的实施例的系统所执行的步骤。应当明确理解,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或多个其他操作添加到这些流程图中。或者从这些流程图中移除某一个或多个操作。

此外,虽然本申请的系统和方法的描述主要关于分配交通运输服务的请求,应该理解的是,这只是一个示例性的实施例。本申请的系统或方法可以应用与任何其他类型的线上到线下服务。例如,本申请的系统或方法可以应用于不同环境下的运输系统,包括陆地、海洋、航空航天或类似物或其任何组合。所述运输系统涉及的车辆可以包括出租车、私家车、顺风车、巴士、列车、子弹头列车、高速铁路、地铁、船只、飞机、太空船、热气球、无人驾驶车辆等或其任意组合。运输系统还可以包括用于经营及/或分配的任何运输系统,例如用于发送及/或接收快递的系统。本申请的系统或方法的应用场景可以包括网页、浏览器插件、客户终端、定制系统、内部分析系统、人工智能机器人等或上述举例的任意组合。

在本申请中,术语“乘客”、“请求方”、“服务请求方”和“客户”可以交换使用,其表示可以请求或预定服务的个体、实体或工具。在本申请中,术语"司机"、"提供者"、以及"服务提供者"也可以交换使用,其表示可以提供服务或促进提供该服务的个体、实体,或工具。

在本申请中,术语“服务请求”和“订单”可以交换使用,其表示由乘客、请求者、服务请求者、客户、司机、提供者、服务提供者等或上述举例的任意组合所发起的请求。所述服务请求可以被乘客、服务请求者、客户、司机、提供者、服务提供者中的任一个接受。服务请求可以是收费的或免费的。

本申请中的术语“服务提供者终端”和“司机终端”可以交换使用,其表示服务提供者所使用的用于提供服务或促进服务提供的移动终端。本申请中的术语“服务请求者终端”和“乘客终端”可以交换使用,其表示服务请求者所使用的用于请求或订购服务的移动终端。

在本申请中使用的定位技术可包括全球定位系统(gps),全球导航卫星系统(glonass)、罗盘导航系统(compass)、伽利略定位系统、准天顶卫星系统(qzss)、无线保真(wifi)定位技术等或其任意组合。上述定位技术中的一种或者多种可在本申请中互换使用。

本申请的一个方面涉及在线系统以及用于遍历空间数据的方法。可以确定与地理区域相关的多个空间索引值(希尔伯特距离)。可以确定用于存储与地理区域相关的数据的多个数据组。每个数据组可以与一个空间索引值相关联。可以基于多个空间索引值和地理区域来确定优先队列。优先队列可以包括与第一参考索引值和地理区域的第一部分相关联的第一缓冲范围数据。所述数据组从与所述多个空间索引值中的最小空间索引值相关联的数据组开始,遍历所述多个数据组。如果确定当前遍历的数据组的空间索引值等于或大于所述第一参考索引值,向所述用户终端发送与所述地理区域的所述第一部分有关的数据。

本申请采用希尔伯特距离以确定所述地理区域中的空间索引值。处理引擎基于空间索引遍历所述数据组。

图1是根据一些实施例所示的示例性线上到线下服务系统100的框图。例如,所述线上到线下服务系统100可以是用于运输服务的在线运输服务平台。所述线上到线下服务系统100可以包括服务器110、网络120、服务请求者终端130、服务提供者终端140、车辆150、存储设备160和导航系统170。

所述线上到线下服务系统100可以提供多个服务。示例性的服务可以包括出租车呼叫服务、代驾服务、快车服务、拼车服务、巴士服务、司机租赁服务和班车服务。在一些实施例中,所述线上到线下服务可以是任何在线服务,如订餐、购物等或其他任何组合。

在一些实施例中,所述服务器110可以是单个服务器或服务器组。该服务器组可以是集中式或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,所述服务器110可以经由网络120访问存储在服务请求者终端130、服务提供者终端140和/或存储设备160中的信息和/或数据。再例如,所述服务器110可以直接连接到服务请求者终端130、服务提供者终端140和/或存储设备160访问存储的信息和/数据。在一些实施例中,服务器110可以在云平台上实现。仅仅举个例子,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云、中间云、多云等或其任意组合。在一些实施例中,服务器100可以在具有本申请图10中所示的一个或多个组件的计算设备1000上实现。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与服务请求相关的信息和/数据来执行本申请中的一个或多个功能。例如,处理引擎112可以遍历空间数据。在一些实施例中,处理引擎112可以包括一个或多个处理引擎(例如,单核处理器或是多核处理器)。仅仅举个例子,处理引擎112可以包括中央处理器(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图形处理器(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可以程序门阵列(fpga)、可以程序逻辑装置(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或其任意组合。

网络120可以促进信息和/数据的交换。在一些实施例中,线上到线下服务系统100(例如,服务器110、服务请求者终端130、服务提供者终端140、车辆150、存储设备160和导航系统170)中的一个或多个组件可以经由网络120向线上到线下服务系统100的其他组件发送信息和/数据。例如,服务器110可以经由网络120从服务请求者终端130接收服务请求.在一些实施例中,网络120可以是任何类型的有线网络、无线网络或其组合。仅仅举个例子,网络120可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(lan)、广域网路(wan)、无线局域网络(wlan)、城域网(man)、广域网路(wan)、公共开关电话网络(pstn)、蓝牙网络、zigbee网络、近场通讯(nfc)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可包括有线或无线网络接入点比如基站和/或互联网交换点120-1、120-2…。通过该网络接入点,线上到线下服务系统100的一个或多个组件可以连接至网络120以交换信息和或数据。

在一些实施例中,乘客可以是服务请求者终端130的所有者。在一些实施例中,服务请求者终端130的所有者可以是乘客之外的其他人。例如,服务请求者终端130的所有者a可以使用服务请求者终端130为乘客b发送服务请求,或是从服务器110接收服务确认和/或信息或指令。在一些实施例中,服务提供者可以是服务提供者终端140的使用者。在一些实施例中,服务提供者终端140的使用者可以是服务提供者之外的其他人。例如,服务提供者终端140的使用者c可以使用服务提供者终端140为服务提供者d接收服务请求,和/或来自服务器110的信息或指令。在一些实施例中,“乘客”和“乘客终端”可以交换使用,“服务提供者”和“服务提供者终端”可以交换使用。在一些实施例中,服务提供者终端可以与一个或多个服务提供者(例如,夜班服务提供商、或白班服务提供者)相关。

在一些实施例中,服务请求者终端130可以包括移动装置130-1、平板计算机130-2、笔记本电脑130-3、车辆内置装置130-4等或上述举例的任意组合。在一些实施例中,移动装置130-1可以包括智慧家居装置、可穿戴装置、智慧移动装置、虚拟实境装置、增强实境装置等或其任意组合。在一些实施例中,智能家居装置可以包括智能照明装置、智能电器的控制装置、智能监测装置、智能电视、智能摄像机、对讲机等或其任意组合。在一些实施例中,可穿戴装置可以包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣物、智能背包、智能配饰等或上述举例的任意组合。在一些实施例中,智能移动装置可以包括智能电话、个人数字助理(pda)、游戏设备、导航装置、销售点(pos)装置等或其任意组合。在一些实施例中,虚拟现实装置和/或增强实境装置可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强实境头盔、增强实境眼镜、增强实境眼罩等或上述举例的任意组合。例如,虚拟现实装置和/或增强现实装置可以包括googletmglass,oculusrift,hololens,gearvr等。在一些实施例中,车辆内置装置130-4可以包括车载电脑,车载电视等。在一些实施例中,服务请求者终端130可以是具有用于定位乘客和/或服务请求者终端130的位置的定位技术的设备。

服务提供者终端140可以包括多个服务提供者终端140-1、140-2、……、140-n。在一些实施例中,服务提供者终端140可以是与服务请求者终端130类似或者相同的装置。在一些实施例中,服务提供者终端140可以被定制为能够实现线上到线下服务。在一些实施例中,服务提供着终端140可以是一个带有定位技术的装置,该定位技术可以用于定位服务提供者、服务提供者终端140和/或与服务提供者终端相关的车辆150的位置。在一些实施例中,服务请求者终端130和/或服务提供者终端140可以与另一个定位装置通信以确定乘客、服务请求者终端130、服务提供者和/或服务提供者终端140的位置。在一些实施例中,服务请求者终端130和/或服务提供者终端140可以周期性地将该定位信息发送至服务器110。在一些实施例中,服务提供者终端140也可以周期性地将可用状态发送至服务器110。所述可用状态可以表明与服务提供者终端140相关的车辆150是否可以接载乘客。例如,服务请求者终端130和/或服务提供者终端140可以每30分钟将所述定位信息和所述可用状态发送至服务器110。又例如,服务请求者终端130和/或服务提供者终端140可以在每次用户登录与在线到离线服务相关的移动应用程序时将定位信息和可用状态发送至服务器110。

在一些实施例中,服务提供着终端140可以对应一个或多个车辆150。车辆150可以接载乘客并送至目的地。车辆150可以包括多个车辆150-1、150-2、……、150-n。一个车辆可以对应一种类型的服务(例如,出租车呼叫服务、代驾服务、快车服务、拼车服务、公交车服务、司机招聘服务和接送服务)。

存储设备160可以储存数据及/或指令。在一些实施例中,存储设备160可以存储从服务请求者终端130和/或服务提供者终端140获得的数据。在一些实施例中,存储设备160可以存储服务器110用来执行或使用来完成本申请中描述的示例性方法的数据及/或指令。在一些实施例中,存储设备160可包括大容量存储器、可移动存储器、挥发性读写内存、只读存储器(rom)等或其任意组合。示例性大容量存储器可包括磁盘、光盘、软盘、固态硬盘等。示例性的可移动存储器可包括快闪驱动、软盘、光盘、记忆卡、压缩盘、磁带等。示例性的挥发性读写记忆体可包括随机访问记忆体(ram)。示例性的随机存储器可以包括动态随机存储器(dram)、双数据率同步动态随机存储器(ddrsdram)、静态随机存储器(sram)、可控硅随机存储器(t-ram)和零电容存储器(z-ram)等。示例性的只读存储器可以包括掩蔽型只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(perom)、电可擦除可编程只读存储器(eeprom)、压缩硬盘只读存储器(cd-rom)和数字多功能硬盘只读存储器等在一些实施例中,存储设备160可以在云平台上实现。仅仅举个例子,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云、中间云、多云等或其任意组合。

在一些实施例中,存储设备160可以与网络120连接以与线上到线下服务系统100的一个或多个部件(例如,服务器110、服务请求者终端130、服务提供者终端140等)通信。线上到线下服务系统100的一个或多个组件可以通过网络120访问存储在存储设备160中的数据或指令。在一些实施例中,存储设备160可以直接与线上到线下服务系统100的一个或多个部件(例如,服务器110、服务请求方终端130、服务提供方终端140等)连接或通信。在一些实施例中,存储设备160可以是服务器110的一部分。

所述导航系统170可以确定与对象相关的信息,例如,一个或多个服务请求者终端130,服务提供者终端140中,车辆150等。在一些实施例中,导航系统170可以是全球定位系统(gps)、全球导航卫星系统(glonass)、指南针导航系统(compass)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(qzss)等。所述信息可包括对象的位置、海拔、速度、加速度或当前时间。导航系统170可以包括一个或多个卫星,例如,卫星170-1、卫星170-2和卫星170-3。卫星170-1至170-3可以独立地或共同地确定上述信息。卫星导航系统170可以通过无线连接将上述信息发送至网络120、服务请求者终端130、服务提供者终端140或车辆150。

在一些实施例中,线上到线下服务系统100的一个或多个部件(例如,服务器110、服务请求方终端130、服务提供方终端140等)可以拥有访问存储设备160的权限。在一些实施例中,当满足一个或多个条件时,线上到线下服务系统100的一个或多个部件可以读取和/或修改与乘客、服务提供者和/或公众相关的信息。例如,一个服务完成后,服务器110可以读取和/或修改一个或多个乘客的信息。又例如,一个服务完成后,服务器110可以读取和/或修改一个或多个服务提供者的信息。

在一些实施例中,线上到线下服务系统100的一个或多个部件的信息交换可以通过请求一个服务的方式实现。服务请求的客体可以是任一产品。在一些实施例中,所述产品可以包括食品、医药、商品、化学产品、电器、衣物、小汽车、房屋、奢侈品等或上述举例的任意组合。在一些实施例中,所述产品可以包括服务产品、金融产品、知识产品、互联网产品等或上述举例的任意组合。互联网产品可以包括个人主机产品、网站产品、行动互联网产品、商业主机产品、嵌入式产品等或上述举例的任意组合。移动互联网产品可以用于移动终端的软件、程序、系统等或上述举例的任意组合。移动终端可以包括平板计算机、膝上型计算机、移动手机、掌上计算机(pda)、智能手表、销售点(pos)装置、车载计算机、车载电视、随身装置等或上述举例的任意组合。例如,所述产品可以是用于计算机或移动手机中的任意的软件和/或应用程序。所述软件和/或应用程序可以与社交、购物、交通、娱乐、学习、投资等或上述举例的任意组合有关。在一些实施例中,所述与交通相关的软件和/或应用程序可以包括出行软件和/或应用程序、交通工具调度软件和/或应用程序、地图软件和/或应用程序等。在所述交通工具调度软件和/或应用程序中,交通工具可以包括马、马车、人力车(例如独轮手推车、自行车、三轮车等)、汽车(例如,出租车、公共汽车、私家车等)、火车、地铁、船舶、飞行器(例如,飞机、直升机、航天飞机、火箭、热气球等)等其任意组合。

图2是根据本申请的一些实施例所示的一个计算装置200的示例性硬件和软件的示意图。服务器110、服务请求者终端130和/或服务提供者终端140可以在计算装置200上实现。例如,处理引擎112可以在计算装置200上实现并被配置为实现本申请中所披露的功能。

计算装置200可以是通用计算机或专用计算机;两者都可以被用于实现本申请公开的线上到线下服务系统。计算装置200可以用来实现本申请所描述的线上到线下服务的任意部件。例如,处理引擎112可以在计算装置200上通过其硬件、软件程序、固件或其组合实现。虽然只示出了一个这样的计算机,但为了方便起见,与在此描述的线上到线下服务相关的计算机功能可以以分布式的方式在多个类似平台上实现,以分散处理负载。

例如,计算装置200可以包括与网络连接的通讯端口250,以促进数据通讯。计算装置200还可以包括处理器(例如处理器220),以一个或多个处理器的形式用于执行程序指令。示例性计算装置可以包括内部通信总线210,不同形式的程序存储器和数据存储,包括例如磁盘270和只读存储器(rom)230,或随机访问存储器(ram)240,用于由计算设备处理和/或传输各种数据文件。示例性计算装置也可以包括储存于只读存储器(rom)230、随机访问存储器(ram)240,和/或其他形式的非暂时性储存媒体中的能够被处理器220执行的程序指令。本申请公开的方法及/或过程可以作为程序指令来实施。计算装置200还包括i/o组件260,支持计算机和其他组件之间的输入/输出。计算装置200也可以通过网路通讯接收程序和数据。

仅仅为了说明,图2中仅示出了一个cpu和/或处理器。也考虑多个cpu和/或处理器;因此本发明中所描述的由一个cpu和/或处理器执行的操作和/或方法步骤也可以由多个cpu和/或处理器共同地或独立地执行。例如,如果在本申请中,计算装置200的cpu和/或处理器执行步骤a和步骤b,应当理解的是,步骤a和步骤b也可以由计算装置200的两个不同的cpu和/或处理器共同地或独立地执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同地执行步骤a和步骤b)。

图3是根据本申请公开的一些实施例所示的移动设备300的示例性硬件组件和/或软件组件的示意图。如图3所示,移动装置300可以包括通信模块310、显示器320、图形数据处理单元(gpu)330、处理器340、输入/输出接口350、内存360和存储器390.在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未显示),也可被包括于移动装置300内。在一些实施例中,移动操作系统370(如,iostm,androidtm,windowsphonetm)和一个或多个应用380可以从存储器390加载到内存360中以便由cpu340执行。应用程序380可以包括浏览器或用于从服务器110发送,接收和呈现与车辆150的状态(例如,车辆150的位置)有关的信息的任何其他合适的应用程序。用户交互信息可以经由输入/输出350获取,并经由网络120提供给处理引擎112和/或线上到线下服务系统100的其他组件。

图4是根据本申请公开的一些实施例所示的示例性处理引擎的框图。处理引擎112可以包括获取模块402,确定模块404,生成模块406,遍历模块408,比较模块410以及传输模块412。处理引擎112的至少一部分可以在如图2所示的计算装置或图3所示的移动装置上实现。

获取模块402被配置为经由网络120获取与地理区域有关的数据的请求。所述地理区域包括多个地理位置点。所述多个地理位置点是与以下中的至少一个相关联:人的轨迹、动物的轨迹、交通工具的轨迹、建筑物有关的信息或与道路有关的信息。与地理区域相关的数据可以以地图信息的形式来体现。

确定模块404可以被配置为确定多个数据组,所述这数据组用于存储与所述多个地理的区域相关的数据。该数据可以与地理区域的多个地理位置点相关联。在一些实施例中,数据可以包括与地理区域有关的空间元素数据。确定模块404可以确定与所述多个地理位置点相关联的多个希尔伯特距离。对于每个地理位置点,确定模块404可以确定希尔伯特距离。确定模块404可以将所述多个希尔伯特距离指定为所述多个空间索引值。在一些实施例中,确定模块404可以确定与具有相同的空间索引值的地理位置点相关联的数据。确定模块404可以进一步将与相同空间索引值相关联的数据存储到数据组中。这样,处理引擎112可以确定多个数据组,每个数据组对应于空间索引值(和希尔伯特距离)。

生成模块406被配置为基于所述多个数据组生成的优先队列。生成模块406可以基于多个空间索引值以及地理区域确定优先队列。在一些实施例中,优先队列可以包括多个缓冲范围数据。每个缓冲范围数据可以包括多个队列索引值。缓冲范围数据可以与地理区域的一部分相关联。在一些实施例中,缓冲范围数据可以包括范围数据和缓冲数据。缓冲数据可以对应于围绕地理区域的第一部分的地理位置点;缓冲数据可以对应于围绕该地理区域的一部分的地理位置点。

遍历模块408可以被配置为从与所述这空间索引值中的最小相关联的数据组开始遍历所述数据组。遍历模块408还可以还基于所述多个空间索引值,以升序排列所述这数据组。遍历模块408也可以生成有序数据组。遍历模块408可以从包含最小空间索引值的数据组开始,遍历有序数据组。

遍历模块408可以遍历有序数据组。在一些实施例中,处理引擎112可以确定多个空间索引值中的最小空间索引值。处理引擎112可以从具有最小空间索引值的数据组开始遍历有序数据组。

比较模块410可以被配置为确定当前遍历的数据组的空间索引值是否等于或大于所述第一参考索引值。如果比较模块410确定当前遍历的数据组的空间索引值等于或大于第一参考索引值,则比较模块410可确定多个第一高速缓存中的每一个可能已经存储了相应的数据。在这种情况下,第一缓冲范围数据可以准备好传输给用户。在一些实施例中,与地理区域的第一部分有关的数据(例如,第一缓冲范围数据)可以以地图的形式传输给用户。该地图可以包括以下中的至少一个:人的踪迹,动物的踪迹,交通工具的痕迹,与建筑物有关的信息或者与道路有关的信息。

在一些实施例中,比较模块410可从优先队列中确定第一缓冲范围数据。第一缓冲范围数据可以包括参考索引值。比较模块410可以更新优先队列。比较模块410还可以基于更新后的优先队列,更新第一缓冲范围数据和第一参考索引值。

传输模块412可以被配置为响应于确定所述当前遍历的高速缓存的所述空间索引值等于或大于所述第一参考索引值,向所述用户终端(例如,服务请求者终端130、服务提供者终端140)发送第一缓冲范围数据。第一缓冲范围数据可以以地图信息的形式发送到用户终端。

存储模块414可以被配置为将遍历数据组的数据存储到对应的高速缓存。存储模块414可以确定与遍历数据组相关联的空间索引值。相应的高速缓存的队列索引值可能等于遍历了的数据组的空间索引值。存储模块414可以将遍历了的数据组的数据存储到相应的高速缓存中。

需要注意的是,以上对于处理引擎112的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,变化和修改不会背离本申请的范围。例如,确定模块404和生成模块406可以被集成到单个模块中以执行它们的功能。

图5是根据本申请公开的一些实施例所示的用于向客户终端传输与地理区域的第一部分有关的数据的示例性过程的流程图。在一些实施例中,处理引擎112可以执行步骤500以向用户终端传输与地理区域的第一部分有关的数据。在一些实施例中,图5中所示的用于向用户终端发送与地理区域的第一部分有关的数据的流程500的一个或多个操作可以在图1所示的线上到线下服务系统100中实现。例如,图5中所示的流程500可以以指令的形式存储在存储设备160中,并且由处理引擎112(例如,如图2所示的计算装置200的处理器220,如图3所示的移动装置300的处理器340)调用和/或执行。

在502中,处理引擎112(例如,获取模块402)可以经由网络120获取与该地理区域数据的请求。所述地理区域包括多个地理位置点。所述多个地理位置点是与以下中的至少一个相关联:人的轨迹、动物的轨迹、交通工具的轨迹、建筑物有关的信息或与道路有关的信息。与地理区域相关的数据可以以地图信息的形式来体现。在一些实施例中,用户可以经由用户终端(例如,服务请求者终端130)在地理区域的开始位置打开应用程序呼叫出租车(或者操作导航应用程序),这意味着用户可以请求与地理区域有关的数据。服务请求者终端130可以经由网络120发送该请求到服务器110。

在一些实施例中,用户可以是对地理区域感兴趣。例如,用户希望在该地理区域旅行。用户可能计划从起点到达目的地。地理区域可以包括起点和目的地。用户可以经由用户终端(例如,服务请求者终端130,服务提供者终端140)请求与地理区域有关的数据。这样,处理引擎112可直接或间接地从用户终端获得对与地理区域有关的数据的请求。

在一些实施例中,地理区域可以与历史服务订单相关联。如此处所使用的,术语“历史服务订单”通常是指已经完成的服务请求。例如,请求者可以向线上到线下服务系统100发送服务(例如,运输服务)请求。服务提供者可以接受服务请求并将该服务提供给请求者,指示该服务请求已完成。线上到线下服务系统100可以将该服务请求作为历史服务订单保存到存储设备(例如,存储设备160)中。

历史服务订单可以包括历史起点和历史目的地。地理区域可以包括历史起点、历史目的地以及与路线有关的地理位置点。服务提供者可以开车将请求者从路线上的起点送到目的地。路线可以指示与用户(例如,服务请求者,服务提供者)或车辆相关联的轨迹。当用户希望搜索与历史订单相关联的历史起点或历史目的地时,用户可以经由用户终端(例如,服务请求者终端130,服务提供者终端140)请求与地理区域相关的数据。这样,处理引擎112可以直接从用户终端或存储历史服务订单的存储设备(例如,存储设备160,磁盘270)获得对与地理区域有关的数据的请求。

在504中,处理引擎112(例如,确定模块404)可确定多个数据组,数据组用于存储与所述地理区域的数据。数据可以与地理区域的多个地理位置点相关联。在一些实施例中,数据可以包括与地理区域有关的空间元素数据。例如,该数据可以包括地理区域中的以下中的至少一个:人的踪迹,动物的踪迹,交通工具的痕迹,与建筑物有关的信息或者与道路有关的信息。与建筑物有关的信息可以包括建筑物的高度,建筑物的位置,建筑物的一个或多个出口,建筑物的一个或多个入口等或其组合。有关道路的信息可以包括道路的,道路的宽度,与道路、道路的交通状况、或其他、或它们的组合相关联的交叉点。

在一些实施例中,处理引擎112可确定多个与所述多个地理位置点相关联的希尔伯特距离。对于每个地理位置点,处理引擎112可以确定希尔伯特距离。如本文所使用的,希尔伯特距离是指希尔伯特空间中的距离。处理引擎112可以将希尔伯特距离指定为多个空间索引值。在本申请中,“希尔伯特距离”和“空间索引值”可以互换使用。处理引擎112可以基于多个希尔伯特距离来确定与多个地理位置点相关的空间索引值。空间索引值可以是允许用户索引空间数据(例如,与地理位置点相关的数据)的一种扩展索引。

在一些实施例中,处理引擎112可确定与具有相同的空间索引值(即,相同的希尔伯特距离)的地理位置点的数据。处理引擎112还可以将与相同空间索引值相关联的数据存储到数据组中。这样,处理引擎112可以确定多个数据组,每个数据组对应于空间索引值(即,希尔伯特距离)。具有相同希尔伯特距离的地理位置点可以被分组,并形成所述地理区域的一个子区域。

在506中,处理引擎112(例如,生成模块406)可以基于多个数据组生成优先队列。优先队列可以包括第一缓冲范围数据。所述第一缓冲范围数据与多个第一队列索引值、第一参考索引值和所述地理区域的第一部分可以是相关联。在一些实施例中,优先队列可以是类似于常规队列或堆栈数据结构的数据类型。

处理引擎112可以基于多个空间索引值以及地理区域确定优先队列。在一些实施例中,优先队列包括多个缓冲范围数据。图9是根据本申请公开的一些实施例所示的示例性的优先队列的示意图。如图9所示,优先队列900可以包括第一缓冲范围数据902和第二缓冲范围数据904。第一缓冲范围数据902可以对应于6*6正方形。第二缓冲范围数据904可以对应于另一个6*6正方形。如这里所使用的,6*6正方形可以指6*6正方形的宽度和长度都是6,假定每个最小正方形的边的长度是1。

每个缓冲范围数据可以包括多个队列索引值。例如,第一缓冲范围数据902可以包括多个第一队列索引值。如图9所示,多个第一队列索引值可以包括8-11以及24-55。第一参考索引值可以是多个第一队列索引值中的最大值,即55。第一缓冲范围数据902可以是与地理区域的第一部分相关联。多个第一队列索引值可以对应于与地理区域的第一部分相关联的多个空间索引值。

第二缓冲范围数据904可以包括多个第二队列索引值。如图9所示,多个第二队列索引值可以包括0-19,28-35,以及52-59。第二参考索引值可以是多个第二队列索引值中的最大值,即59。第二缓冲范围数据可以与地理区域的第二部分相关联。多个第二队列索引值可以对应于与地理区域的第二部分相关联的多个空间索引值。

在一些实施例中,每个优先队列中的多个缓冲范围数据可以包括多个队列索引值。对于多个缓冲范围数据中的每一个,处理引擎112可以确定多个队列索引值中的最大队列索引值。处理引擎112可以确定多个最大队列索引值,每个最大队列索引值与多个缓冲范围数据中的一个相关联。处理引擎112可确定最大队列索引值中的最小值。处理引擎112可以将与最小值相关联的缓冲范围数据作为第一缓冲范围数据。如图9所示,例如,与第二缓冲范围数据相关联的第二参考索引值是59。与第一缓冲范围数据相关联的第一参考索引值是55,并且小于第二参考索引值(即,59)。

在一些实施例中,两个缓冲范围数据可以是重叠的。如图9所示,第一缓冲范围数据902和第二缓冲范围数据904可以包括共享高速缓存。共享高速缓存可对应于队列索引值为8-11,28-35和52-55的最小正方形。

在一些实施例中,缓冲范围数据可以包括范围数据和缓冲数据。例如,如图9所示,第一缓冲范围数据可以包括第一范围数据906和第一缓冲数据908。第一范围数据906可以对应于4*4正方形。第一缓冲数据908可以对应于等于第一缓冲范围数据902的区域减去第一范围数据906的区域的区域。如图9所示,第一范围数据对应于其第一队列索引值为32-47的最小正方形。第一缓冲数据对应于第一队列索引值为8-11,24-31和48-55的最小正方形。第一缓冲数据908可以围绕第一范围数据906。

第二范围数据910可以对应于4*4正方形。第二缓冲数据912可以对应于等于第二缓冲范围数据904的区域减去第二范围数据910的区域的区域。如图9所示,第二范围数据对应于第二队列索引值为0-15的最小正方形。第二缓冲数据对应于其第二队列索引值为16-19、28-35以及52-59的最小正方形。第二缓冲数据912可以围绕第二范围数据910。

应当注意的是,以上关于第一缓冲范围数据902和缓冲范围数据904的描述是为了说明的目的而提供的,并不应该被指定为唯一的实际实施例。例如,缓冲范围数据可以位于优先队列的中间。第一缓冲范围数据902的大小和第二缓冲范围数据904的大小可以不同。第一缓冲范围数据902和第二缓冲范围数据904可以间隔开。

在一些实施例中,第一范围数据可以对应于地理区域第一部分的地理位置点;第二范围数据可以对应于地理区域第二部分的地理位置点;等等。第一缓冲数据可以对应于围绕地理区域第一部分的地理位置点;第二缓冲数据可以对应于围绕地理区域第二部分的地理位置点;等等。

在一些实施例中,每个缓冲范围数据可以包括多个高速缓存。如图9所示,每个最小正方形可以是高速缓存。例如,第一缓冲范围数据可以包括多个第一高速缓存。第一高速缓存可以对应于其第一队列索引值为0-19,28-35以及52-59的最小正方形。高速缓存可以对应于队列索引值。不同的高速缓存可以对应不同的队列索引值。这些高速缓存可以存储与数据组相关联的数据。高速缓存可以将数据存储到相应的数据组中。高速缓存的队列索引值和与相应的数据组相关联的空间索引值可以相同。例如,高速缓存响应于队列索引值1可以存储与空间索引值为1的数据组相关的数据。

在508中,处理引擎112(例如,遍历模块408)可以从与最小空间索引值相关联的数据组开始遍历数据组。如结合步骤504所描述的,每个数据组可具有对应的空间索引值。处理引擎112可以基于多个空间索引值以升序排列数据组。处理引擎112也可以生成有序数据组。

处理引擎112可遍历有序数据组。在一些实施例中,处理引擎112可以确定多个空间索引值中的最小空间索引值。处理引擎112可以从具有最小空间索引值的数据组开始遍历有序数据组。

在一些实施例中,处理引擎112可确定当前遍历数据组的空间索引值。处理引擎112可以确定与当前遍历数据组相关联的对应的高速缓存。相应的高速缓存的队列索引值可以是等于当前遍历数据组的空间索引值。处理引擎112可以将当前遍历的数据组的数据存储到相应的高速缓存中。

例如,最小空间索引值可以是1。处理引擎112可以首先遍历具有最小空间索引值的数据组(即,1)。处理引擎112可以将具有最小空间索引值的数据组的数据存储到队列索引值为1的高速缓存中(以下也称为“高速缓存1”)。处理引擎112可以遍历空间索引值为2的数据组(以下也称为“数据组2”)。处理引擎112可以将数据组2的数据存储到高速缓存2中。处理引擎112可以遍历数据组3。处理引擎112可以将数据组3的数据存储到高速缓存3中,以此类推。处理引擎112可以遍历所有的数据组。

在510中,处理引擎112(例如,比较模块410)可以确定当前遍历数据组的空间索引值是否等于或大于第一参考索引值。第一参考索引值可以是多个第一空间索引值中最大的空间索引值。如果处理引擎112确定当前遍历数据组的空间索引值等于或大于第一参考索引值,则处理引擎112可以确定多个第一高速缓存中的每一个可以拥有存储的对应数据。在这种情况下,第一个缓冲范围数据可以被准备输送给用户。在一些实施例中,第一缓冲范围数据可以以地图的形式传输给用户。地图可以包括以下中的至少一个:人的轨迹、动物的轨迹、交通工具的轨迹,与建筑物有关的信息或与道路有关的信息。

在512中,处理引擎112(例如传输模块412)响应于确定当前遍历的高速缓存的空间索引值等于或大于第一参考索引值,可以向用户终端(例如,服务请求者终端130,服务提供方终端140)传输第一缓冲范围数据(例如,与地理区域的第一部分相关联的数据)。如果处理引擎112确定当前遍历数据组的空间索引值小于第一参数索引值,则处理引擎112可以确定至少一些第一高速缓存可以是空的。在这种情况下,第一个缓冲范围数据可能还没有准备好。处理引擎112可以继续遍历剩余的数据组。当遍历剩余的数据组时,处理引擎112可以将数据存储到空的第一高速缓存中。

应当注意的是,以上关于向用户终端传输与地理区域的第一部分相关联的数据的流程是为了说明的目的而提供的,并不应该指定为唯一的实际实施例。对于本领域技术人员在理解向用户终端传输与地理区域的第一部分相关联的数据的流程的一般原理之后,在不脱离原则的情况下,可以修改或改变形式或具体实际方法和步骤的细节,以及进一步做出简单的推导或替换,或者可以对某些步骤进行修改或组合,而无需进行创造性的努力。然而,变化和修改不会离开本申请的范围。附加地或可选地,一个或多个步骤可以是省略。在一些实施例中,两个或更多步骤可以被集成到一个步骤中,或者一个步骤可以被分成两个步骤。在一些实施例中,504和506可以被合并成一个操作。

图6是根据本申请公开的一些实施例所示的用于将遍历数据组的数据存储到相应的高速缓存的示例性过程的流程图。在一些实施例中,处理引擎112可以执行流程600以将遍历数据组的数据存储到高速缓存中。在一些实施例中,图6中所示的用于将遍历数据组的数据存储到高速缓存的流程600的一个或多个操作可以在图1所示的线上到线下服务系统100上实现。例如,如图6所示的流程600可以以指令的形式存储在存储设备160中,并且由处理引擎112(例如,如图2所示的计算装置200的处理器220,如图3所示的移动装置300的处理器340)调用和/或执行。

在602中,处理引擎112(例如,遍历模块408)可以基于多个空间索引值,升序排列多个数据组,以生成有序数据组。在一些实施例中,要排列的数据组可以是在本申请其他地方描述的过程500的步骤506中产生的数据组,并且可以根据步骤604-608执行流程500的步骤508-512。在一些实施例中,每个数据组可以对应于空间索引值。处理引擎112可以基于多个空间索引值以升序排列多个数据组。处理引擎112也可以生成有序数据组。

在604中,处理引擎112(例如,遍历模块408)可以从与所述多个空间索引值中的最小的空间索引值相关联的数据组开始遍历有序数据组。处理引擎112可以确定多个空间索引值中的最小空间索引值。处理引擎112可以确定与最小空间索引值相关联的数据组。处理引擎112可以从与最小空间索引值相关联的数据组开始遍历多个数据组。

在606中,处理引擎112(例如,遍历模块408)可确定遍历数据组的数据。处理引擎112还可以确定与遍历数据组相关联的空间索引值。

在608中,处理引擎112(例如,存储模块414)可以将遍历数据组的数据存储到对应的高速缓存。如步骤606中所描述,所述遍历数据组的数据可与空间索引值相关联(下文中称为“遍历空间索引值”)。相应高速缓存的队列索引值可等于遍历空间索引值。处理引擎112可以将遍历的数据组的数据存储到相应的高速缓存中。

在一些实施例中,如步骤506中所描述的,两个缓冲范围数据可包括共享高速缓存。如果处理引擎112将遍历数据组的数据存储到共享高速缓存中,处理引擎112可以将遍历数据组的数据存储到包括共享高速缓存的两个缓冲范围数据中。例如,如图9所示,如果当前遍历的数据组的空间索引值是28,则处理引擎112可以将遍历的数据组的数据存储在第一缓冲范围数据902中的高速缓存28中,和第二缓冲范围数据904中的高速缓存28中。如这里所使用的,高速缓存28可以是指其队列索引值是28的高速缓存。对于其空间索引值小于当前遍历数据组的空间索引值的数据组,处理引擎112可将数据组的数据存储到优先队列(例如,一个或多个缓冲区范围数据)中。

应当注意以上关于将该遍历数据组的数据存储到缓存中的流程的描述是为了说明目的而提供的,并不应该指定为唯一实际的实施例。对于本领域技术人员在理解将缓存中的遍历数据组的数据存储到缓存中的流程的基本原理后,可以在不脱离原理的情况下,可以修改或改变形式或具体实际方法和步骤的细节,以及进一步做出简单的推导或替换,或者可以对某些步骤进行修改或组合,而无需进行创造性的努力。然而,变化和修改不会离开本申请的范围。附加地或可选地,一个或多个步骤可以是省略。在一些实施例中,两个或多个步骤可以被集成到一个步骤中,或者一个步骤可以被分成两个步骤。在一些实施例中,606以及608可以组合成一个操作。

图7是根据本申请公开的一些实施例所示的用于确定指定的第一缓冲范围数据和指定的第一参考索引值的示例性过程的流程图。在一些实施例中,处理引擎112可以执行流程700以确定指定的第一缓冲范围数据和指定的第一参考索引值。在一些实施例中,图7中所示的用于确定指定的第一缓冲范围数据和指定的第一参考索引值的流程700的一个或多个操作可以在如图1所示的在线上到线下服务系统100上被实现。例如,如图7所示的流程700可以以指令的形式存储在存储设备160中,并且由处理引擎112(例如,如图2所示的计算装置200的处理器220,如图3所示的移动装置300的处理器340)调用和/或执行。在一些实施例中,可以基于确定当前遍历数据组的空间索引值是否等于或大于第一参考值索引值的流程700执行流程500的步骤510。

在702中,处理引擎112(例如,比较模块410)可以从优先队列获取与多个第二队列索引值相关联的第二缓冲范围数据。类似于第一缓冲范围数据,第二缓冲范围数据可以与多个第二队列索引值、地理区域的第二部分和第二参考索引值相关联。在一些实施例中,地理区域的第一部分和地理区域的第二部分可以重叠,彼此邻接或者间隔开。

第二缓冲范围数据可包括多个第二高速缓存。多个第二队列索引值可以对应于多个第二高速缓存。例如,每个第二高速缓存可以对应于第二队列索引值。不同的第二高速缓存可能具有不同的第二队列索引值。

在704中,处理引擎112(例如,比较模块410)可确定多个第二队列索引值中最大的第二队列的索引值,并将它指定为所述第二参考索引值。

在706中,处理引擎112(例如,比较模块410)可确定第二参考索引值是否小于第一参考索引值。处理引擎112可以将第二参考索引值与第一参考索引值进行比较。处理引擎112可以确定第二参考索引值是否小于第一参考索引值。

在708中,处理引擎112(例如,比较模块410)可响应于确定第二参考索引值小于第一参考索引值的情况下,指定第二缓冲范围数据作为第一缓冲范围数据。

在710中,处理引擎112(例如,比较模块410)可以响应于确定第二参考索引值小于第一参考索引值,指定第二参考索引值作为第一索引值。处理引擎112还可以响应于确定第二参考索引值小于第一参考值索引值,将地理区域的第二部分指定为地理区域的第一部分。如果处理引擎112确定第二参考索引值等于或大于第一参考索引值,则第一缓冲范围数据可以保持为第一缓冲范围数据。

在712中,处理引擎112(例如,比较模块410)可确定当前遍历数据组的空间索引值是否等于或大于指定的第一参考索引值。处理引擎112可以获得或确定当前遍历数据组的空间索引值。处理引擎112可将当前遍历数据组的空间索引值与指定的第一参考索引值进行比较。处理引擎112可以确定当前遍历数据组的空间索引值与指定的第一参考索引值之间的较大值和/或较小值。

如果处理引擎112确定当前遍历数据组的空间索引值等于或大于指定的第一参考索引值,处理引擎112可输出指定的第一缓冲数据范围。处理引擎112可以将第一缓冲范围数据发送到用户终端(例如,服务请求者终端130,服务提供者终端140)。如果处理引擎112确定当前遍历数据组的空间索引值小于指定的第一参考索引值,则处理引擎112可以继续遍历数据组。

应当注意以上关于确定指定的第一缓冲范围数据和第一参考索引值的流程的描述是为了说明目的而提供的,并不应该指定为唯一的实际实施例。对于本领域技术人员在理解指定第一缓冲范围数据和指定第一参考索引值的流程的一般原则后,可以在不脱离原理的情况下,可以修改或改变形式或具体实际方法和步骤的细节,以及进一步做出简单的推导或替换,或者可以对某些步骤进行修改或组合,而无需进行创造性的努力。然而,变化和修改不会离开本申请的范围。附加地或可选地,一个或多个步骤可以是省略。在一些实施例中,两个或多个步骤可以被集成到一个步骤中,或者一个步骤可以被分成两个步骤。在一些实施例中,708和710可以被合并成一个操作。

图8是根据本申请公开的一些实施例所示的用于遍历多个数据组的示例性过程的流程图。在一些实施例中,处理引擎112可以执行流程800以遍历多个数据组。在一些实施例中,图8中所示的用于遍历多个数据组放入流程800的一个或多个操作可以在图1所示的线上到线下服务系统100上实现。例如,如图8所示的流程800可以以指令的形式存储在存储设备160中,并且由处理引擎112(例如,如图2所示的计算装置200的处理器220,如图3所示的移动装置300的处理器340)调用和/或执行。

在802中,处理引擎112(例如,遍历模块408)可以遍历多个数据组。遍历多个数据组的更多描述可以在本申请的其他地方找到(例如,图5-7及其描述)。

在804中,处理引擎112(例如,存储模块414)可以将遍历数据组的数据存储到高速缓存。将遍历数据组的数据存储到高速缓存中的更多描述可以在本申请的其他地方找到(例如,图5-7及其描述)。

在806中,处理引擎112(例如,比较模块410)可确定第一缓冲范围数据中的每个高速缓存是否已经存储了对应的数据组的数据。处理引擎112可以确定当前遍历数据组的空间索引值。处理引擎112可将当前遍历数据组的空间索引值与第一参考索引值进行比较。如果当前遍历数据组的空间索引值等于或大于第一参考索引值,则处理引擎112可确定第一缓冲范围数据中的每个高速缓存存储对应数据组的数据。如果当前遍历数据组的空间索引值小于第一参考索引值,则处理引擎112可遍历剩余数据组并将数据存储到第一缓冲范围数据中的空高速缓存中。

在一些实施例中,第一缓冲范围数据可以包括与所述地理区域的第一部分有关的数据。与地理区域的第一部分有关的数据可以是地图信息的形式。该地图信息可以包括以下中的至少一个:人的踪迹,动物的踪迹,交通工具的痕迹,与建筑物有关的信息或者与道路有关的信息。

在808中,处理引擎112(例如,传输模块412)可以响应于确定第一缓冲范围数据中的每个高速缓存存储了相应的数据组的数据,从优先队列中输出第一缓冲范围数据。在一些实施例中,处理引擎112可以以地图信息的形式向用户终端(例如,服务请求者终端130,服务提供者终端140)传输第一缓冲范围数据。

在810中,处理引擎112(例如,生成模块406)可以通过从优先队列中移除第一缓冲范围数据来更新优先队列。这样,处理引擎112可以确定或获取更新的优先队列。

在812中,处理引擎112(例如,生成模块406)可以获取新的第一缓冲范围数据以及基于更新的优先队列的新的第一参考值索引值。如结合步骤506所描述的,处理引擎112可以确定与更新的优先队列相关联的多个最大队列索引值。处理引擎112可以确定多个最大队列索引值中最小的队列索引值。处理引擎112可以从更新的优先队列中将与最小值相关联的缓冲范围数据相关联指定为新的第一缓冲范围数据。

新的第一缓冲数据范围可包括多个新的第一队列索引值。处理引擎112可以将多个新的第一队列索引值中的最大的第一队列索引值指定为新的第一参考索引值。

在814中,处理引擎112(例如,比较模块410)可确定当前遍历数据组的空间索引值是否等于多个空间索引值中的最大的空间索引值。如果当前遍历数据组的空间索引值小于多个空间索引值中的最大空间索引值,则处理引擎112可以返回到802并执行本申请中所描述的步骤802至814。在802中,处理引擎112可以继续遍历剩余的数据组。在804中,处理引擎112可以将新的遍历数据组的数据存储到相应的高速缓存中。在806中,处理引擎112可以确定新的第一缓冲范围数据中的每个高速缓存是否存储了对应的数据组的数据。在808中,处理引擎112可以响应于确定缓冲范围数据中的每个高速缓存已存储相应数据组的数据,从优先队列中输出新的第一缓冲范围数据。在810中,处理引擎112可通过从更新的优先队列中移除新的第一缓冲区范围数据来更新更新的优先队列。在812中,处理引擎112可以继续更新新的第一缓冲范围数据并更新新的第一参考索引值。

如果当前遍历数据组的空间索引值等于多个空间索引值中的最大的空间索引值,处理引擎112可以遍历所有的多个数据组。流程800可以在816结束。

应当注意以上关于遍历多个数据组的流程的描述,为了说明的目的提供,不应该指定为唯一的实际实施例。对于本领域技术人员在了解遍历多个数据组的一般原则后,在不脱离原理的情况下,可以修改或改变特定实用方式的形式或细节以及步骤,以及进一步进行简单的推导或替换,或者可以在不进行创造性努力的情况下对某些步骤进行修改或组合。然而,变化和修改不会离开本申请的范围。附加地或可选地,一个或多个步骤可以是省略。在一些实施例中,两个或多个步骤可以被集成到一个步骤中,或者一个步骤可以被分成两个步骤。

上文已对基本概念做了描述,显然,对于已阅读此详细揭露的本领域的普通技术人员来讲,上述详细揭露仅作为示例,而并不构成对本申请的限制。虽然此处并没有明确说明,本领域具有通常知识者可以对本申请进行各种修改、改进和修正。这些改变,改进和修改旨在由本申请提出并且在本申请的示例性实施例的精神和范围内。

同时,本申请使用了特定术语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提到的“实施例”、“一个实施例”或“替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

另外,对于本领域的技术人员来说,本申请中的实施例可能涉及到一些新的流程、方法、机器、产品或者与它们相关的改进。因此,本申请的实施例可以在纯硬件或纯软件中实施,其中软件包括但不限于操作系统、常驻软件或微代码等;也可以在同时包含硬件和软件的“系统”、“模块”、“子模块”、“单元”等中实施。此外,本申请的各方面可以呈现为位于一个或多个计算机可读介质中的计算机产品,该产品具有计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。此类传播讯号可以有多种形式,包括电磁、光学等或其任何适当的组合形式。计算机可读信号介质可以是除计算机可读储存介质之外的任何计算机可读介质,所述介质可以通过连接至一个指令执行系统、装置或装置以实现通讯、传播或传输供使用的程序。位于计算机可以读信号媒体上的程序编码可以通过任何合适的媒体进行传播,包括无线电、电缆、光纤缆线、rf、或类似媒体、或任何上述媒体的组合。

本申请各方面步骤所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象程序设计,如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net,python或类似的常规程序编程语言,如“c”编程语言,visualbasic,fortran1703,perl,cobol1702,php,abap,动态编程语言如python,ruby和groovy或其它编程语言。所述程序设计编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网络(lan)或广域网路(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解此类细节仅起说明的目的,附加的申请专利范围并不仅限于披露的实施例,相反,申请专利范围旨在覆盖所有符合本申请实施例精神和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件装置实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动装置上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。相反,要求保护的主题可能少于单个前述公开的实施例的全部特征。

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