首页> 中国专利> 用于识别地图中地理区域的网格的系统和方法

用于识别地图中地理区域的网格的系统和方法

摘要

用于识别地图中包括至少两个独立索引的网格区域的地理围栏的网格的人工智能系统和方法。所述地图被网格化为至少两个网格并分成至少两个分区。所述方法包括在地图中获取所述地理围栏的信息,以及从所述至少两个网格确定地理围栏的边界网格列表。所述方法包括识别所述地理区域中的至少一个封闭区域,并且在确定封闭区域跨越两个或以上分区时,将封闭区域分割成两个或以上子区域。所述方法还包括确定每个子区域的边界网格,以及识别每个子区域中的子区域的内部网格。所述方法还包括通过收集所述边界网格和所述内部网格来识别所述地理区域中的网格。

著录项

  • 公开/公告号CN110785797A

    专利类型发明专利

  • 公开/公告日2020-02-11

    原文格式PDF

  • 申请/专利权人 北京嘀嘀无限科技发展有限公司;

    申请/专利号CN201880038351.8

  • 申请日2018-06-06

  • 分类号

  • 代理机构成都七星天知识产权代理有限公司;

  • 代理人杨永梅

  • 地址 100193 北京市海淀区东北旺路西路8号院34号楼

  • 入库时间 2023-12-17 07:13:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2020-03-06

    实质审查的生效 IPC(主分类):G08G1/13 申请日:20180606

    实质审查的生效

  • 2020-02-11

    公开

    公开

说明书

技术领域

本申请涉及图形识别系统,尤其涉及响应用户请求识别巨大地理区域的系统和方法。

背景技术

有效地确定地理区域中的网格对于许多现有技术是至关重要的,例如自动驾驶和互联网线上到线下的服务,例如在线出租车服务。该技术帮助用户在地图中快速识别他/她所在的网格,从而访问与该网格相关的相应信息。例如,利用网格识别技术,线上到线下平台可以获取出租车司机附近的网格的服务需求信息,并相应地向出租车司机提供服务需求信息。对于旅游者而言,网格识别技术可以帮助线上到线下服务平台识别旅游者所在的网格,从而推送兴趣点(POI)或服务(食品或娱乐服务,或者旅游智能手机的电信基站)。在自动驾驶中,网格识别技术可以帮助自动驾驶车辆基于其位置识别其网格,从而与基站通信以进行信息通信。有时,用于搜索网格的地图的比例太大,即网格的数量太大,对于快速发现网格就变得困难。例如,当地理围栏的路线或边界延伸到大陆或洲际尺度的地图中,地图中的网格的数量可变为天文数字。因此,识别路线或地理围栏经过的网格就会很困难。考虑到世界上的网格基于区域分区,即区域分区,尤其如此。例如,对于世界地图中的不同分区,其中网格的索引是完全不同的。因此,当路线或地理围栏穿过区域分区的一个或以上时,搜索相应网格的工作量可能变得特别困难。因此,期望提供用于确定地图中的地理区域中的网格的有效系统和方法性。

发明内容

在本申请的一个方面,提供了一种人工智能系统,用于识别地图中包括至少两个独立索引的网格区域的地理围栏的网格。人工智能系统可以包括与至少一个存储介质通信的至少一个存储介质和至少一个处理器。所述至少一个存储介质可以存储地图和存储用于识别地理区域的指令集。当执行该指令集时,可以指示该至少一个处理器将该地图的至少一部分从所述至少一个存储介质加载到至少一个高速缓存电路,并生成所述至少部分地图的表示。该地图可以被网格化为至少两个网格并被分成至少两个分区。地图中的至少两个网格的每个网格可以与一个网格索引相关联,并且每个分区中的网格是独立地索引的。所述至少一个处理器还可以用于在地图中获取地理区域的地理围栏的信息,并从所述至少两个网格中确定所述地理围栏的边界网格列表。所述至少一个处理器还可以用于基于边界网格列表识别地理区域中的至少一个封闭区域。在确定所述至少一个封闭区域中的封闭区域跨越两个或以上分区时,可以指示所述至少一个处理器将所述封闭区域分割为两个或以上子区域,以使得两个或以上子区域的每个子区域只位于至少两个分区中的一个分区。该至少一个处理器还可以用于确定所述两个或以上子区域中的每个子区域的边界网格。对于两个或以上子区域中的每个子区域,该至少一个处理器还可以用于根据子区域的边界网格和子区域所在的分区的索引,从至少两个网格中识别子区域中的内部网格。所述至少一个处理器还可以通过收集两个或以上子区域的边界网格和两个或以上子区域中的内部网格来识别地理区域中的网格。

在本申请的另一方面,提供了一种用于识别地图中包括至少两个独立索引的网格区域中的地理围栏网格的方法。该方法可以在计算设备上实现,该计算设备具有至少一个存储介质的存储地图和用于识别地理区域的指令集,以及与该至少一个存储介质通信的至少一个处理器。该方法可以包括将至少部分地图从至少一个存储介质加载到至少一个高速缓存电路,并生成至少部分地图的表示。该地图可以被网格化为至少两个网格并被分成至少两个分区。地图中的至少两个网格的每个网格可以与一个网格索引相关联,并且每个分区中的网格是独立地索引的。该方法还可以包括在地图中获取地理区域的地理围栏的信息,并从至少两个网格中确定地理围栏的边界网格列表。该方法还可以包括基于边界网格列表识别地理区域中的至少一个封闭区域。在确定至少一个封闭区域中的封闭区域跨越两个或以上分区时,该方法可以包括将封闭区域分割成两个或以上子区域,以使得两个或以上子区域的每个子区域只位于至少两个分区中的一个分区。该方法还可以包括确定两个或以上子区域中的每个子区域的边界网格。对于两个或以上子区域中的每个子区域,该方法还可以包括根据子区域的边界网格和子区域所在的分区的索引,从至少两个网格中识别子区域中的内部网格。该方法还可以包括通过收集两个或以上子区域的边界网格和两个或以上子区域中的内部网格来识别地理区域中的网格。

在本申请的另一方面,提供了一种非暂时性计算机可读介质。非暂时性计算机可读介质可包括用于识别地理区域的至少一组指令。当由至少一个处理器执行时,所述至少一组指令可以指示所述至少一个处理器执行从所述至少一个存储介质访问地图并生成所述地图的表示的操作。该地图可以被网格化为至少两个网格并被分成至少两个分区。地图中的至少两个网格的每个网格可以与一个网格索引相关联,并且每个分区中的网格可以是独立地索引。所述至少一组指令还可以指示所述至少一个处理器执行在所述地图中获取所述地理区域的地理围栏的信息并从所述至少两个网格中确定所述地理围栏的边界网格列表的操作。所述至少一组指令还可以指示所述至少一个处理器基于所述边界网格列表执行识别所述地理区域中的至少一个封闭区域的操作。在确定所述至少一个封闭区域中的封闭区域跨越两个或以上分区时,所述至少一组指令可以指示所述至少一个处理器执行将所述封闭区域分割为两个或以上的操作,使得两个或以上子区域的每个子区域仅位于至少两个分区中的一个分区中。所述至少一组指令还可以指示所述至少一个处理器针对所述两个或以上子区域中的每个子区域执行确定边界网格的行为。对于两个或以上子区域中的每个子区域,所述至少一组指令还可以指示所述至少一个处理器基于子区域的边界网格和子区域所在的分区的索引来执行从至少两个网格中识别子区域中内部网格的操作。所述至少一组指令还可以指示所述至少一个处理器通过收集在两个或以上子区域中的边界网格和两个或以上子区域的内部网格来执行识别地理区域中的网格的操作。

在本申请的另一方面,提供了一种人工智能系统用于识别地图中的地理围栏的网格。该地图可以包括至少两个独立索引的网格区域。该人工智能系统可以包括至少一个地理围栏识别服务器,其上安装有用于识别地理围栏的网格的第一应用程序,以及至少一个用户终端,其可远程连接到地理围栏识别服务器并安装第二应用程序。当至少一个用户终端可以运作第二应用程序时,可以指示至少一个用户终端通过第一应用程序与地理围栏识别服务器建立有线或无线通信。该至少一个用户终端还可以用于从该至少一个用户终端的用户接收地理围栏的形状,以及通过有线或无线通信将所述地理围栏的形状发送到所述至少一个地理围栏识别服务器。人工智能系统还可以包括与至少一个地理围栏识别服务器通信的至少一个存储介质,存储地图以及用于识别地理区域的一组指令。当执行该组指令时,可以指示所述至少一个地理围栏识别服务器将所述地图的至少部分从所述至少一个存储介质加载到至少一个高速缓存电路并且生成至少部分的地图的表示。该地图可以被网格化为至少两个网格并被分成至少两个分区。地图中的至少两个网格中的每个网格可以与一个网格索引相关联,并且每个分区中的网格可以是独立索引的。该至少一个地理围栏识别服务器还可以用于获取地图中的地理围栏的信息,并从所述至少两个网格中确定地理围栏的边界网格列表。该至少一个地理围栏识别服务器还可以用于基于边界网格列表识别地理区域中的至少一个封闭区域。在确定该至少一个封闭区域中的封闭区域跨越两个或以上分区时,可以指示该至少一个地理围栏识别服务器将所述封闭区域分割为两个或以上子区域,使得每个子区域两个或以上子区域的区域仅位于至少两个分区中的一个分区。所述至少一个地理围栏识别服务器还可以用于确定两个或以上子区域中的每个子区域的边界网格。对于两个或以上子区域中的每个子区域,所述至少一个地理围栏识别服务器还可以根据子区域的边界网格和子区域所在分区的索引从所述至少两个网格中识别子区域的内部网格。该至少一个地理围栏识别服务器还可以通过收集两个或以上子区域的边界网格和两个或以上子中的内部网格来识别地理区域中的网格。该至少一个地理围栏识别服务器还可以用于将包括地理区域中的网格的信息的信号发送到至少一个用户终端,并生成至少一个用户终端上的地理区域中网格的表示。

在一些实施例中,地理围栏的信息可包括对应于至少两个边界点的坐标对。为了确定地理围栏的边界网格列表,该至少一个处理器可以还用于识别与至少两个网格对应的至少两个边界点的边界网格列表。所述至少一个处理器还可以用于执行一个或以上的以下操作,包括:从所述至少两个边界点获取两个相邻的边界点;确定所述两个相邻的边界点是否对应于相同的网格;响应于确定两个相邻的边界点对应于相同的网格,去除两个相邻点中的一个;响应于确定两个相邻的边界点对应于两个不同的网格,在所述两个相邻边界点之间插入一个边界点;并更新与至少两个边界点对应的边界网格列表。

在一些实施例中,边界网格列表可以包括地理围栏经过的地图的至少两个网格中的网格。为了识别所述至少一个封闭区域,至少一个处理器还可以用于确定边界网格列表是否包括一个或以上枢纽网格,其中一个枢纽网格对应于至少两个相同的网格索引。响应于确定边界网格列表包括一个或以上枢纽网格,对于该一个或以上枢纽网格中的每个枢纽网格,该至少一个处理器可以用于将地理区域中位于枢纽网格的一侧的区域识别为第一封闭区域以及将地理区域中位于枢纽网格另一侧的的区域作为识别为与第一封闭区域不同的第二封闭区域。

在一些实施例中,为了识别至少一个封闭区域,该至少一个处理器进一步用于生成空的堆栈和空的辅助图。对于边界网格列表的每个网格,所述至少一个处理器可以用于从边界网格列表中依次获取网格,并确定对应于网格的网格索引是否在该辅助图中。响应于确定所述网格索引不在所述辅助图中,所述至少一个处理器可以用于在堆栈中压入网格索引并将网格索引输入辅助图中。响应于确定网格索引在辅助图中,所述至少一个处理器可以用于将对应于网格索引的网格指定为一个或以上枢纽网格的一个枢纽网格,并将网格索引指定为一个枢纽网格索引,从堆栈中弹出存在于堆栈中的网格索引,直到堆栈顶部的网格索引与枢纽网格索引相同,并将与弹出的网格索引对应的网格指定为第一封闭区域的边界网格。所述至少一个处理器还可以用于将堆栈中剩余的网格索引相对应的网格指定为第二封闭区域的边界网格。

在一些实施例中,地理围栏可以基于由一个中心和半径定义的圆而确定。为了在地理区域中识别至少一个封闭区域,所述至少一个处理器进一步用于以预设的采样间隔对圆上的至少两个采样点进行采样,并根据所述至少两个采样点确定地理区域中的至少一个封闭区域的边界网格。

在一些实施例中,预设采样间隔可以与圆的半径和与所述至少两个网格中的网格有关的分辨率相关联。

在一些实施例中,该至少一个处理器还可以在确定该至少两个采样点的两个或以上采样点对应于相同的网格时,从两个或以上采样点中移除一个或以上采样点,使得只有一个采样点对应于该网格。

在一些实施例中,在将至少一个封闭区域分割成两个或以上子区域之后,所述至少一个处理器可以用于确定两个或以上子区域与至少两个分区的一个或以上边相交的重叠的边缘网格,并将重叠边缘网格添加到两个或以上子区域作为边界网格的两个或以上子区域。

在一些实施例中,为了从至少两个网格识别子区域中的内部网格,所述至少一个处理器可以用于初始化扫描矩阵。扫描矩阵可以包括至少两个单元,并且扫描矩阵的每个单元可以具有第一值。所述至少一个处理器可以用于通过向扫描矩阵中的第一组中的至少两个单元中的每个单元填充第二值来对扫描矩阵执行第一次更新。第一组中的至少两个单元可以对应于子区域的边界网格。对于具有第一值的第一次更新之后的扫描矩阵的每个单元,所述至少一个处理器可以用于确定对应于该单元的网格是否在所述地理区域中。响应于确定对应于该单元的网格在所述地理区域中,该至少一个处理器可以进一步用于通过向该单元填充第三值来对该扫描矩阵执行第二次更新。该至少一个处理器还可以用于将具有第三值的单元对应的网格指定为子区域中的内部网格。

在一些实施例中,第二值和第三值可以彼此相同。

本申请的一部分附加特征将在下面的描述中进行说明。通过对以下描述和相应附图的检查或者对实例的生产或操作的了解,本申请的一部分附加特征对本领域技术人员来说是显而易见的。本申请的特征可以通过对以下描述的具体实施例的各个方面的方法、手段及组合的实践或使用得以实现和达到。

附图说明

本申请通过示例性实施例进一步进行描述。这些示例性实施例将通过附图进行详细描述。附图没有按比例绘制。这些实施例并非限制性的,在这些实施例中,相同的附图标记表示相同的结构,其中:

图1是根据本申请的一些实施例所示的示例性人工智能系统的框图;

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

图3是根据本申请的一些实施例所示的示例性设备的示意图;

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

图4B是根据本申请的一些实施例所示的示例性地理围栏边界确定模块的框图;

图4C是根据本申请的一些实施例所示的示例性封闭区域确定模块的框图;

图4D是根据本申请的一些实施例所示的示例性子区域确定模块的框图;

图4E是根据本申请的一些实施例所示的示例性内部网格确定模块的框图;

图4F是根据本申请的一些实施例所示的示例性网格索引确定模块的框图;

图5是根据本申请的一些实施例所示的用于确定地理区域中的网格的示例性过程的流程图;

图6A和6B是根据本申请的一些实施例所示的用于确定地理围栏的初始边界网格列表的示例性过程的流程图;

图7A是根据本申请的一些实施例所示的用于确定对应于坐标对的网格索引的示例性过程的流程图;

图7B是根据本申请的一些实施例所示的表示地球的八面体的示意图;

图7C-7E是示出根据本申请的一些实施例所示的用于细化八面体分区的示例性细化操作的示意图;

图7F和7G是根据本申请的一些实施例所示的八面体分区上的示例性投影坐标系的示意图;

图7H是根据本申请的一些实施例所示的由笛卡尔坐标到投影坐标的变换的示意图;

图7I是根据本申请的一些实施例所示的六边形网格中的目标中心点的示意图;

图7J是根据本申请的一些实施例所示的菱形网格中的目标公共点的示意图;

图7K是根据本申请的一些实施例所示的交叉网格的目标中心点的归属的示意图;

图8是根据本申请的一些实施例所示的用于基于初始边界网格列表确定地理围栏的最终边界网格列表的示例性过程的流程图;

图9A和9B是根据本申请的一些实施例所示的用于确定与地理区域相关联的一个或以上封闭区域的示例性过程的流程图;

图10是根据本申请的一些实施例所示的用于确定子区域的边界网格的示例性过程的流程图;

图11A是根据本申请的一些实施例所示的用于确定子区域中的内部网格的示例性过程的流程图;

图11B是根据本申请的一些实施例所示的分区上的示例性子区域;

图12A和12B是根据本申请的一些实施例所示的两个示例性的地理围栏;

图13A是北京地理区域中的网格的示意图;以及

图13B是根据本申请的一些实施例所示的圆形地理区域的示意图。

具体实施方式

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

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

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

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

同时,虽然本申请系统和方法的描述主要关于识别区域中的网格,应该理解的是,这仅是一个示例性的实施例。本申请的系统或方法还可应用于其他类型的按需服务。例如,本申请的系统和方法可以应用于不同环境的运输系统,包括陆地、海洋、航空航天等或上述举例的任意组合。所述运输系统涉及的车辆可以包括出租车、私家车、顺风车、公交车、火车、动车、高铁、地铁、船舶、飞机、飞船、热气球、无人驾驶的车辆等或上述举例的任意组合。所述运输系统也可以包括应用管理和/或分配的任一运输系统,例如,发送和/或接收快递的系统。本申请的系统和方法的应用场景可以包括网页、浏览器插件、客户端、定制系统、企业内部分析系统、人工智能机器人等或上述举例的任意组合。

本申请中的服务起始点可以通过嵌入在无线设备(例如,乘客终端、司机终端等)中的定位技术来获取。本申请中使用的定位技术可以包括全球定位系统(GPS)、全球卫星导航系统(GLONASS)、北斗导航系统(COMPASS)、伽利略定位系统、准天顶卫星系统(QZSS)、无线保真(Wi-Fi)定位技术等中的一种或类似或其任意组合。以上定位技术中的一个或以上可以在本申请中交换使用。例如,基于GPS的方法和基于Wi-Fi的方法可以一起作为定位无线电装置的定位技术。

DGGS是一种新的全局建模解决方案,其使用特定方法将世界分成无缝的、非重叠的、多分辨率的分层网格结构并且在世界的区域中统一编码网格。可以根据这些网格的纬度和经度坐标ID从外部访问网格,并且根据网格ID,访问网格顶点和中心坐标和其他接口。识别网格是重要的,因为它有助于聚合和处理来自网格区域的数据,这可以更好地反映该区域的商业运营状态。例如,根据北京市海淀区一天的出租车订单汇总数据,在线出租车平台可以为海淀区提供更加精细的运输服务。另外,当在区域内搜索(例如满足特定标准的顺序)时,可以将该区域转换为网格,并且在网格中搜索更有效。

本申请的一个方面涉及人工智能系统和/或具有人工智能的方法,用于识别地图中地理区域的地理围栏中的网格。为此,该人工智能系统可以首先接收来自用户设备的请求,包括与地理区域的地理围栏有关的信息。当地理区域包括两个或以上封闭区域时,对于每个封闭区域,人工智能系统可以确定封闭区域是否跨越两个或以上独立索引的分区。如果一个封闭区域确实跨越两个或以上分区,则人工智能系统然后可以将该封闭区域分割成两个或以上子区域,使得每个子区域仅位于一个分区中并且识别每个子区域中的网格。最后,人工智能系统可以收集子区域中的所有网格作为要确定的最终网格。由于相同的分区上的网格与相同的分区索引相关联,因此很容易确定出网格在相同分区上的相对位置。因此,人工智能系统可以收集与所有子区域的网格相关的数据以做出决定。

本申请中的人工智能系统和方法响应于线上到线下的服务请求以识别地理围栏中的网格作为示例。然而,它们也能够应用于其他形状和/或边界识别场景,例如当网格未在单索引系统下编制索引时,将形状的边界捕捉到网格操作。

应当注意本解决方案依赖于收集在人工智能系统注册的用户终端(例如,乘客终端、司机终端)相关的数据(例如,位置信息),该人工智能系统是植根于后互联网时代的数据收集的新形式。它提供了仅在后互联网时代才能提出的用户终端的详细信息。在互联网时代之前,GPS不可用且不可能实时和/或基本上实时地获取数百万个用户终端位置。然而,线上线下服务允许人工智能系统使用GPS实时和/或基本上实时地监视数百万个用户终端位置,然后基于用户终端的位置提供更好的服务方案。因此,本解决方案深深植根于并且旨在解决仅在后互联网时代发生的问题。

图1是根据一些实施例所示的示例性人工智能系统的框图,该系统用于识别地图中包括至少两个独立索引的网格区域的地理围栏的网格。例如,人工智能系统100可以是用于运输服务的在线运输服务平台,例如自主导航服务、高速列车通信服务、出租车服务、司机服务、快车服务、拼车服务、车辆调度服务、公交车服务、司机租赁和班车服务。人工智能系统100可包括服务器110、网络120、乘客终端130、司机终端140和存储设备150。该服务器110可包含处理引擎112。

在操作期间,人工智能系统100的一个或以上组件,例如乘客终端130、司机终端140、存储设备150、服务器110的其他组件,可以安装用于通信的应用程序(例如,通过有线或无线通信)并操作本申请中申请的方法,例如向服务器110发送识别地理区域的请求。用户可以确定地理区域的地理围栏的形状。例如,通过该应用,用户可以在他/她的智能手机的触摸屏上划出圆或线与服务器110通信并且希望识别该线穿过的网格或圆包围的网格。又如,用户可以通过他/她的智能手机输入一些点(例如,输入某些点的坐标对或者设置由中心和半径定义的圆),并且希望识别由点或圆限定的区域所包含的网格。响应于用户的操作,智能电话可以经由编码或包括服务请求的网络(例如,网络120)向服务器110发送无线信号。服务器110还可以安装应用程序(与安装在人工智能系统100的一个或以上组件中的应用程序相同或不同)用于处理与服务请求有关的信息和/或数据。例如,服务器110可以基于从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、存储设备150、服务器110的其他组件)获取的圆或线信息来识别地理区域中的网格。然后,服务器110可以将编码或包括网格信息的信号发送回用户的智能手机。在智能手机接收之后,该信号可以使智能手机响应针对网格的进一步操作。例如,智能手机可以在其屏幕上显示一个或以上网格的,进一步请求至少一个网格的POI信息,或者向一个或以上网格中的无线站点发送通信请求等。

在一些实施例中,服务器110可以是单一服务器或服务器组。所述服务器组可以是集中式的或分布式的(例如,服务器110可以是一分布式的系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以经由网络120访问存储在乘客终端130、司机终端140和/或存储设备150中的信息和/或数据。又如,服务器110可以直接连接到乘客终端130、司机终端140和/或存储设备150以访问信息和/或数据。在一些实施例中,服务器110可以在一个云端平台上实现。仅仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、跨云、多层云等或上述举例的任意组合。在一些实施例中,服务器110可以在如本申请图2所示包括一个或以上部件的计算装置上实现。

在一些实施例中,服务器110可以包括处理引擎112。该处理引擎112可以处理与服务请求相关的信息和/或数据,以执行本申请中描述的服务器110的一个或以上功能。例如,处理引擎112可以从至少一个存储介质访问地图,并获取地图中地理区域的地理围栏的信息。地理围栏的信息可包括与至少两个边界点对应的一组坐标对或地理区域的中心和半径。又如,处理引擎112可以基于地理围栏的信息识别地理区域中的网格。作为又一示例,处理引擎112可以提取与所识别的网格有关的信息以用于进一步处理,例如,车辆调度。在一些实施例中,所述处理引擎112可包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅仅作为示例,处理引擎112可以包括中央处理器(CPU)、专用集成电路(ASIC)、专用指令集处理器(ASIP)、图像处理器(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或上述举例的任意组合。

网络120可以促进信息和/或数据的交换。在一些实施例中,人工智能系统100中的一个或以上组件(例如,服务器110、乘客终端130、司机终端140和/或存储设备150)可以通过网络120向按需服务系统100中的其他部件发送信息和/或数据。例如,服务器110可以通过网络120从乘客终端130获取/得到服务请求。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种或其组合。仅仅作为示例,网络120可以包括电缆网络、有线网络、光纤网络、远程通信网络、内部网络、因特网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网络(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通信(NFC)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或以上网络交换点。例如,网络120可以包括有线或无线网络交换点,如基站和/或网络交换点120-1、120-2、……,通过交换点,按需服务系统100的一个或以上部件可以连接到网络120以交换数据和/或信息。

乘客可以使用乘客终端130来请求线上到线下服务。线上到线下服务可以包括按需运输服务。例如,乘客终端130的使用者可以使用乘客终端130为自己或其他使用者发送服务请求,或从服务器110接收服务和/或信息或指令。司机终端140可以由司机用来回复线上到线下服务。例如,司机终端140的用户可以使用司机终端140来接收来自乘客终端130的服务请求,和/或来自服务器110的信息或指令。在一些实施例中,术语“用户”和“乘客终端”可以互换使用,术语“用户”和“司机终端”可以互换使用。

在一些实施例中,乘客终端130可以包括移动装置130-1、平板计算机130-2、膝上型计算机130-3、机动车辆中的内置装置130-4等或上述举例的任意组合。在一些实施例中,移动装置130-1可以包括智能家居装置、可穿戴装置、行动装置、虚拟现实装置、增强实境装置等或上述举例的任意组合。在一些实施例中,智能家居装置可以包括智能照明装置、智能电器的控制装置、智能监测装置、智能电视、智能视讯摄影机、对讲机等或其任意组合。在一些实施例中,该可穿戴设备可包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能穿着、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、POS机等或其任意组合。在一些实施例中,该虚拟现实装置和/或增强实境装置可包括一虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强实境头盔、增强实境眼镜、增强实境眼罩等或其任意组合。例如,该虚拟实境装置和/或增强实境装置可包括Google Glass、Oculus Rift、HoloLens或Gear VR等。在一些实施例中,该内置装置可包括车载计算机或车载电视等。在一些实施例中,乘客终端130可以是具有定位技术的无线电装置,所述定位技术可以用于定位使用者和/或乘客终端130的位置。

在一些实施例中,司机终端140可以包括移动设备140-1、平板电脑140-2、膝上型计算机140-3、机动车辆中的内置设备140-4等或其任何组合。在一些实施例中,移动设备140-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,司机终端140可以是与乘客终端130类似或者相同的装置。在一些实施例中,司机终端140可以是带有定位技术的装置,以定位司机终端140的使用者和/或司机终端140的位置。在一些实施例中,乘客终端130和/或司机终端140可以与其他定位装置通信以确定乘客、乘客终端130、司机和/或司机终端140的位置。在一些实施例中,乘客终端130和/或司机终端140可以将所述定位信息发送至服务器110。

存储设备150可以存储数据和/或指令。在一些实施例中,存储设备150可以存储从乘客终端130和/或司机终端140获得/获取的数据。在一些实施例中,存储设备150可以储存服务器110用来执行或使用来完成本申请中描述的示例性方法的数据及/或指令。在一些实施例中,存储设备150可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或上述举例的任意组合。示例性大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括快闪驱动器、软盘、光盘、记忆卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性随机存取存取器可以包括动态随机存取存储器(DRAM)、双倍速率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存取器(SRAM)、晶闸管随机存取存取器(T-RAM)、零电容随机存取存取器(Z-RAM)等。示例性的ROM可以包括掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电子可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字通用磁盘ROM等。在一些实施例中,存储设备150可以在云平台上实现。仅仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、跨云、多层云等或上述举例的任意组合。

在一些实施例中,存储设备150可以连接到网络120以与人工智能系统100中的一个或以上组件(例如,服务器110、乘客终端130、司机终端140等)通信。人工智能系统100中的一个或以上组件可以经由网络120访问存储设备150中存储的数据或指令。在一些实施例中,存储设备150可以直接连接到人工智能系统100中的一个或以上组件或与之通信(例如,服务器110、乘客终端130、司机终端140等)。在一些实施例中,存储设备150可以是服务器110的一部分。

在一些实施例中,人工智能系统100中的一个或以上组件(例如,服务器110、乘客终端130、司机终端140等)可以具有访问存储设备150的许可。在一些实施例中,当满足至少一个条件时,系统100的一个或以上部件可以读取和/或修改与乘客、司机和/或公众相关的信息。例如,服务器110可以在完成服务后或接收服务之后读取和/或修改一个或以上用户的信息。又例如,当从乘客终端130接收到服务请求时,司机终端140可以获取所述乘客相关信息,但所述司机终端140不可修改与所述请求方相关的信息。

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

本领域普通技术人员应该理解,当人工智能系统100的元件执行某一操作时,该元件可以通过电信号和/或电磁信号执行。例如,当乘客终端130处理任务时,例如输入与地理区域的地理围栏(例如,一组坐标对)相关的信息,乘客终端130可以在其处理器中操作逻辑电路以执行该任务。当乘客终端130向服务器110发送服务请求时,服务器110的处理器可以生成编码该请求的电信号。然后,服务器110的处理器可以将电信号发送到输出端口。若乘客终端130经由有线网络与服务器110通信,则输出端口可物理连接至电缆,并进一步将电信号传输给服务器110的输入端口。若乘客终端130经由无线网络与服务器110通信,则服务乘客终端130的输出端口可为一个或以上天线,其将电信号转换成电磁信号。类似地,司机终端140可以通过其处理器中的逻辑电路的操作来处理任务,并且经由电信号或电磁信号从服务器110接收指令和/或服务请求。在电子设备中,例如乘客终端130、司机终端140和/或服务器110,当其处理器处理指令、发出指令和/或执行动作时,指令和/或通过电信号进行处理。例如,当处理器从储存媒体检索或获取数据时,可以将电信号发送给储存媒体的读/写装置,该读/写装置可读取储存媒体中的结构化数据或将结构化数据写入储存媒体中。结构化数据可以电信号的形式经由电子装置的总线传输至处理器。此处,电信号可以指一个电信号、一系列电信号和/或至少两个不连续的电信号。

图2是根据本申请的一些实施例所示的计算装置的示例性硬件和软件的示意图。服务器110、乘客终端130和/或司机终端140可以在该计算装置上实现。例如,处理引擎112可以在计算装置200上实现,并用于为执行本申请中所披露的处理引擎112的功能。

计算设备200可用于实现本申请的线上到线下系统。计算设备200可以实现如本文所述的线上到线下服务的任何组件。在图2中,出于方便的目的仅示出了一个这样的计算机设备。在提交本申请时,本领域普通技术人员应当理解的是,与本文所述的线上到线下服务相关的计算机功能可以在多个类似平台上以分布式方式实现,以分散处理负荷。

计算设备200,例如,可以包括与网络相连接并促进数据通信的通信(COM)端口250。计算装置200还可以包括一个中央处理器220,其可以以一个或以上处理器的形式执行程序指令。示例性的计算机平台可以包括内部通信总线210、不同形式的程序存储器和数据存储器,例如,磁盘270和只读存储器(ROM)230或随机存取存储器(RAM)240,用于储存由计算机处理和/或传输的各种各样的数据文件。示例性的计算机平台也可以包括储存于只读存储器230、随机存取存储器240和/或其他类型的非暂时储存介质中的供处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备200还可以包括I/O组件260,其支持计算机与其中的其他组件之间的输入/输出。计算设备200也可以通过网络通信接收程序设计和数据。

仅为说明之目的,计算装置200中仅示例性绘制了一个处理器220。然而,应该注意的是,本申请中的计算设备200还可以包括多个处理器,由此执行的操作和/或方法步骤如本申请中所描述的一个处理器也可以由多个处理器联合地或单独地执行。例如在本申请中,计算装置200的处理器执行步骤A和步骤B,应当理解的是,步骤A和步骤B也可以由计算装置200的两个不同的处理器共同地或独立地执行(例如,第一处理器执行步骤A、第二处理器执行步骤B、或者第一和第二处理器共同地执行步骤A和步骤B)。

图3是根据本申请的一些实施例所示的可以在其上实现乘客终端130和/或司机终端140的示例性设备的示例性硬件和/或软件组件的示意图。该设备可以是移动设备,例如乘客或司机的移动电话。该装置也可以是安装在由司机驾驶的车辆上的电子设备。如图3所示,设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理器(CPU)340、I/O 350、内存360和存储设备390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示),亦可包括于移动装置300内。在一些实施例中,移动操作系统370(例如,iOSTM、AndroidTM、Windows PhoneTM等)和一个或以上应用程序380可以从存储设备390加载到内存360中以便由CPU 340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于接收和呈现与线上到线下服务有关的信息或来自服务器110的其他信息,并发送与线上到线下服务有关的信息或者传输到服务器110的其他信息。用户与信息流的交互可以通过I/O 350实现,并通过网络120提供给服务器110和/或人工智能系统100的其他组件。在一些实施例中,设备300可以包括用于捕获语音信息的设备,例如麦克风315。

图4A是根据本申请的一些实施例所示的用于识别地理区域中网格的示例性处理引擎的框图。处理引擎112可以与存储设备(例如,存储设备150、乘客终端130或司机终端140)通信,并且可以执行存储设备中存储的指令。在一些实施例中,处理引擎112可包括地理围栏信息获取模块410、地理围栏边界确定模块420、封闭区域确定模块430、子区域确定模块440、内部网格确定模块450、网格索引确定模块460以及目标网格确定模块470。

地理围栏信息获取模块410可以用于获取地图中地理区域的地理围栏的信息。在一些实施例中,地理围栏信息获取模块410可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、服务器110、存储设备150)获取地理围栏的信息。在一些实施例中,可以根据地理坐标系中的坐标对来确定地理围栏。每个坐标对可包括经度和纬度。每个坐标对可以关联到地理围栏的一个边界点。地理围栏信息获取模块410可以同时或按顺序获取与地理围栏相关的坐标对。可选地或另外地,可以根据由中心和半径定义的圆来确定地理围栏。中心可以对应于包括经度和纬度的坐标对。半径可以对应于长度,例如,几米、几十米、几百米等。

地理围栏边界确定模块420可以用于从地图的至少两个网格确定地理围栏的边界网格列表。在一些实施例中,边界网格列表可以表示为一维向量。地理围栏的边界网格列表可以包括地理围栏穿过一组边界网格。在一些实施例中,地理围栏的边界网格列表中存在一个或以上的枢纽网格。枢纽网格可以在边界网格列表中出现两次或以上次数。枢纽网格出现的次数可以与地理围栏穿过枢纽网格的次数相同。在一些实施例中,边界网格列表中没有枢纽网格。

封闭区域确定模块430可以用于识别地理区域中的至少一个封闭区域。在一些实施例中,由地理围栏围绕的地理区域可包括一个或以上封闭区域。每个封闭区域可以指代包括在地理区域中的一块区域,并且由地理围栏的边界网格列表(最终边界网格列表)中的一系列边界网格围绕。封闭区域确定模块430可以根据地理围栏的边界网格列表来识别地理区域中的至少一个封闭区域。

子区域确定模块440可以用于将一个封闭区域分割为两个或以上子区域。在一些实施例中,在确定一个封闭区域跨越两个或以上分区时,子区域确定模块440可以将该封闭区域分割为两个或以上子区域。在分割之后,两个或以上子区域的每个子区域可以仅位于一个分区中。子区域确定模块440也可以用于为两个或以上子区域中的每个子区域确定边界网格。在一些实施例中,子区域确定模块440可以确定重叠边缘网格,在重叠边缘网格处两个或以上子区域与至少两个分区的一个或以上边缘相交。子区域确定模块440还可以将重叠边缘网格添加到两个或以上子区域作为两个或以上子区域的边界网格。

内部网格确定模块450可以用于基于子区域的边界网格和子区域所在的分区的索引,从地图的至少两个网格中识别子区域的内部网格。子区域中的内部网格可以指由子区域的边界网格围绕的网格。在一些实施例中,内部网格确定模块450可以使用射线方法确定子区域中的内部网格。

网格索引确定模块460可以用于确定对应于地理位置的网格的索引。网格索引确定模块460可以首先获取对应于地理位置的地理坐标系中的坐标对。地理位置可以与特定网格相关联。然后,网格索引确定模块460可以将坐标对变换为投影坐标系中的投影坐标。最后,网格索引确定模块460可以确定特定网格的网格索引。

目标网格确定模块470可以用于识别地理区域中的网格(在此也称为地理区域的目标网格)。在一些实施例中,对于每个子区域,目标网格确定模块470可以指定子区域中的内部网格和子区域的边界网格作为对应于子区域的目标网格。目标网格确定模块470可以通过收集与地理区域中的每个子区域相对应的所有目标网格来确定地理区域的目标网格。

应当注意的是,本申请中对处理引擎112的描述是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的指导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。在一些实施例中,两个或以上模块可以组合成单个模块。例如,网格索引确定模块460可以集成到地理围栏边界确定模块420中。又例如,内部网格确定模块450可以集成到子区域确定模块440中。子区域确定模块440可以既确定子区域的边界网格又确定内部边界网格。在一些实施例中,任何一个模块可以分成两个或以上子模块。例如,子区域确定模块440可以被分成第一子模块和第二子模块。第一子模块可以用于将封闭区域分割为两个或以上子区域,使得两个或以上子区域的每个子区域仅位于一个分区中。第二子模块可以用于确定子区域的边界网格。

图4B是根据本申请的一些实施例所示的示例性地理围栏边界确定模块420的框图。地理围栏边界确定模块420可包括识别单元421、选择单元422、确定单元423、移除单元424、插值单元425和更新单元426。

识别单元421可以用于识别对应于至少两个边界点的边界网格列表(例如,初始边界网格列表)。在一些实施例中,初始边界网格列表可以包括至少两个网格(在此也称为边界网格)。每个网格可以对应于一个边界点。边界点可以是网格中的任意点,例如网格的中心点、网格的顶点等。在一些实施例中,两个或以上边界点可以对应于相同的网格,因此初始边界网格可以包括两个或以上相同的网格。在一些实施例中,对应于两个相邻边界点的两个网格在地图中可能不相邻(例如,当使用线段连接两个边界点时,线段占据多于两个网格),所以仅使用边界点来表示地理围栏是不完整的。因此,可以更新初始边界网格列表以生成最终边界网格列表,使得由任意两个相邻边界点占据的所有网格都包括在最终边界网格列表中。

选择单元422可以用于从至少两个边界点中选择两个相邻的边界点。可以通过内插或移除一个或以上点来更新所述至少两个边界点。所选择的两个相邻边界点可以指代(更新的)至少两个边界点中的任何两个相邻点。

确定单元423可以用于确定两个相邻的边界点是否对应于相同的网格。例如,如果对应于两个相邻边界点的网格索引彼此相同,则确定单元423可以确定这两个相邻边界点对应于相同的网格。又如,如果对应于两个相邻边界点的网格索引不同,则确定单元423可以确定这两个相邻的边界点对应于两个不同的网格。

移除单元424可以用于从至少两个边界点中移除边界点。具体地,如果两个相邻的边界点对应于相同的网格,则移除单元424可以移除两个相邻的边界点中的一个。移除的边界点可以是两个相邻边界点中的任意一个。在一些实施例中,移除单元424可通过遍历至少两个边界点来移除一个或以上边界点。

插值单元425可以用于在两个相邻边界点之间内插点。在一些实施例中,插值单元425可以选择两个相邻边界点之间的点。所选择的点可以是两个相邻边界点之间的任意点,例如,两个相邻边界点的中点、距离两个相邻边界点之一较近的点或两个相邻的边界点之间的任何其他点。插值单元425还可以确定是否满足插值条件。插值条件可以是对应于所选择点的网格不同于对应于两个相邻边界点的网格中的任一个。当满足插值条件时,插值单元425可以插入在两个相邻边界点之间的所选点,并将所选择的点指定为地理围栏的边界点。在一些实施例中,插值单元425可以通过遍历至少两个边界点来内插一个或以上边界点。

更新单元426可以用于更新边界网格列表。在一些实施例中,更新单元426可以通过移除对应于一个或以上移除的边界点的一个或以上网格来更新边界网格列表。在一些实施例中,更新单元426可以通过内插对应于一个或以上内插边界点的一个或以上网格来更新边界网格列表。在更新之后,可以确定最终的边界网格列表。

图4C是根据本申请的一些实施例所示的示例性封闭区域确定模块430的框图。封闭区域确定模块430可以包括网格获取单元431、枢纽网格确定单元432和封闭区域确定单元433。

网格获取单元431可以用于获取与地理区域有关的边界网格列表。在一些实施例中,边界网格列表可以包括地理围栏经过的所有网格。边界网格列表中的网格可以按地理围栏穿过的顺序排列,并按顺序编号。每个网格可以对应于唯一的序列号。例如,如果边界网格列表中的网格数是n,则网格的序列号可以相应地标记为“1”、“2”、“3”、……、“n”。在一些实施例中,网格获取单元431可以,例如从地理围栏边界确定模块420或存储设备(例如,存储设备150),顺序地获取边界网格列表中的网格。仅作为示例,网格获取单元431可以获取与序列号1对应的网格,然后获取与序列号2对应的网格,……,最后获取与序列号n对应的网格。

枢纽网格确定单元432可以用于确定边界网格列表是否包括一个或以上枢纽网格。枢纽网格可以指地理围栏经过两次或以上次数的网格,而枢纽网格可以在边界网格列表中出现两次或以上次数。在一些实施例中,枢纽网格确定单元432可以使用搜索技术确定边界网格列表是否包括两个或以上相同的网格。例如,枢纽网格确定单元432可以根据网格的相对位置为边界网格列表的网格创建链接列表或图,然后枢纽网格确定单元432可以通过搜索链接列表或图来确定边界网格列表是否包括一个或以上枢纽网格。

封闭区域确定单元433可以用于确定一个或以上封闭区域。在一些实施例中,如果与地理区域相关的边界网格列表不包括枢纽网格,则封闭区域确定单元433可将地理区域指定为封闭区域。可选地或另外地,如果与地理区域有关的边界网格列表包括一个或以上枢纽网格,则封闭区域确定单元433可以根据一个或以上枢纽网格确定一个或以上的封闭区域。对于每个枢纽网格,封闭区域确定单元433可以将枢纽网格的一侧上的地理区域中的区域识别为第一封闭区域并且在枢纽网格另一侧上的地理区域中的区域识别为第二封闭区域。可以根据在边界网格列表中出现的枢纽网格的次数来确定与枢纽网格相关联的封闭区域的数量。

图4D是根据本申请的一些实施例所示的示例性子区域确定模块440的框图。子区域确定模块440可以包括重叠边缘网格确定单元441和边界网格确定单元442。

重叠边缘网格确定单元441可以用于确定重叠边缘网格,在重叠边缘网格处,一个子区域与至少两个分区的一个或以上边缘相交。重叠边缘网格确定单元441可以根据边缘上的子区域的边界网格确定一个或以上重叠边缘网格。

边界网格确定单元442可以用于确定子区域的边界网格。在一些实施例中,对于一个子区域,边界网格确定单元442可以基于与子区域相关的封闭区域的重叠边缘网格和边界网格(这里也称为子区域的初始边界网格)来确定该子区域的边界网格。具体地,边界网格确定单元442可以组合子区域的初始边界网格和与子区域相关的重叠边缘网格,以确定子区域的边界网格(这里也称为最终边界网格)。

图4E是根据本申请的一些实施例所示的示例性内部网格确定模块450的框图。内部网格确定模块450可以包括矩阵初始化单元451、矩阵更新单元452和内部网格确定单元453。

矩阵初始化单元451可以用于初始化矩阵。矩阵可以是包括至少两个单元的扫描矩阵。在一些实施例中,可以根据子区域的边界网格来确定扫描矩阵。矩阵初始化单元451可以通过将第一值填充到扫描矩阵的每个单元来初始化扫描矩阵。扫描矩阵中填充的第一值可以是任何格式的,例如,数字、字母。在一些实施例中,第一值可以是零。

矩阵更新单元452可以被配置为对矩阵(例如,扫描矩阵)执行一次或多次更新。在一些实施例中,矩阵更新单元452可以通过将第二值填充到扫描矩阵的第一组中的至少两个单元中的每个单元来对扫描矩阵执行第一次更新。第一组中的至少两个单元可以对应于子区域的边界网格。第二值可以是与第一值不同的任何值(或数字),例如,1。在第一次更新之后,部分单元(例如,第一组中的至少两个单元)可以具有第二值,且部分单元仍然可以具有第一值。在一些实施例中,如果对应于具有第一值的单元的网格在地理区域中,则相应的单元可以被称为扫描矩阵的第二组中的至少两个单元。矩阵更新单元452可以通过将第三值填充到扫描矩阵的第二组中的至少两个单元来对扫描矩阵执行第二次更新。第三值可以是除第一值之外的任何值(或数字),且与第二值相同或不同。例如,第三值可以是2。

内部网格确定单元453可以用于确定子区域中的内部网格。例如,内部网格确定单元453可以指定对应于具有第三值的单元的网格作为子区域中的内部网格。

应当注意的是,以上描述的内部网格确定模块450是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的指导可以做出多种变化和修改。然而,这些变形和修改不会背离本申请的范围。在一些实施例中,内部网格确定模块450还可以包括单元确定单元(图4E中未示出)。对于具有第一值的单元,单元确定单元可以确定对应于该单元的网格是否在地理区域中,然后确定扫描矩阵的第二组中的至少两个单元。

图4F是根据本申请的一些实施例所示的示例性网格索引确定模块460的框图。网格索引确定模块460可包括坐标获取单元461、坐标变换单元462和网格索引确定单元463。

坐标获取单元461可以用于获取坐标对。在一些实施例中,坐标获取单元461可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、服务器110、存储设备150或者服务器110的其他组件)获取坐标对。坐标对可以是地理坐标系中的地理坐标。在一些实施例中,坐标对可以指代地理围栏上的坐标对(例如,该组坐标对中的一个,该坐标对对应的采样点)。在一些实施例中,坐标对可以指代与用户(例如,乘客、司机)的地理位置相对应的坐标对。

坐标变换单元462可以用于将地理坐标系中的坐标对变换为投影坐标系中的投影坐标。在一些实施例中,坐标变换单元462可以基于一个或以上坐标变换操作来确定投影坐标系中的投影坐标。具体地,坐标变换单元462可以将坐标对首先变换为球面坐标系的球面坐标。然后,坐标变换单元462可以将球面坐标变换为笛卡尔坐标。坐标变换单元462还可以将笛卡尔坐标变换为投影坐标系中的投影坐标。

网格索引确定单元463可以用于根据投影坐标确定与坐标对相对应的网格索引。具体地,网格索引确定单元463可以根据细化等级、与DGGS相关的多面体的形状、坐标对所在的相应分区的索引、和/或相应网格的投影坐标(例如,第二投影坐标),来确定与坐标对相对应的网格索引。在一些实施例中,网格索引可以用于唯一地识别地图中分区上的网格。网格索引可以表示为一个或以上数字、一个或以上字母、一个或以上符号等的组合。

图5是根据本申请的一些实施例所示的用于识别地图的地理区域中的网格的示例性过程的流程图。在一些实施例中,过程500可以在人工智能系统100中实现,如图1所示。例如,过程500可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程500在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图5中所示和下面描述的过程500的操作的顺序不旨在是限制性的。

地理区域可以是地球上的国家、省、州、城市或特定区域。为了获取与地理区域有关的信息,处理引擎112可以在地理区域中确定网格。例如,为了获取与北京有关的信息,处理引擎112可以首先识别与北京有关的所有网格。图13A是北京地理区域中的网格的示意图。又例如,为了获取与具有特定位置周围的特定范围的地理区域有关的信息,处理引擎112可以在特定位置周围的地理区域中确定网格。图13B是圆形地理区域1350中的网格的示意图。圆形地理区域1350的中心表示为地理坐标系中的(116.39712800000001,39.915663499999994)的坐标对。所述坐标对的第一项是一特定位置的经度。所述坐标对的第二项是该特定位置的纬度。圆形地理区域1350的半径是81640.2155113325米。如图13A和13B所示,地理区域包括至少两个网格。在一些实施例中,处理引擎112可以提取与至少两个网格有关的数据并基于该数据制作一个或以上策略。例如,处理引擎112可以提取与不同网格中的服务请求有关的信息。对于具有较大数量的服务请求的区域,处理引擎112可以确定应该在区域中分派更多服务提供者。对于具有较少数量的服务请求的区域,处理引擎112可以确定应该从该区域分派出该区域中的一些服务提供者。在510中,处理引擎112(例如,地理围栏信息获取模块410)可以获取在地图中地理区域的地理围栏的信息。

在一些实施例中,处理引擎112可以从存储设备(例如,存储设备150、ROM230、RAM240)访问该地图。例如,处理引擎112可以将地图的至少一部分从存储设备加载到至少一个高速缓存电路。处理引擎112还可以预先在人工智能系统100的组件(例如,乘客终端130、司机终端140或服务器110)上生成地图的表示。在一些实施例中,地图可以表示离散全球网格系统(DGGS)中的地球。该地图可以分成至少两个分区,例如,四个分区、六个分区、八个分区、十二个分区、二十个分区。至少两个分区可具有基本相同的尺寸和形状。分区可以构成多面体,例如,四面体、立方体、八面体、十二面体、二十面体。多面体可以近似代表地球。在一些实施例中,代表地球的多面体可以是八面体,如图7B所示。如图所示,八面体具有六个顶点。地理坐标系中的六个顶点的坐标可以是(0,90)、(0,-90)、(0,0)、(90,0)、(-90,0)和(180,0)。两个顶点(例如,A和F)可以分别代表地球的两个极点。其他四个顶点(例如,B、C、D和E)可以将地球的赤道分成四个相等的部分。点G可以表示地球的中心点。八面体包括八个分区(例如,ΔABC、ΔACD、ΔADE、

ΔAEB、ΔFBC、ΔFCD、ΔFDE、ΔFEB),其可以对应于地球表面的八个部分。例如,ΔABC、ΔACD、ΔADE和ΔAEB可分别对应于地球北半球表面的四分之一。又例如,ΔFBC、ΔFCD、ΔFDE和ΔFEB可分别对应于地球南半球表面的四分之一。

在一些实施例中,可以独立地索引分区。每个分区可以与索引相关联(这里也称为分区索引)。

仅作为示例,如图7B所示,八面体的八个分区可以从0到7编号。可以根据地理坐标系中的地理坐标的经度和纬度的范围来确定八面体的分区的指数。八面体的分区的指数可以根据公式(1)确定:

其中,f可以指八面体分区的索引;lat是指地理坐标系中坐标对的纬度;且lon可以指地理坐标系中坐标对的经度。

如图7K所示,八面体的八个分区可以展开成平面。八分区的指数可以是0、1、2、3、4、5、6和7。在一些实施例中,处理引擎112可以根据公式(1)基于坐标对确定地理位置的多面体的相应分区。例如,如图7B所示,假设顶点A的地理坐标对是(0,90)、顶点C的地理坐标是(0,0)、顶点D的地理坐标对是(90,0)。地理坐标对的第一项是点的经度。地理坐标对的第二项是点的纬度。如果坐标对的经度在0和90之间,并且坐标对的纬度在0和90之间,则相应分区可以是ΔACD,则。

地图(或地图的一个或以上分区)也可以被网格化为至少两个网格以生成DGGS。每个网格可以对应于地球上的地理区域。在一些实施例中,网格可具有规则形状,例如三角形、矩形、正方形、菱形、六边形。在一些实施例中,网格可具有不规则形状。在一些实施例中,网格的全部或部分可具有相同或不同的尺寸和形状。例如,相同的分区中的网格可以具有相同的尺寸和相同的形状,且不同分区中的网格可以具有不同的尺寸和不同的形状。又如,相同的分区中的网格可具有不同的尺寸和不同的形状。分区中的每个网格可以与索引相关联(这里也称为网格索引)。在一些实施例中,网格索引可包括至少两个字段。网格索引的每个字段可以包括与网格索引对应的网格所在的分区相关的细化等级的信息,与DGGS相关的多面体的形状、与网格索引对应的网格所在的分区的形状、与网格索引对应的网格所在的分区索引、与网格索引对应的网格的投影坐标等或其任意组合。细化等级可以指对对应于网格索引的网格分区的细化次数,其可以反映分区中网格的分辨率。可以预先确定与网格索引有关的字段的顺序。当确定网格索引时,可以确定细化等级、多面体的形状、对应于网格索引的网格所在的分区或投影坐标中的至少一个。关于确定网格索引的细节可以在本申请的其他地方找到(例如,图7A及其相关描述)。在一些实施例中,在本申请中,除非另有说明,否则术语“网格”和“网格索引”可互换使用。例如,当本申请描述了确定网格时,它还意味着确定网格的网格索引。

处理引擎112(例如,地理围栏信息获取模块410)可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、服务器110、存储设备150)获取地图中地理区域的地理围栏的信息。地理围栏可以表示地理区域的边界。在一些实施例中,可以基于一组坐标对来确定地理围栏,例如,图12A中的地理围栏1210。图12A是根据本申请的一些实施例所示的示例性地理围栏。可以通过有序地连接点(例如,点A、点B、点C、……、点K)来确定地理围栏(例如,图12A中的地理围栏1210)。在一些实施例中,这些点可以被称为边界点。边界点可以是网格中的任意点,例如网格的中心点、网格的顶点等。可选地或另外地,可以基于由一个中心和半径限定的圆来确定地理围栏,例如,图12B中的地理围栏1220。图12B是根据本申请的一些实施例所示的另一示例性地理围栏。地理围栏1220是圆形的。圆的中心表示为点O。圆的半径表示为r。半径可以对应于长度,例如,几米、几十米、几百米。关于获取地理围栏的信息的更多细节可以在本申请的其他地方找到(例如,过程610的步骤611或过程650的步骤651及其相关描述)。

在520中,处理引擎112(例如,地理围栏边界确定模块420)可以从地图的至少两个网格确定地理围栏的边界网格列表。在一些实施例中,边界网格列表可以表示为一维向量。地理围栏的边界网格列表可以包括地理围栏穿过的一组边界网格。在图12A和12B中,地理围栏1210或地理围栏1220穿过的网格填充线段。处理引擎112可以将图12A中填充有线段的网格指定为地理围栏1210的边界网格,并且用图12B中的填充有线段的网格作为地理围栏1220的边界网格。在一些实施例中,地理围栏的边界网格列表中存在一个或以上的枢纽网格。枢纽网格可以指地理围栏穿过两次或以上次数的网格。一个枢纽网格出现在边界网格列表中的次数可以与地理围栏穿过枢纽网格的次数相同。对于边界网格列表,枢纽网格可以指在边界网格列表中可以出现两次或以上次数并且对应于两个非相邻边界点的网格。例如,如图12A所示,网格1214对应于点G和点A,但点G和点A不相邻,它可以表示地理围栏1210两次通过网格1214,所以处理引擎112可以将网格1214指定为枢纽网格。然而,网格1213对应于点C和点D,但是点C和点D是相邻的,因此处理引擎112可以不将网格1214指定为枢纽网格。在一些实施例中,边界网格列表中没有枢纽网格。例如,当地理围栏由圆定义时,地理围栏的边界网格列表可以不包括枢纽网格。如图12B所示,地理围栏1220是圆形,并且地理围栏1220穿过每个边界网格的次数只有一次。因此,地理围栏1220的边界网格列表可以不包括枢纽网格。

在一些实施例中,处理引擎112可以基于地理围栏的信息确定地理围栏的初始边界网格列表。在一些实施例中,初始边界网格列表可以包括地理围栏穿过的网格的一部分。在一些实施例中,初始边界网格列表可以包括地理围栏穿过的整个网格但是在初始边界列表中存在重复网格(重复网格可以是或不是枢纽网格)。初始边界网格列表的确定可以在本申请的其他地方找到(例如,图6A和6B及其相关描述)。然后,处理引擎112(例如,地理围栏边界确定模块420)可以通过迭代地更新初始边界网格列表来确定地理围栏的边界网格列表,以确保每两个相邻边界点对应的两个相邻的网格。基于初始边界网格列表确定地理围栏的最终边界网格列表可以在本申请的其他地方找到(例如,图8及其相关描述)。

在一些实施例中,由地理围栏围绕的地理区域可包括一个或以上封闭区域。

在530中,处理引擎112(例如,封闭区域确定模块430)可以根据边界网格列表识别地理区域中的至少一个封闭区域,以确定至少一个封闭区域中的每个边界网格。每个封闭区域可以指代包含在地理区域中的区域,同时,封闭区域由地理围栏的边界网格列表中的一系列边界网格围绕。例如,如图12A所示,地理围栏区域由枢纽网格1214分成封闭区域1216和封闭区域1218。封闭区域1216位于枢纽网格1214的一侧,封闭区域1218位于枢纽网格1214的另一侧。可以通过执行图9A和9B中描述的一个或以上操作来获取至少一个封闭区域的标识。在一些实施例中,在识别出至少一个封闭区域之后,边界网格列表的形式可以表示为矩阵。矩阵的每一行可包括仅对应于一个封闭区域的边界网格。

在一些实施例中,封闭区域可以位于一个分区中。在一些实施例中,封闭区域可以跨越两个或以上分区。因为每个分区被独立地索引,当区域仅位于一个分区中时,容易确定该区域中的网格。因此,为了确定包括在跨越两个或以上分区的区域中的网格,将区域分成两个或以上子区域会更好,这样使得每个子区域仅位于一个分区中。

在一些实施例中,对于所述至少一个封闭区域中的一个封闭区域,处理引擎112可以根据所述封闭区域的边界网格的网格索引确定封闭区域是否跨越两个或以上分区。如510中所述,网格的网格索引可以包括指示网格所处的相应分区的索引(在此也称为对应的分区索引)的字段,因此处理引擎112可以根据与两个网格相关的相应分区索引确定两个网格是否在相同的分区。为了确定封闭区域是否跨越两个或以上分区,处理引擎112可以确定封闭区域的边界网格的分区索引是否相同。响应于确定与封闭区域的边界网格相关的分区索引相同,处理引擎112可以确定封闭区域位于一个分区中。处理引擎112可以不分割封闭区域。

响应于确定与封闭区域的边界网格相关的分区索引不同,处理引擎112可以确定封闭区域跨越两个或以上分区。在确定封闭区域跨越两个或以上分区时,在540,处理引擎112(例如,子区域确定模块440)可以将封闭区域分割为两个或以上子区域,使得两个或以上子区域的每个子区域仅位于,一个分区。在分割之后,两个或以上子区域的每个子区域可以仅位于一个分区中。

在一些实施例中,在一个封闭区域被分割为两个或以上子区域之后,处理引擎112可以将两个或以上子区域中的每个边界网格存储到矩阵中,其中同一行的网格只涉及一个子区域。

在550中,处理引擎112(例如,子区域确定模块440)可以为两个或以上子区域中的每个子区域确定边界网格。在一些实施例中,处理引擎112可以确定重叠的边缘网格,在重叠的边缘网格处,两个或以上子区域与至少两个分区的一个或以上边缘相交。处理引擎112可以将重叠的边缘网格添加到所述两个或以上子区域作为所述两个或以上子区域的边界网格。关于边界网格确定的更多细节可以在本申请的其他地方找到(例如,图10及其相关描述)。

在560中,对于每个子区域,处理引擎112(例如,内部网格确定模块450)可以根据子区域的边界网格和子区域所在的分区的索引,从至少两个网格中识别子区域中的内部网格。

子区域中的内部网格可以指由子区域的边界网格围绕的网格。在一些实施例中,当处理引擎112获取仅位于一个分区中的子区域的边界网格时,处理引擎112(例如,内部网格确定模块450)可以在子区域中,使用射线方法确定内部网络。在一些实施例中,内部网格的标识可以通过图11A中描述的一个或以上操作来执行。

在570中,处理引擎112(例如,目标网格确定模块470)可以通过收集两个或以上子区域的边界网格和两个或以上子区域的内部网格来识别地理区域中的网格(在此也称为目标网格)。一些实施例中,人工智能系统100可以将一些信息与地图中的至少两个网格中的每个网格相关联。与网格有关的信息可以包括与服务提供者有关的信息、与服务请求者有关的信息等。与服务提供者有关的信息可以包括每个网格中的服务提供者的数量、司机的分布、可用服务提供者的数量、可用服务提供者的分布等或者任何组合。服务请求者有关的信息可以包括与特定时间段内的网格有关的服务请求者的数量、特定时间段内的服务请求者的分布、与服务请求者有关的开始时间、与服务请求者有关的起始定位、与服务请求者有关的目的地定位等或其任何组合。在一些实施例中,在确定地理区域中的目标网格之后,处理引擎112可以提取与目标网格有关的信息以进行进一步处理,例如车辆调度。

应当注意的是,以上对过程500的描述是出于说明的目的而提供的,并且不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的指导可以做出多种变化和修改。例如,如果地理围栏由圆确定,则地理围栏仅包括一个封闭区域,则可以省略步骤530。例如,如果每个封闭区域仅位于一个分区中,则可以不需要对封闭区域进行分割,则可以省略步骤540。然而,这些变形和修改不会背离本申请的范围。

图6A是根据本申请的一些实施例所示的用于确定地理围栏的初始边界网格列表的示例性过程的流程图。在一些实施例中,过程610可以在如图1所示的人工智能系统100中实现。例如,过程610可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程610实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图6A中所示和下面描述的过程610的操作的顺序不旨在是限制性的。

在611中,处理引擎112(例如,地理围栏信息获取模块410)可以获取与地理围栏相关的一组坐标对。该组坐标对中的每个坐标对可以涉及地理围栏的边界点。每个坐标对包括经度和纬度。如图12A所示,地理围栏1210上有点,例如点A、点B、点C、……、点K,且这些点是地理围栏的边界点。在一些实施例中,处理引擎112可同时获取这些点(例如,点A、点B、……、点K)对应的坐标对组。例如,处理引擎112可以获取由该组坐标对组成的向量,并且该组坐标对的相对位置可以指示地理围栏上的对应点的相对关系。在一些实施例中,处理引擎112可以按顺序获取该组坐标对,并且获取坐标对的顺序可以指示地理围栏上的对应点的相对关系。例如,处理引擎112可以首先获取点A、然后是点B、然后是点C、……、点K。

在一些实施例中,处理引擎112可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、服务器110、存储设备150、或者服务器110的其他组件)获取该组坐标对。例如,如果用户(例如,乘客)想要知道特定地理区域中的服务提供者的分布,他/她可以将在用户界面上显示的地图上显示的选点图标拖动到若干点以定义在地理区域,则服务器110或乘客终端130可以分析这些点以生成一组坐标对。又例如,如果人工智能系统100的操作员想要知道地理区域中的服务提供者(例如,驾驶员)的分布,则人工智能系统100的操作员可以通过与服务器110相关的控制器或控制台以特定顺序输入一组坐标对,来定义地理区域的地理围栏。作为又一个示例,该组坐标对可以存储在存储设备(例如,存储设备150)中,并且处理引擎112可以访问存储设备并检索该组坐标对。

在612中,处理引擎112(例如,地理围栏边界确定模块420)可以根据该组坐标对确定地理围栏的初始边界网格列表。初始边界网格列表可以包括至少两个网格(在此也称为边界网格)。初始边界网格列表中的每个网格可以对应于该组坐标对的坐标对。关于确定与坐标对有关的网格索引(或网格)的细节可以在本申请的其他地方找到(例如,图7A至7K及其相关描述)。在一些实施例中,两个或以上边界点可以对应于相同的网格,因此初始边界网格列表可以包括两个或以上相同的网格。在一些实施例中,对应于两个相邻边界点的两个网格可能在地图中不相邻(例如,当使用线段连接两个边界点时,该线段占据多于两个网格),因此仅使用边界点来表示地理围栏并不完整。此外,处理引擎112可以更新初始边界网格列表以生成最终边界网格列表,使得由任意两个相邻边界点占据的两个网格之间的所有网格都包括在最终边界网格列表。在一些实施例中,可以通过执行结合图8描述的一个或以上操作来确定最终边界网格列表。

图6B是根据本申请的一些实施例所示的用于确定地理围栏的初始边界网格列表的另一示例性过程的流程图。在一些实施例中,过程650可以在如图1所示的人工智能系统100中实现。例如,过程650可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程650在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图6B所示和下面描述的过程650的操作的顺序不旨在是限制性的。

在651中,处理引擎112(例如,地理围栏信息获取模块410)可以获取与地理围栏和采样间隔有关的中心和半径。在一些实施例中,所述中心可以对应于一个坐标对。所述半径可以对应于一个长度,例如,几米、几十米、几百米等。可以基于所述中心和所述半径来定义圆。然后,处理引擎112(例如,地理围栏信息获取模块410)可以确定由圆表示的地理围栏。在一些实施例中,采样间隔可以是服务器110的预设值。在一些实施例中,处理引擎112可以在一个步骤中获取中心和半径,然后在另一个步骤中获取采样间隔。在一些实施例中,在获取中心和半径之后,处理引擎112可以基于圆的半径和与DGGS的网格相关的分辨率来计算采样间隔(例如,与DGGS相关的细化等级)。在一些实施例中,采样间隔可以对应于采样角度。仅作为示例,采样角度可以根据公式(2)确定如下:

其中,α可以指对应于采样间隔的样本角度;R可以指地球的半径;r可以指圆的半径;且n可以指与DGGS相关的细化等级。

在一些实施例中,处理引擎112可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、存储设备150、服务器110或服务器110的其他组件)获取与地理围栏有关的信息(例如,中心和半径以及采样间隔)。例如,乘客终端130/司机终端140的用户可以通过乘客终端130/司机终端140输入中心和半径以确定地理区域。又例如,如果人工智能系统100的操作员想要知道地理区域中的服务提供者(例如,驾驶员)的分布,则人工智能系统100的操作员可以通过与服务器110有关的控制器或控制台进入中心和半径,以定义地理区域的地理围栏。作为又一示例,中心和半径可以存储在存储设备(例如,存储设备150)中,并且处理引擎112可以访问存储设备并且检索与地理围栏相关的中心和半径。

在652中,处理引擎112(例如,地理围栏信息获取模块410)可以根据采样间隔确定由中心和半径定义的圆上的至少两个采样点。如图12B所示,地理围栏1220上有采样点,例如点A'、点B'、点C'、……、点L',采样点是地理围栏1220的边界点。在一些实施例中,处理引擎112可以首先确定圆上的第一采样点,例如,图12B中所示的点A。处理引擎112可以根据预设采样间隔(例如,采样角度)和第一采样点对圆上的第二采样点(例如,图12B中示出的点B)进行采样。因此,处理引擎112可以根据采样间隔对圆上的第三个、第四个、……和第N个采样点进行采样。在一些实施例中,当确定第一采样点和采样间隔时,处理引擎112(例如,地理围栏信息获取模块410)可以根据第一采样点和采样间隔同时获取其他采样点。处理引擎112可以顺时针或逆时针对至少两个采样点进行采样。

在653中,处理引擎112(例如,地理围栏边界确定模块420)可以根据至少两个采样点来确定地理围栏的初始边界网格列表。关于根据采样点确定网格(或网格索引)的细节可以在本申请的其他地方找到(例如,图7A至7K及其相关描述)。在一些实施例中,初始边界网格列表可包括至少两个网格。当样本间隔小于某个样本值时,初始边界网格列表可包括重复网格。当样本间隔大于某个样本值时,仅使用初始边界网格列表中的网格来表示地理围栏是不完整的。因此,处理引擎112可以更新初始边界网格列表以生成最终边界网格列表,使得由圆占据的所有网格都包括在最终边界网格列表中。在一些实施例中,可以通过执行结合图8描述的一个或以上操作来确定最终边界理网格列表。

图7A是根据本申请的一些实施例所示的用于确定对应于坐标对的网格索引的示例性过程的流程图。在一些实施例中,过程700可以在如图1所示的人工智能系统100中实现。例如,过程700可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM230、RAM 240)中,且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的至少一个模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程700在实现时可以添加一个或多个未描述的额外操作,和/或删减一个或多个此处所描述的操作。另外,如图7A所示和下面描述的过程700的操作的顺序不是限制性的。在一些实施例中,可以根据过程700来执行过程610的步骤612和过程650的步骤653。

在710中,处理引擎112(例如,网格索引确定模块460的坐标获取单元461)可以获取与地理位置相对应的坐标对。坐标对可以包括地理坐标系中的经度和纬度。在一些实施例中,坐标对可以指代图6A中描述的一组坐标对中的一个,坐标对对应于图6B中描述的采样点,坐标对对应于用户(例如,乘客、司机)的地理位置。

在一些实施例中,处理引擎112可以从人工智能系统100的一个或以上组件(例如,乘客终端130、司机终端140、服务器110、存储设备150、或服务器110的其他组件)获取与用户的地理位置相对应的坐标对。例如,处理引擎112可以从乘客终端130/司机终端140获取由用户(例如,乘客、司机)输入的坐标对。又例如,用户的地理位置(例如乘客、司机)可以由安装在终端(例如,乘客终端130、司机终端140)上的GPS接收器确定。处理引擎112可以通过GPS接收器获取与用户的地理位置相对应的坐标对。作为另一个例子,可以将坐标对发送到存储设备(例如,存储设备150)。处理引擎112可以访问存储设备并检索坐标对。

在720中,处理引擎112(例如,网格索引确定模块460的坐标变换单元462)可以将对应于地理位置的坐标对变换为投影坐标系中的投影坐标。在一些实施例中,对于地图中的每个分区,可以构造投影坐标系。如图7H所示,以分区ΔACD为例,AC和AD可以被指定为I轴和J轴。穿过顶点A并垂直于分区ΔACD的轴可以被指定为K轴。在一些实施例中,处理引擎112可根据一个或以上坐标变换操作确定投影坐标系中的投影坐标。

在一些实施例中,处理引擎112可以将坐标对变换为球面坐标系的球面坐标。在球面坐标系中,对应于地理位置的球面坐标可以表示为地理坐标系中的坐标对和球面坐标系中的球面坐标可以是可互换的。在一些实施例中,处理引擎112可以根据公式(3)将坐标对(例如,P(lon,lat))变换为球面坐标(例如,)。可选地或另外地,处理引擎112可以根据公式(4)将球面坐标变换为坐标对。

其中,lat可以指地理坐标系中坐标对的纬度;lon可以指地理坐标系中坐标对的经度;可以指球面坐标中的极角;θ可以指球面坐标中的方位角;“rad2deg”可以指将弧度转换为角度的函数;且“deg2rad”可以指将角度转换为弧度的函数。

在一些实施例中,处理引擎112还可以将球面坐标变换为笛卡尔坐标。笛卡尔坐标(也称为直角坐标)可以指示点在二维(2D)表面或三维(3D)空间中的位置。球面坐标和笛卡尔坐标可以是可互换的。在一些实施例中,处理引擎112可以根据公式(5)将球面坐标系中的球面坐标(例如,)变换为笛卡尔坐标(例如,(x,y,z))。可选地或另外地,处理引擎112可以根据公式(6)将笛卡尔坐标变换为球面坐标。

其中,x可以指一地理位置垂直投影在X轴上的位置;y可以指该地理位置垂直投影在Y轴上的位置;并且z可以指地理位置在Z轴上的垂直投影的位置。

应当注意的是,方位角θ在[-π,π]的范围内,而arctan函数的值在的范围内,这与方位角θ的范围不同。为了补偿该差异,可以根据坐标(x,y)的象限确定方位角θ。具体地,如果x=0,则可以根据公式(7)确定方位角θ:

如果x<0,则可以根据公式(8)确定方位角θ:

其中,

如果x>0,那么方位角θ可以确定为

arccos函数值在[0,π]的范围内,这与极角的范围一致。

处理引擎112可以进一步将笛卡尔坐标变换为投影坐标系中的投影坐标。笛卡尔坐标和投影坐标可以是可互换的。如图7H所示,GD、GA和GC可以分别对应于笛卡尔坐标系中的X轴、Y轴和Z轴。点G可以是笛卡尔坐标系的原点。假设地球半径长度为1个单位,则A、C、D和P点(上述地理位置)的笛卡尔坐标可以分别是(0,1,0)、(0,0,1)、(1,0,0)和P(x,y,z)。在投影坐标系中,AC和AD可以对应于I轴和J轴。穿过点A并垂直于分区ΔACD的轴可以对应于K轴。P'可以是分区ΔACD上的地理位置P的投影点。如这里所使用的,投影点P'可以指线和分区ΔACD的交叉点,其中该线连接地球上的地理位置和地球的中心点。投影点P'可以具有投影坐标P'(i,j,k)。

向量AP'可以根据公式(9)确定:

其中,可以指向量AP’;可以指向量AC;以及可以指向量AD。

可以根据公式(10)确定向量AP:

其中,可以指向量AP,可以指向量GP。

笛卡尔坐标P(x,y,z)和投影坐标P'(i,j,k)可以具有公式(11)中所示的关系:

公式(11)可以表示为公式(12):

假设s=x+y+z,可以根据公式(13)确定投影坐标P'(i,j,k):

可以确定投影坐标系中的投影点P'的投影坐标P'(i,j,k)。

在730中,处理引擎112(例如,网格索引确定模块460的网格索引确定单元463)可以根据投影坐标,确定与地理位置的坐标对相对应的网格索引。

在一些实施例中,地图中的每个分区可以被分成至少两个网格。每个网格可以具有诸如三角形、矩形、正方形、菱形、六边形等形状。分割形成的网格可以具有相同或不同的尺寸和形状。在一些实施例中,每个分区可以被分成具有较小区域的更多网格,以实现与网格相关的相对精细的分辨率。细化操作可以应用于细分分区以生成更精细的网格,这可以指将一组相对粗糙的网格转换为相对更精细的网格。

在一些实施例中,可以根据细化因子m来执行细化操作。细化因子m可以指在单个细化操作中可以划分网格的精细程度。在一些实施例中,可以根据1到m的细化来生成地图中的至少两个网格。具体地,根据1到m的细化,具有面积A的网格(或多面体的分区)可以被分成具有面积A/m的m个网格。例如,在1到4的细化中,面积为A的每个网格可以被分成具有面积A/4的四个网格。因此,网格的数量可以从一个分辨率到下一个分辨率,因子增长四倍。在一些实施例中,可以执行细化操作一次或以上次。可以将细化操作的次数称为细化等级。在一些实施例中,细化等级可以是由处理引擎112确定的默认值,或者由用户经由终端(例如,乘客终端130、司机终端140)设置或调整的默认值。在一些实施例中,可以根据相同的细化因子来执行不同次数的两个或以上细化操作。在一些实施例中,可以根据不同的细化因子来执行不同次数的两个或以上细化操作。例如,可以在第一细化操作中执行1到4的细化,并且随后可以在第二细化操作中执行1到2的细化。

在一些实施例中,可以通过根据一个或以上细化因子和细化等级执行一个或以上的迭代细化操作来生成分区的至少两个网格。图7C-7E是根据本申请的一些实施例所示的用于细化八面体分区的示例性细化操作的示意图。ΔHIJ可以表示八面体的示例性分区。如图7C所示,在第一细化操作中,可以执行1到4.5的细化,可以生成具有菱形形状的4.5个的第一网格。具体地,处理引擎112可以确定沿分区ΔHIJ的每一侧的两个三分点,以在分辨率1处获取至少两个第一点。在分辨率1处,三个顶点H、I和J可以被视为第一点。仅作为示例,第一点可以包括点g、j、k、m、n和i。在本申请中,术语“第一点”和“第一级等分点”可互换使用。可以根据第一点形成至少两个第一网格。第一网格可以包括三个完整的菱形(例如,菱形“Hghi”、“gjkh”、“ihmn”)和三个不完整的菱形(例如,半菱形“jIk”、“hkm”、“NMJ”)。第一网格可以被视为分辨率1网格。分辨率1网格的细化等级可以是1。

为了获取更精细的分辨率网格,处理引擎112可以执行细化操作的一个或以上迭代以生成不同分辨率的网格。如图7D所示,在第二细化操作中,可以执行1到4的细化,且可以为每个第一网格生成具有菱形形状的4个网格。具体地,处理引擎112可以沿分区ΔHIJ的每一侧确定至少两个第一点中的每两个之间的二分点,以在分辨率2处获取至少两个第二点。分辨率2处,三个顶点H、I和J可以被视为第二点。在本申请中,术语“第二点”和“第二级等分点”可互换使用。可以根据第二点形成至少两个第二网格。第二网格可以被视为分辨率2网格。分辨率2网格的细化等级可以是2。如图7E所示,在第三细化操作中,可以执行1到4的细化,并且可以为每个第二网格生成具有菱形形状的4个网格。具体地,处理引擎112可以确定沿分区ΔHIJ的每一侧的至少两个第二点中的每两个之间的二分点,以在分辨率2处获取至少两个第二点。分辨率3处,三个顶点H、I和J可以被视为第三点。在本申请中,术语“第三点”和“第三级等分点”可互换使用。可以根据第三点形成至少两个第三网格。第三网格可以被视为分辨率3网格。分辨率3网格的细化等级可以是3。类似地,可以执行进一步的细化操作(例如,1到4的细化)以进一步细化至少两个网格。较低分辨率的每个网格可以以相对高的分辨率表示。例如,如图7E所示,分辨率1网格和分辨率2网格可以用分辨率3网格表示。

应当注意的是,可以根据多面体的分区的形状,一个或以上细化因子和/或细化等级来确定至少两个网格。以八面体为例,除了菱形之外,网格的形状可以是三角形或六边形。相同的细化操作可以生成具有不同细化因子的不同形状的网格。例如,如图7C所示,细化因子是4.5用于菱形,但9/7用于六边形,并且没有形成六边形。由虚线指示的半六边形由顶点a、b、c、d、e和f限定,并且具有中心点h。例如图7D所示,菱形的细化因子为4,但是六边形的细化因子为3.5。作为另一示例,如图7E所示,菱形的细化因子为4,但是六边形的细化因子为3.5。六边形由图7D和7E中的虚线表示。在一些实施例中,至少两个网格的形状可以手动设置或者根据不同情况由人工智能系统100的一个或以上组件确定。

在一些实施例中,无论网格的形状如何,由细化操作生成的多面体的分区上的点的数量(例如,第一点、第二点、第三点)为如图7C-7E所示,可以如下确定:

Ve(Tn)=3*2n-1+1,>

Me(Tn)=Ve(Tn)-1=3*2n-1,>

V(Tn)=9*2n-2(2n-1+1)+1,(16)

E(Tn)=9*2n-2(3*2n-1+1),>

F(Tn)=9*4n-1,(18)

其中,Ve(Tn)可以指八面体分区一侧的点数;n可以参考细化等级;Me(Tn)以指八面体分区一侧的等段数;V(Tn)可以指八面体的一个分区上所有点的数量;E(Tn)可以指八面体分区上两个相邻点之间的线段数;F(Tn)可以指八面体分区上最精细三角形的数量。如图7C所示,四个点H、g、j和I可以位于八面体的一侧(例如,侧面“HI”)。十个点H、g、j、I、k、m、J、n、i和h可以在八面体的一个分区(例如,分区“HIJ”)上。

地图中的分区可以具有至少两个点,包括网格的顶点和网格内的点。至少两个点中的每个点可以在地图中的分区上具有对应的投影坐标。可以根据分区上的投影坐标系的原点和一个或以上基向量来确定分区上的点的投影坐标,如图7F和7G所示。图7F和7G是根据本申请的一些实施例所示的八面体分区上的示例性投影坐标系的示意图。在一些实施例中,可以根据分区顶点的投影坐标和细化等级来确定八面体的分区上的点的投影坐标。仅作为示例,如图7F所示,分区“KLM”可以是八面体的分区之一。可以根据公式(14)确定分区“KLM”确定分区的一侧上的点的数量。

在一些实施例中,顶点(例如,顶点K)可以被视为投影坐标系的原点。然后,可以根据向量向量和分区“K)M”一侧的点数Ve确定两个基向量(例如,第一基向量和第二基向量)。第一基向量可以指由原点K和沿方向的相邻的第n级等分点形成的向量。第二基向量可以指由原点K和沿方向的相邻的第n级等分点形成的向量。可以根据公式(19)确定基向量:

分区“KLM”上点的投影坐标可以根据两个基向量来确定。例如,分区“KLM”上的任何点(例如,点X)可以由向量表示,并且向量可以表示为因此,分区“KLM”上的点X的投影坐标可以表示为(i,j),其中i可以是等于0、1、……或Ve-1的整数,j可以是等于0、1、……或Ve-1的整数,i+j等于或小于Ve-1。

应当注意的是,在不同细化等级的菱形网格中点的投影坐标可以是可相互转换的。例如,可以根据细化等级q(q>n)处的第二菱形网格的投影坐标来确定细化等级n处的第一菱形网格的投影坐标,如公式(20)所示:

其中,(ii,jj)可以指投影坐标系中细化等级n的第一菱形网格的投影坐标;以及(i,j)可以指投影坐标系中细化等级q处的第二菱形网格的投影坐标。

在一些实施例中,投影点P'可以不属于由细化操作生成的点,因此,可以确定与投影点P'对应的目标点(由细化操作生成)。在一些实施例中,投影点P'在分区ΔACD处的投影坐标可以被称为第一投影坐标。

仅作为示例,图7I是根据本申请的一些实施例所示的六边形网格中的目标中心点的示意图。如图7I所示,在分区ΔACD上存在至少两个2级六边形单元。点R1、R2、R3、R4、R5、R6和R7是六边形网格的中心点。处理引擎112可以将最接近投影点P'的中心点确定为目标中心点。在一些实施例中,处理引擎112可以根据投影点P'的投影坐标和分区ΔACD上的中心点来确定投影点P'与六边形网格的中心点(例如,点R1、R2、R3、R4、R5、R6和R7)之间的距离。处理引擎112可以根据点P'与多个周围中心点之间的距离来确定最接近投影点P'的中心点。如图7I所示,点R7可以是目标中心点。处理引擎112可以将分区ΔACD上的目标中心点的投影坐标指定为第二投影坐标。

在一些实施例中,六边形网格可以跨越八面体的两个或以上分区。穿过八面体的两个或以上分区的六边形网格可以被称为交叉网格。例如,如图7K所示,四个1/6六边形网格AK1K2、AK2K3、AK3K4和AK4K1可以属于相同的六边形网格。因此,目标中心点可以位于相应分区的顶点。又如,如图7K所示,两个相邻面的边界可以将六边形网格分成两半,即两个不同分区上的两个1/2六边形网格可以属于相同的六边形网格。因此,目标中心点可以位于相应分区的一侧。因此,可能需要确定交叉网格的目标中心点属于哪个分区。

图7K是根据本申请的一些实施例所示的交叉网格的目标中心点的归属的示意图。仅出于说明的目的,八面体的八个分区可以展开成一个平面。八个分区的索引可以是0、1、2、3、4、5、6和7。八面体的六个顶点可以是点A、B、C、D、E和F。在一些实施例中,处理引擎112可根据一个或以上规则确定交叉网格的目标中心点的归属。一个或以上规则可以是由处理引擎112确定的默认值,或者由用户通过终端(例如,乘客终端130、司机终端140等)设置或调整默认值。

在一些实施例中,相应分区上的交叉网格的目标中心点的投影坐标可以是(0,0)。因此,处理引擎112可以根据公式(21)确定目标中心点的归属:

其中,f可以指目标中心点的相应分区的初始索引;f'可以指目标中心点的相应分区规则索引。

例如,假设投影点P'位于面“2”则目标中心点可以是点A,且目标中心点的相应分区的初始索引可以是“2”。由于初始索引小于4,相应分区的规则索引可以确定为0。

在一些实施例中,交叉网格的目标中心点的投影坐标位于两个相邻分区的边界上,并且两个相邻分区分别位于边界的北侧和南侧。也就是说,目标中心点(i,j)的投影坐标具有关系i+j=N,其中N可以指边界上相等段的数量,因此在某些实施例中,处理引擎112可以根据公式(22)确定目标中心点的归属:

也就是说,处理引擎112可以确定目标中心点属于位于边界北侧的分区。例如,目标中心点可以位于BC、CD、DE或EB侧,且处理引擎112可以将目标中心点分别指定为属于分区“3”、“0”、“1”或“2”。

在一些实施例中,交叉网格的目标中心点的投影坐标位于两个相邻分区的边界上,并且两个相邻分区分别位于边界的东侧和西侧。也就是说,目标中心点的I坐标或J坐标可以是0,因此在某些实施例中,处理引擎112可以确定目标中心点属于位于边界东侧的分区。例如,目标中心点可以位于AB、AC、AD或AE侧,并且处理引擎112可以将目标中心点分别指定为属于分区“3”、“0”、“1”或“2”。

又例如,如图7J是根据本申请的一些实施例的菱形网格中所示的目标公共点的示意图。该分区可以具有至少两个菱形网格,并且三个或更多个相邻网格可以具有公共点。由于菱形网格的每个顶点也可以是两个或以上其他菱形网格的顶点,因此,菱形网格的每个顶点可以是公共点。

如图7J所示,以网格“STUV”为例,网格“STUV”可以有四个公共点S、T、U和V。菱形网格的每一侧可具有1个单位长度。假设点S的投影坐标是(i,j),点T、V和U的投影坐标可以分别是(i+1,j)、(i,j+1)和(i+1,j+1)。网格“STUV”内的每个点可以具有在(i,i+1)范围内的I坐标。网格“STUV”内的每个点可以具有(j,j+1)范围内的J坐标。在一些实施例中,处理引擎112可以确定具有第一投影坐标的整数坐标的公共点作为目标公共点。例如,点P'的第一投影坐标可以是(i+x,j+y),其中x和/或y可以小于1且大于0。相应地,第一投影坐标的整数坐标可以是(i,j),即点S可以被确定为目标公共点。处理引擎112可以将分区上的目标公共点的投影坐标指定为第二投影坐标。

在一些实施例中,处理引擎112可以根据细化等级、与DGGS相关的多面体的形状、坐标对所在的相应分区的索引及第二个投影坐标确定与坐标对相对应的网格索引。

在一些实施例中,网格索引可以唯一地标识地图中分区上的网格。包括一个或以上坐标对的区域可以被索引到多面体的分区上的至少一个网格。例如,一个或以上坐标对可以位于相同的网格中并且由相同的网格索引来索引。又例如,一个或以上坐标对可以位于不同的网格中并且由不同的网格索引来索引。在一些实施例中,网格索引可以包括与上述细化等级、多面体的形状、相应分区的索引和/或第二投影坐标有关的信息。

网格索引可以表示为一个或以上数字、一个或以上字母、一个或以上符号等的组合。仅作为示例,处理引擎112可以以字符串“OL[]F[]i[]j[]”的形式确定网格索引,其中“O”可以指多面体是八面体、“L”可以指细化等级、“F”可以指代坐标对所在的八面体的相应分区的索引、“i”和“j”可以指第二个投影坐标,并且“[]”可以指一个或以上数字可以填充在字符串的当前位置。例如,如果细化等级是13,则相应分区的索引是1,并且第二投影坐标是(12.34,56.78),则网格索引可以是“OL13F1i1234j5678”。

应当注意的是,以上对过程700的描述是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的指导可以做出多种变化和修改。然而,这些变形和修改不会背离本申请的范围。在一些实施例中,为了促进变换操作,可以将坐标对转换为对应于参考分区的对应坐标对。任何分区都可以被指定为参考分区。例如,索引为“0”的分区可以被指定为参考分区。如果坐标对不在参考分区上,则处理引擎112可以将坐标对转换为参考分区“0”。如图7K所示,用“4”索引的分区可以表示为倒三角形,在转换之后,用“4”索引的分区可以映射到参考分区“0”。因此,点F可以被视为投影坐标系的原点(具有投影坐标(0,0)),向量FD可以对应于投影坐标系的I轴,并且向量FC可以对应到投影坐标系的J轴。

图8是根据本申请的一些实施例所示的用于根据初始边界网格列表确定地理围栏的(最终)边界网格列表的示例性过程的流程图。在一些实施例中,过程800可以在如图1所示的人工智能系统100中实现。例如,过程800可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程800在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图8中所示和下面描述的过程800的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程800来执行过程500的步骤520。

在810中,处理引擎112(例如,地理围栏边界确定模块420的识别单元421)可以识别对应于至少两个边界点的边界网格列表(例如,在612中确定的初始边界网格列表、在653中确定的初始边界网格列表)。

在820中,处理引擎112(例如,地理围栏边界确定模块420的选择单元422)可以从至少两个边界点选择两个相邻的边界点。仅出于说明目的,两个相邻的边界点在本文中可称为点对。对于对应于N个边界点的边界网格列表,N个边界点的每两个相邻边界点可以被称为一个点对。处理引擎112可以确定N个边界点的N个点对。应当注意的是对应于边界网格列表的第一个网格的边界点和对应于边界网格列表的最后一个网格的边界点也可以被认为是相邻的并且被称为两个相邻的边界点或者一个点对。在一些实施例中,可以通过内插或移除一个或以上点来更新至少两个边界点。

在830中,处理引擎112(例如,地理围栏边界确定模块420的确定单元423)可以确定两个相邻的边界点是否对应于相同的网格。例如,处理引擎112可以确定对应于两个相邻边界点的网格索引是否彼此相同。如果对应于两个相邻边界点的网格索引是彼此相同的,则处理引擎112(例如,地理围栏边界确定模块420的确定单元423)可以确定相邻的两个边界点对应于相同的网格,例如,图12A中的点C和D。如果对应于两个相邻边界点的网格索引不同,则处理引擎112(例如,地理围栏边界确定模块420的确定单元423)可以确定两个相邻边界点对应到两个不同的网格。

响应于确定两个相邻的边界点对应于相同的网格,可以表示边界网格列表包括重复网格,且重复网格在边界网格列表中相邻,然后,过程800可以进行到840。在840中,处理引擎112(例如,地理围栏边界确定模块420的移除单元424)可以移除两个相邻边界点中的一个。被移除的边界点可以是两个相邻边界点中的任意一个。然后在880中,处理引擎112(例如,地理围栏边界确定模块420的更新单元426)可以通过移除与移除的边界点相对应的网格来更新边界网格列表。

响应于确定两个相邻的边界点对应于两个不同的网格,过程800可以进行到850。在850中,处理引擎112(例如,地理围栏边界确定模块420的插值单元425)可以选择两个相邻边界点之间的点。所选择的点可以是两个相邻边界点之间的任意点,例如,两个相邻边界点的中点、两个相邻边界点的附近的点或两相邻的边界点之间的任何其他点。本申请将采用所选择的点是两个相邻边界点的中点作为示例,这不是限制性的。在一些实施例中,处理引擎112(例如,插值单元425)可以直接内插对应于边界网格列表中的所选点的网格,以更新边界网格列表。在一些实施例中,处理引擎112(例如,地理围栏边界确定模块420的插值单元425)可以进一步确定是否满足插值条件。插值条件可以是对应于所选择的点的网格不同于对应于两个相邻边界网格的网格中的任一个。

当满足插值条件时,处理引擎112(例如,地理围栏边界确定模块420的插值单元425)可以在870中内插在两个相邻边界点之间的所选择的点。内插点可以被指定为地理围栏的边界点。然后在880中,处理引擎112(例如,地理围栏边界确定模块420的更新单元426)可以通过内插对应于与两个相邻的边界点对应的两个网格之间的内插边界点的网格来更新边界网格列表。

当不满足插值条件时,处理引擎112可以不插入所选择的点。在一些实施例中,对于与边界网格列表相关的所有点对,处理引擎112可以在两个相邻边界点之间插入一个或以上点,或者并行地移除两个相邻边界点的点。在一些实施例中,对于与边界网格列表相关的所有点对,处理引擎112可以在两个相邻边界点之间插入一个或以上点,或者依次移除两个相邻边界点中的一个点。例如,处理引擎112可以从820中的至少两个边界点顺序地获取两个相邻的边界点并执行步骤320至870,然后过程800可以返回到步骤820获取另外两个相邻的边界点。因此,为了获取由地理围栏占据的所有网格,处理引擎112可以重复执行上述操作(例如,从步骤820到步骤880描述的操作)。对于每个点对,当确定满足插值条件时,处理引擎112可以递归地插值点直到两个相邻边界网格点(包括对应于初始边界的网格列表和插入的边界网格的边界点)之间的插值生成对应于与两个相邻边界点之一相同网格的点。然后,处理引擎112可以根据移除的边界点和/或内插的边界点来确定地理围栏的最终边界网格列表。

图9A是根据本申请的一些实施例所示的用于确定与地理区域相关联的一个或以上封闭区域的示例性过程的流程图。在一些实施例中,过程900可以在人工智能系统100中实现,如图1所示。例如,过程900可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的过程的操作旨在是说明性的。在一些实施例中,所述过程900在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图9A中所示和下面描述的过程900的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程900来执行过程500的步骤530。

在910中,处理引擎112(例如,封闭区域确定模块430的网格获取单元431)可以获取与地理区域相关的边界网格列表。在一些实施例中,边界网格列表可以是在图5的步骤520处确定的边界网格列表。边界网格列表可以包括地理围栏经过的所有网格。边界网格列表的网格可以按地理围栏的顺序排列。

在920中,处理引擎112(例如,封闭区域确定模块430的枢纽网格确定单元432)可以确定边界网格列表是否包括一个或以上的枢纽网格。如上所述,枢纽网格可以指地理围栏经过两次或以上次数的网格,并且枢纽网格可以在边界网格列表中出现两次或以上次数。因此,处理引擎112可以使用搜索技术确定边界网格列表是否包括两个或以上相同的网格。例如,处理引擎112可以根据网格的相对位置为边界网格列表的网格创建链表或辅助图,然后处理引擎112可以通过搜索链表或辅助图来确定边界网格列表是否包括一个或以上枢纽网格。在一些实施例中,可以通过执行图9中描述的一个或以上操作来获取枢纽网格的确定。

响应于确定所述边界网格列表不包括枢纽网格,过程900可以进行到930。在930中,处理引擎112(例如,封闭区域确定模块430的封闭区域确定单元433)可以将所述地理区域指定为一个封闭区域。

响应于确定边界网格列表包括一个或以上枢纽网格,过程900可以进行到940。在940中,处理引擎112(例如,封闭区域确定模块430的封闭区域确定单元433)可根据一个或以上枢纽网格确定一个或以上封闭区域。例如,对于一个或以上枢纽网格中的每个枢纽网格,处理引擎112可以将地理区域中的一个区域识别为第一封闭区域并且将在地理区域中的区域枢纽网格的另一边识别为第二封闭区域。在一些实施例中,可以根据在边界网格列表中出现的枢纽网格的数量M来确定与枢纽网格相关的封闭区域的数量N。在一个实施例中,如果特定枢纽网格在边界网格列表中出现M次(例如,2、3、4……),则可能存在与特定枢纽网格相关的N=M个封闭区域。在另一实施例中,如果特定枢纽网格在边界网格列表中出现M次(例如,3、4……),则可能存在N(N小于M,例如,N=M-1)个与特定枢纽网格相关的封闭区域。

图9B是根据本申请的一些实施例所示的用于使用堆栈操作确定与地理区域相关联的一个或以上封闭区域的示例性过程的流程图。在一些实施例中,过程950可以在如图1所示的人工智能系统100中实现。例如,过程950可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程950在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图9B所示和下面描述的过程950的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程950来执行过程500和过程900的步骤530。

在951中,处理引擎112(例如,封闭区域确定模块430)可以生成空栈和空辅助图。在一些实施例中,处理引擎112可以生成空栈和空辅助图以存储或处理与本申请中描述的信息(例如,边界点、网格、网格索引)地理区域的地理围栏相关的信息。辅助图可以包括两个部分,包括键部分和值部分。键和对应值可以被称为表示为<键,值>的键-值对。辅助图中的键可以是唯一的,并且每个键可以仅与一个值相关联。在一些实施例中,边界网格列表中的网格可以被顺序编号。每个网格可以对应于唯一的序列号。例如,如果边界网格列表中的网格(或相应的网格索引)的总数是n,因此网格的序列号可以标记为“1”、“2”、“3”、……、“n”。可以将序列号输入到辅助图的一部分中,并且可以将网格的相应网格索引引入辅助图的其他部分。在一些实施例中,辅助图的键-值对可以表示为<序例号,网格索引>,即序列号是键,并且网格索引是与键有关的值。或者,辅助图的键-值对可以表示为<网格索引,序列号>,即,网格索引是键,序列号是与键有关的值。在952中,处理引擎112(例如,封闭区域确定模块430的网格获取单元431)可以从边界网格列表获取网格(例如,与地理区域的地理围栏有关的最终边界网格列表)。在一些实施例中,处理引擎112,例如,可以从地理围栏边界确定模块420或存储设备(例如,存储设备150)顺序地获取边界网格列表中的网格。处理引擎112可以首先获取对应于序列号1的网格,然后获取对应于序列号2的网格,然后获取对应于序列号3的网格,……,最后获取对应于网格序号n的网格。

在953中,处理引擎112(例如,封闭区域确定模块430的枢纽网格确定单元432)可以通过搜索辅助图来确定对应于网格的网格索引是否在辅助图中。

响应于确定对应于网格的网格索引不在辅助图中,过程950可以进行到954。在954中,处理引擎112(例如,封闭区域确定模块430)可以推送堆栈中的网格索引。在一些实施例中,处理引擎112可以同时推送堆栈中的网格索引以及堆栈或另一堆栈中的对应序列号。处理引擎112还可以在954中的辅助图中输入网格索引。具体地,处理引擎112可以将网格索引输入到辅助图的一部分(例如,值部分),并将相应的序列号输入到辅助图的其他部分(例如,键部分)。应当注意推送堆栈中的网格并将网格输入到地图中可以在相同的步骤或不同步骤中执行。在步骤954之后,过程950可以进行到952以获取对应于下一个序列号的网格。

在辅助图中,响应于确定对应于网格的网格索引,过程950可以进行到955。在955中,处理引擎112(例如,封闭区域确定模块430的枢纽网格确定单元432)可以将网格指定为枢纽网格。处理引擎112还可以将对应于枢纽网格的网格索引指定为枢纽网格索引。

在956中,处理引擎112(例如,封闭区域确定模块430的封闭区域确定单元433)可以从堆栈中弹出网格索引,直到堆栈顶部的网格索引与枢纽网格索引相同。在一些实施例中,处理引擎112还可以从堆栈顶部弹出与枢纽网格索引相同的网格索引。然后在957中,处理引擎112(例如,封闭区域确定模块430的封闭区域确定单元433)可以将与弹出的网格索引对应的网格指定为与枢纽网格(或枢纽网格索引)相关的封闭区域的边界网格。在一些实施例中,当在954中将网格和相应的序列号推入堆栈中时,处理引擎112可以同时在956中从堆栈的顶部弹出网格索引和相应的序列号。

应当注意的是,以上对过程950的描述是出于说明的目的而提供的,并且不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的指导可以做出多种变化和修改。然而,这些变形和修改不会背离本申请的范围。在一些实施例中,网格索引和相应的序列号可以被推入两个堆栈中。例如,在951中,处理引擎112可以生成两个空栈。在954中,可以分别在两个堆栈中推送网格索引和相应的序列号。在956中,处理引擎112可以分别从两个堆栈弹出网格索引和相应的序列号。在一些实施例中,在956中,处理引擎112可以不从堆栈弹出与枢纽网格索引相同的网格索引。

在一些实施例中,在确定第一封闭区域之后,过程950可以进行到952。在952中,处理引擎112可以继续从边界网格列表获取网格。通过执行步骤953至步骤957,处理引擎112可以确定下一个封闭区域。在一些实施例中,可以重复步骤952至步骤957以确定一个或以上封闭区域。通过重复执行步骤952至步骤957,可以处理边界网格列表中所有网格的网格索引(例如,从堆栈中压入或弹出)。在一些实施例中,当压入堆栈的第一网格不是枢纽网格时,在处理引擎112确定所有的枢纽网格之后,仍可能有几个网格(或网格索引)保留在堆栈中,则处理引擎112可以将对应于保留在堆栈中的网格索引的网格指定为另一个封闭区域的边界网格。当执行过程950的所有操作时,处理引擎112可以识别地理区域的所有封闭区域(例如,识别每个封闭区域的边界网格)。

图10是根据本申请的一些实施例所示的用于确定两个或以上子区域的边界网格的示例性过程的流程图。在一些实施例中,过程1000可以在如图1所示的人工智能系统100中实现。例如,过程1000可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程1000在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图10中所示并在下面描述的过程1000的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程1000来执行过程500的步骤550。

在1010中,处理引擎112(例如,子区域确定模块440的重叠边缘网格确定单元441)可以确定子区域与至少一个或以上分区的边缘相交的重叠边缘网格。在一些实施例中,术语分区的“边缘”、“边界”和“边”可以互换使用。在一些实施例中,如果封闭区域跨越两个或以上分区,则处理引擎112(例如,子区域确定模块440)可将封闭区域分割为两个或以上子区域(参考在过程500中的540中描述的操作)。在一些实施例中,对于一个子区域,该子区域可以与地图的分区的一个或以上边缘相交。处理引擎112可以根据一个或以上边缘上的子区域的边界网格确定一个或以上重叠的边缘网格。例如,如图11B所示,示例性矩形分区1166,其包括至少两个示例性矩形网格1167。应当注意分区和/或网格可以具有其他形状和数量。处理引擎112(例如,子区域确定模块440)可以将子区域1162(具有倾斜的虚线的区域)确定为与封闭区域1161相关的子区域之一。在一些实施例中,为了确定分区1166上的子区域1162的一个或以上重叠边缘网格,处理引擎112(例如,重叠网格确定单元441)可以首先确定封闭区域1161的边界与分区1166相交的点(例如,点A和点B)。然后,处理引擎112(例如,重叠网格确定单元441)可以根据网格的网格索引和分区1166的索引,确定边缘EC上的点A和点C之间的网格作为第一重叠边缘网格。处理引擎112(例如,重叠网格确定单元441)可以根据网格的网格索引和分区1166的索引,确定边缘FC上的点B和点C之间的网格为第二重叠边缘网格。应当注意的是,点A和点B位于封闭区域1162的边界,因此,点A的网格和点B的网格可以属于子区域1162的边界网格(这里也称为初始边界网格),而不是子区域1162的重叠网格。

在1020中,处理引擎112(例如,子区域确定模块440的边界网格确定单元442)可以根据与两个或以上子区域相关的封闭区域的重叠的边缘网格和边界确定子区域的边界网格。在一些实施例中,对于子区域,处理引擎112可以组合子区域的初始边界网格和与子区域相关的重叠边缘网格以确定子区域的边界网格(这里也称为最终边界网格)。应当注意的是,对于在540中确定的每个子区域,处理引擎112可以执行图10中描述的操作以确定子区域的边界网格。

图11A是根据本申请的一些实施例所示的用于确定子区域中的内部网格的示例性过程的流程图。在一些实施例中,过程1100可以在如图1所示的人工智能系统100中实现。例如,过程1100可以作为指令的形式存储在存储设备150和/或其他存储设备(例如,ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎112、服务器110中的处理引擎112的处理器220、服务器110中的处理引擎112的一个或以上模块)调用和/或执行。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,所述过程1100在实现时可以添加一个或以上未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图11A中所示和下面描述的过程1100的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程1100来执行过程500的步骤560。

在1110中,处理引擎112(例如,内部网格确定模块450的矩阵初始化单元451)可以初始化扫描矩阵。扫描矩阵可包括至少两个单元。扫描矩阵的每个单元可以具有第一值。扫描矩阵中填充的值可以是任何格式,例如数字、字母。出于说明的目的,本申请中其他地方描述的扫描矩阵中填充的值可以是数字格式,例如0、1、2、3。在一些实施例中,第一值可以是零。在一些实施例中,处理引擎112(例如,内部网格确定模块450)可以根据子区域的边界网格的跨度来确定扫描矩阵的大小。

仅作为示例,如图11B所示,OE和OF可以被指定为矩形分区OECF的I轴和J轴。封闭区域1161(例如,具有圆形形状)穿过多于一个分区。子区域1162在矩形分区OECF的I轴方向上穿过三个网格,并且在矩形分区OECF的J轴方向上穿过六个网格。处理引擎112可以确定子区域1162的跨度在I轴方向上是3并且在J轴方向上是6。然后,处理引擎112(例如,内部网格确定模块450)可以确定尺寸为3可以的扫描矩阵。处理引擎112(例如,内部网格确定模块450的矩阵初始化单元451)可以通过将第一值(例如,零)填充到扫描矩阵的每个单元来初始化扫描矩阵。仅作为示例,初始化扫描矩阵Z可以表示为公式(23):

在1120中,处理引擎112(例如,内部网格确定模块450的矩阵更新单元452)可以通过向扫描矩阵的第一组中的至少两个单元中的每个单元填充第二值来对扫描矩阵执行第一次更新。第一组中的至少两个单元可以对应于子区域的边界网格。第二值可以是与第一值不同的任何值(或数字)。例如,第二值可以是1。

出于说明的目的,第一次更新之后的扫描矩阵在本文中可称为第一次更新的扫描矩阵。仅作为示例,当第一值为0且第二值为1时,第一次更新的扫描矩阵Z'可以表示为公式(24):

在步骤1120之后,部分单元可以具有第一值,并且部分单元(例如,第一组中的至少两个单元)可以具有第二值。然后在1130,处理引擎112(例如,内部网格确定模块450)对于具有第一值的单元,可以使用射线法确定对应于该单元的网格是否在地理区域中。在一些实施例中,对于扫描矩阵中的所有单元中的每个单元,处理引擎112可以在1130中使用射线方法确定对应于该单元的网格是否在地理区域中。

响应于确定对应于该单元的网格在地理区域中,过程1100可以进行到1140。在1140中,处理引擎112(例如,内部网格确定模块450的矩阵更新单元452)可以通过将第三值填充到扫描矩阵的单元来对扫描矩阵执行第二次更新。第三值可以是除第一值之外的任何值(或数字),并且与第二值相同或不同。例如,第三值可以是2。在一些实施例中,如果对应于具有第一值的单元的一个或以上网格在地理区域中,则处理引擎112可以通过将第三值填充到一个或以上对应单元来对扫描矩阵执行第二次更新。

出于说明的目的,第二次更新之后的扫描矩阵在本文中可称为第二次更新的扫描矩阵。仅作为示例,当第三值为2时,第二次更新的扫描矩阵Z”可以表示为公式(25):

在1150中,处理引擎112(例如,内部网格确定模块450的内部网格确定单元453)可以指定与具有第三值(例如,2)的单元对应的网格作为子区域1162中的内部网络。

在一些实施例中,处理引擎120可以识别被第一组中的至少两个单元包围的一个或以上单元,并确定与第一组中的至少两个单元所环绕的单元对应的网格作为子区域的内部网格。

处理引擎112可以遍历扫描矩阵以选择具有第二(或第三)值的单元。处理引擎112可以指定与具有第二(或第三)值的单元对应的网格作为与子区域对应的目标网格。当处理引擎112对地理区域中的每个子区域执行过程1100中的操作时,处理引擎112可以通过收集与地理区域中的每个子区域相关的所有目标网格(包括边界网格和内部网格)来确定地理区域的目标网格(包括边界网格和内部网格)。

上文已对基本概念做了描述,显然,对于已阅读此详细揭露的本领域的普通技术人员来讲,上述详细揭露仅作为示例,而并不构成对本申请的限制。虽然此处并没有明确说明,本领域技术人员可以对本申请进行各种修改、改进和修正。这类修改、改进和修正在本申请中被建议,所以所述修改、改进、修正仍属本申请示范实施例的精神和范围。

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

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改良。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可以被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可以表现为位于一个或以上计算机可读介质中的计算机产品,所述产品包括计算机可读程序编码。

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

本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如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)。

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

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

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±明所述的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

本文引用的每篇专利、专利申请、专利申请的公布和其他材料,例如文章、书籍、说明书、出版物、文献、物品和/或类似物,在此通过引用并入本文。其全部用于所有目的,除了与其相关的任何起诉文件历史,与本文件不一致或相冲突的任何相同的起诉文件历史,或任何可能对现在或后来与本文件有关的权利要求的最广泛范围具有限制性影响的任何相同的起诉文件历史。作为示例,在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关联的术语、描述、定义和描述之间存在任何不一致或冲突时,以本文中的术语为准。

最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的指导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号