CN109029476A - 一种用于确定可达区域的方法和装置 - Google Patents

一种用于确定可达区域的方法和装置 Download PDF

Info

Publication number
CN109029476A
CN109029476A CN201810565693.7A CN201810565693A CN109029476A CN 109029476 A CN109029476 A CN 109029476A CN 201810565693 A CN201810565693 A CN 201810565693A CN 109029476 A CN109029476 A CN 109029476A
Authority
CN
China
Prior art keywords
section
track
time
way
query point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810565693.7A
Other languages
English (en)
Other versions
CN109029476B (zh
Inventor
李瑞远
鲍捷
阮思捷
郑宇�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Jingdong Technology Holding Co Ltd
Original Assignee
Beijing Jingdong Financial Technology Holding Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Financial Technology Holding Co Ltd filed Critical Beijing Jingdong Financial Technology Holding Co Ltd
Priority to CN201810565693.7A priority Critical patent/CN109029476B/zh
Publication of CN109029476A publication Critical patent/CN109029476A/zh
Application granted granted Critical
Publication of CN109029476B publication Critical patent/CN109029476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • G01C21/3476Special cost functions, i.e. other than distance or default speed limit of road segments using point of interest [POI] information, e.g. a route passing visible POIs

Abstract

本发明公开了一种用于确定可达区域的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:采集路段数据和轨迹数据,其中,所述路段数据包括所述路段的起点位置和终点位置,所述轨迹数据包括所述轨迹所途经的路段和用于所途经的路段的时间;接收查询点、最大轨迹拼接次数以及预算时间;响应于所述查询点、所述最大轨迹拼接次数以及所述预算时间,基于所述路段数据和所述轨迹数据,确定从所述查询点出发,在所述预算时间以内的可达区域,其中,在所述可达区域内执行的轨迹拼接次数不大于所述最大轨迹拼接次数。该实施方式实现了在考虑交通状态的同时减少对反映交通状况的轨迹数据量的需求以及高效可靠的确定可达区域的技术效果。

Description

一种用于确定可达区域的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于可达区域确定的 方法和装置。
背景技术
目前,基于给定位置确定可达区域的场景可提供许多服务,包括: 兴趣点推荐,例如,基于用户提供的位置向该用户推荐其10分钟内能 够到达的餐厅;车辆调度,例如,基于用户提供的位置向5分钟内能 够抵达该用户位置的出租车通知用车需求;应急保障,例如,当在某 位置发生交通事故,向3分钟内能够抵达事故现场的警车发出派遣信 息。
传统的可达区域确定方法主要采用基于静态数据的方法,例如基 于欧几里得距离或者基于路段数据。这些方法假设车辆的速度恒定, 然后基于给定时间确定可抵达的区域。随着大规模的轨迹数据产生, 基于轨迹数据的可达区域确定方法受到关注。
但是,在实现本发明过程中,发明人发现现有技术中至少存在如 下问题:基于例如欧几里得距离或者路段数据的静态数据的可达区域 确定方法没有考虑到与时间密切相关的交通状况,例如深夜的10分钟 年内可抵达的区域更大,而早高峰的10分钟内可抵达的区域较少;而 基于轨迹数据的可达区域确定方法依赖于大量的轨迹数据,除了运算 速度受限以外,因为在较短时间内(例如10分钟)的轨迹数量有限, 该方法也无法有效地应用到实时确定可达区域的场景中。
发明内容
有鉴于此,本发明的实施例提供了一种用于可达区域确定的方法 和装置,能够有效地确定距给定位置的可达区域。本发明的实施例考 虑了静态的路段信息以及动态的交通状况,尤其有助于在反映交通状 态的轨迹数据较少的情况下高效可靠的确定可达区域,因而可实时的 确定可达区域。
为实现上述目的,根据本发明实施例的一个方面,提供了一种用 于确定可达区域的方法,其特征在于,包括:采集路段数据和轨迹数 据,其中,所述路段数据包括所述路段的起点位置和终点位置,所述 轨迹数据包括所述轨迹所途经的路段和用于所途经的路段的时间;接 收查询点、最大轨迹拼接次数以及预算时间;响应于所述查询点、所 述最大轨迹拼接次数以及所述预算时间,基于所述路段数据和所述轨 迹数据,确定从所述查询点出发,在所述预算时间以内的可达区域, 其中,在所述可达区域内执行的轨迹拼接次数不大于所述最大轨迹拼 接次数。
可选的,所述用于确定可达区域的方法,其特征在于,使用四元 数组(tri,ej,tij,k)标记从所述查询点起通过轨迹tri、途经路段ej,花费时 间tij的可达区域,其中,所述轨迹tri途经路段ej,k为从所述查询点 起通过所述轨迹tri至所述路段ej的终点所花费的轨迹拼接次数,还包 括:初始四元数组创建步骤:基于所述查询点创建初始四元数组(trnull,enull,0,0),其中,所述trnull表示初始无轨迹途经所述查询点,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;轨迹 拼接步骤:根据所述轨迹数据确定途经前一次创建的四元数组中的路 段的终点、与前一次创建的四元数组中的轨迹不同的轨迹tri,确定所 述轨迹tri途经所述终点之后继续途经的路段ej,根据所述轨迹tri、所 述路段ej、从所述查询点起通过先前创建的四元数组中的轨迹和所述轨 迹tri至所述路段ej的终点所花费的时间和轨迹拼接次数创建四元数组 (tri,ej,tij,k),其中,从所述查询点起至所述路段ej的终点所花费的时间 tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,所述 轨迹拼接次k为执行所述轨迹拼接步骤的次数,丢弃所述tij大于所述 预算时间的四元数组;可达区域确定步骤:重复执行所述轨迹拼接步 骤,直至所述轨迹拼接次数大于所述最大轨迹拼接次数,将所述四元 数组中的路段的集合识别为所述可达区域。
可选的,所述用于确定可达区域的方法,其特征在于,还包括: 在所述轨迹拼接步骤中,如果在先前创建的四元数组中存在一四元数 组(tri’,ej’,ti’j’,k’),使得与在所述轨迹拼接步骤中创建的四元数组(tri,ej, tij,k)相比,tri’=tri,ej’=ej,ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej, tij,kij)。
可选的,所述用于确定可达区域的方法,其特征在于,在所述轨 迹拼接步骤中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,再加 上轨迹拼接所花费的时间。
可选的,所述用于确定可达区域的方法,其特征在于,使用作为 扩展路段的三元数组(ej,tj,k)标记从所述查询点起花费时间tj至路段ej的终点的可达区域,其中,k为从所述查询点起至所述路段ej的终点所 花费的轨迹拼接次数,还包括:初始三元数组创建步骤:基于所述查 询点创建作为所述扩展路段的初始三元数组(enull,0,0),其中,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;连接 路段确定步骤:根据所述路段数据确定以前一次创建的扩展路段的终 点为起点的路段,以作为本次连接路段;扩展路段确定步骤:根据所 述轨迹数据确定途经所述本次连接路段花费时间最少的轨迹tri,所述 轨迹tri途经所述本次连接路段的起点之后继续途经的路段ej,根据所 述路段ej、从所述查询点起途经先前创建的三元数组中的路段和所述路 段ej所花费的时间和轨迹拼接次数创建表示所述扩展路段的三元数组 (ej,tj,k),其中,从所述查询点起至所述路段ej的终点所花费的时间tj为途经先前创建的三元数组中的路段和所述路段ej的时间之和,丢弃 所述tj大于所述预算时间的三元数组;可达区域确定步骤:重复执行所 述连接路段确定步骤和所述扩展路段确定步骤,直至所述轨迹拼接次 数大于所述最大轨迹拼接次数,将所述三元数组中的路段的集合识别 为所述可达区域。
可选的,所述用于确定可达区域的方法,其特征在于,还包括: 在所述扩展路段确定步骤中,如果在所述三元数组中存在一三元数组 (ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比,ej’=ej,tj’≤tj,则丢弃 所述三元数组(ej,tj,kj)。
可选的,所述用于确定可达区域的方法,其特征在于,在所述扩 展路段确定步骤中,从所述查询点起至所述路段ej的终点所花费的时 间tij为途经先前创建的三元数组中的路段和所述路段ej的时间之和, 再加上轨迹拼接所花费的时间。
可选的,所述用于确定可达区域的方法,其特征在于,所述最大 轨迹拼接次数为2次至5次。
可选的,所述用于确定可达区域的方法,其特征在于,还包括: 如果所述查询点不在所述路段的起点或终点,则根据所述查询点至所 述查询点所在路段的起点或终点的距离,或者根据从所述查询点至所 述查询点所在路段的起点或终点所花费的时间,将所述查询点视为在 所在路段的起点或终点。
可选的,所述用于确定可达区域的方法,其特征在于,还包括: 根据所述路段数据和所述轨迹数据,创建轨迹-路段哈希表和路段-轨迹 哈希表,其中,可以使用轨迹-路段哈希表来根据轨迹查找到所述轨迹 途经的路段,可以使用路段-轨迹哈希表来根据路段查找到途经所述路 段的轨迹。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种 用于确定可达区域的装置,其特征在于,包括:数据采集模块,用于 采集路段数据和轨迹数据,其中,所述路段数据包括所述路段的起点 位置和终点位置,所述轨迹数据包括所述轨迹所途经的路段和用于所 途经的路段的时间;收发模块,用于接收查询点、最大轨迹拼接次数 以及预算时间;可达区域确定模块,用于响应于所述查询点、所述最 大轨迹拼接次数以及所述预算时间,基于所述路段数据和所述轨迹数 据,确定从所述查询点出发,在所述预算时间以内的可达区域,其中, 在所述可达区域内执行的轨迹拼接次数不大于所述最大轨迹拼接次 数。
可选的,所述可达区域确定模块还包括第一可达区域确定模块, 所述第一可达区域确定模块使用四元数组(tri,ej,tij,k)标记从所述查询 点起通过轨迹tri、途经路段ej,花费时间tij的可达区域,其中,所述 轨迹tri途经路段ej,k为从所述查询点起通过所述轨迹tri至所述路段 ej的终点所花费的轨迹拼接次数,其特征在于,执行初始四元数组创建:基于所述查询点创建初始四元数组(trnull,enull,0,0),其中,所述trnull表 示初始无轨迹途经所述查询点,所述enull表示初始无路段途经所述查询 点,所述查询点为所述enull的终点;执行轨迹拼接:根据所述轨迹数据 确定途经前一次创建的四元数组中的路段的终点、与前一次创建的四 元数组中的轨迹不同的轨迹tri,确定所述轨迹tri途经所述终点之后继 续途经的路段ej,根据所述轨迹tri、所述路段ej、从所述查询点起通过 先前创建的四元数组中的轨迹和所述轨迹tri至所述路段ej的终点所花 费的时间和轨迹拼接次数创建四元数组(tri,ej,tij,k),其中,从所述查询 点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组 中的路段和所述路段ej的时间之和,所述轨迹拼接次k为执行所述轨 迹拼接步骤的次数,丢弃所述tij大于所述预算时间的四元数组;执行 可达区域确定,重复进行所述执行轨迹拼接,直至所述轨迹拼接次数 大于所述最大轨迹拼接次数,将所述四元数组中的路段的集合识别为 所述可达区域。
可选的,所述用于确定可达区域的装置,其特征在于,还包括: 在所述执行轨迹拼接中,如果在先前创建的四元数组中存在一四元数 组(tri’,ej’,ti’j’,k’),使得与在所述轨迹拼接步骤中创建的四元数组(tri,ej, tij,k)相比,tri’=tri,ej’=ej,ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej, tij,kij)。
可选的,所述用于确定可达区域的装置,其特征在于,在所述执 行轨迹拼接中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,再加 上轨迹拼接所花费的时间。
可选的,所述可达区域确定模块还包括第二可达区域确定模块, 所述第二可达区域确定模块使用作为扩展路段的三元数组(ej,tj,k)标记 从所述查询点起花费时间tj至路段ej的终点的可达区域,其中,k为从 所述查询点起至所述路段ej的终点所花费的轨迹拼接次数,其特征在 于,执行初始三元数组创建:基于所述查询点创建作为所述扩展路段 的初始三元数组(enull,0,0),其中,所述enull表示初始无路段途经所述 查询点,所述查询点为所述enull的终点;执行连接路段确定:根据所述 路段数据确定以前一次创建的扩展路段的终点为起点的路段,以作为 本次连接路段;执行扩展路段确定:根据所述轨迹数据确定途经所述 本次连接路段花费时间最少的轨迹tri,所述轨迹tri途经所述本次连接 路段的起点之后继续途经的路段ej,根据所述路段ej、从所述查询点起 途经先前创建的三元数组中的路段和所述路段ej所花费的时间和轨迹 拼接次数创建表示所述扩展路段的三元数组(ej,tj,k),其中,从所述查 询点起至所述路段ej的终点所花费的时间tj为途经先前创建的三元数 组中的路段和所述路段ej的时间之和,丢弃所述tj大于所述预算时间 的三元数组;执行可达区域确定:重复进行所述执行连接路段确定和 所述执行扩展路段确定,直至所述轨迹拼接次数大于所述最大轨迹拼 接次数,将所述三元数组中的路段的集合识别为所述可达区域。
可选的,所述用于确定可达区域的装置,其特征在于,还包括: 在所述执行扩展路段确定中,如果在所述三元数组中存在一三元数组 (ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比,ej’=ej,tj’≤tj,则丢弃 所述三元数组(ej,tj,kj)。
可选的,所述用于确定可达区域的装置,其特征在于,在所述执 行扩展路段确定中,从所述查询点起至所述路段ej的终点所花费的时 间tij为途经先前创建的三元数组中的路段和所述路段ej的时间之和, 再加上轨迹拼接所花费的时间。
可选的,所述用于确定可达区域的装置,其特征在于,所述最大 轨迹拼接次数为2次至5次。
可选的,所述用于确定可达区域的装置,其特征在于,还包括查 询点确定模块,用于如果所述查询点不在所述路段的起点或终点,则 根据所述查询点至所述查询点所在路段的起点或终点的距离,或者根 据从所述查询点至所述查询点所在路段的起点或终点所花费的时间, 将所述查询点视为在所在路段的起点或终点。
可选的,所述用于确定可达区域的装置,其特征在于,还包括索 引构建模块,用于根据所述路段数据和所述轨迹数据,创建轨迹-路段 哈希表和路段-轨迹哈希表,其中,可以使用轨迹-路段哈希表来根据轨 迹查找到所述轨迹途经的路段,可以使用路段-轨迹哈希表来根据路段 查找到途经所述路段的轨迹。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种 电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于 存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理 器执行,使得所述一个或多个处理器实现如上述用于确定可达区域的 方法中任一所述的方法。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种 计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被 处理器执行时实现如上述用于确定可达区域的方法中任一所述的方 法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用基 于预算时间和最大拼接次数来确定可达区域的技术手段,所以克服了 在轨迹数据不足的情况下无法有效地确定可达区域的技术问题,进而 达到了在考虑交通状态的同时减少对反映交通状况的轨迹数据量的需 求以及高效可靠的确定可达区域的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具 体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的轨迹拼接的示意图;
图2是根据本发明实施例的可达区域确定系统的示意图;
图3是根据本发明实施例的索引表的示意图;
图4是根据本发明实施例的一种基于轨迹扩展的确定可达区域的 方法的流程图;
图5A是用于基于轨迹扩展的确定可达区域的方法的路网和轨迹 示意图;
图5B是根据本发明实施例的用于基于轨迹扩展的确定可达区域的 方法的轨迹扩展树状图;
图6是根据本发明实施例的一种基于跳图索引的确定可达区域的 方法的流程图;
图7A是用于基于跳图索引的确定可达区域的方法的路段和轨迹 示意图;
图7B是用于基于跳图索引的确定可达区域的方法的跳图索引的示 意图;
图7C是用于基于跳图索引的确定可达区域的方法的路段扩展树状 图;
图8是根据本发明实施例的用于确定可达区域的装置的主要模块 的示意图;
图9是本发明实施例可以应用于其中的示例性系统架构图;
图10是适于用来实现本发明实施例的终端设备或服务器的计算机 系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发 明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。 因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做 出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清 楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本文中,路段是指静态的真实道路,每条路段通常具有两个端 点位置,以及方向信息,例如单向路或者双向路;路段数据包括但不 限于路段识别符(路段ID)以及例如形式为经纬度坐标的起点位置和 终点位置。为便于处理,对于双向路,对于具有两个端点的同一道路, 可将其定义为起点位置和终点位置互为相反的两个路段。另一方面, 轨迹是指行人或交通工具历史途经的路段集合,轨迹数据包括但不限 于轨迹标识符(轨迹ID)、速度、方向和途经各路段所花费的时间, 因而轨迹数据可反映历史交通状况。
图1是根据本发明实施例的轨迹拼接的示意图。通常在一小段时 间内经过某一位置的轨迹数目非常有限,这将导致严重的数据稀疏问 题。如图1所示,星状图标表示查询点,例如为用户所在位置,该用 户想要查询10分钟内可到达的咖啡馆。在用户提交查询请求前的短时 间内,例如20分钟内,通过查询点的轨迹较少。如图1所示,例如仅 有轨迹tr1和轨迹tr3通过查询点,其中轨迹tr1途经路段e1和e2,轨迹 tr3途经路段e5和e6,因而在从查询点起仅使用一个轨迹(轨迹拼接次 数为1)的情况下,只有路段e2和e5上的咖啡厅可被推荐给用户。如 若允许从查询点起使用两个轨迹(轨迹拼接次数为2),则通过轨迹tr1和tr2路段e4可达,通过轨迹tr3和tr4路段e8可达,通过轨迹tr6和tr7路段e12可达,因而这些路段上的咖啡馆也可以被推荐给用户。如若允 许从查询点起使用三个轨迹(轨迹拼接次数为3),则通过轨迹tr3、tr4和tr5,路段e19可达,因而路段e19上的咖啡馆也可以被推荐给用户。 因而,通过轨迹拼接,从查询点起的可达区域增大,可推荐给用户的 兴趣点(例如咖啡馆)也随之增多。
但是,在另一方面,随着拼接次数的增大,所提供的可达区域的 可靠性下降。当轨迹拼接次数不超过5次时,所提供的可达区域的误 差率不超过10%,也就是说,对于该可达区域,有10%的概率实际不 可达。因而在一个实施例中,轨迹拼接次数不超过5次。
图2是根据本发明实施例的可达区域确定系统的示意图。如图2 所示,系统主要分成两个部分:轨迹路段处理部分和查询处理部分。
例如,轨迹路段处理部分可从路网中心获取到路段数据,从导航 服务商获取到轨迹数据;或者从该系统的缓存中获取所记录的路段数 据和轨迹数据。另一方面,轨迹路段处理部分对所获取的路段数据和 轨迹数据进行处理,包括轨迹-路段映射和索引构建。
在轨迹-路段映射中,系统例如将轨迹ID和其对应的轨迹所途经的 路段相关联,由此为索引构建进行准备。例如,以图1所示的轨迹为 例,创建表格1以记录轨迹所途经的路段,以及在所途经的各路段上 花费的时间。
表格1轨迹-路段映射
在索引构建中,系统根据路段数据和轨迹数据,创建了轨迹-路段 哈希表和路段-轨迹哈希表。图3是根据本发明实施例的轨迹-路段哈希 表和路段-轨迹哈希表的示意图。轨迹-路段哈希表的哈希键值是轨迹的 ID,对应该哈希键值的可以是但不限于先进先出的队列,其存储了一 段时间δ内该轨迹所途经的路段的路段ID。也即是说,可以使用轨迹- 路段哈希表来根据轨迹ID,迅速查找到对应轨迹所途经的路段的路段 ID。路段-轨迹哈希表的哈希键值是路段的ID,对应该哈希键值的可以 是但不限于先进先出的队列,其存储了一段时间δ内途经该路段的轨 迹的轨迹ID。也即是说,可以使用路段-轨迹哈希表来根据路段ID,迅 速查找到途经对应路段的轨迹的轨迹ID。在一个实施例中,在路段- 轨迹哈希表中,轨迹ID可以对应一个指针,该指针指向轨迹-路段哈希 表中具有同样轨迹ID和路段ID的组合。利用该指针,可以快速找到 到某条轨迹经过某个路段之后所继续途经的路段。例如,如图3所示, 当根据路段-轨迹哈希表获知途经轨迹ej的一个轨迹为tri时,可使用轨 迹tri对应的指针,找到轨迹-路段哈希表中轨迹为tri、路段为ej的位置, 然后找到轨迹tri途经路段ej后继续途经的路段。
可达区域确定系统的查询处理部分主要负责接收用户的查询请 求。例如,用户请求可以包括但不限于,表示用户想要从起出发的查 询点、表示用户愿意花费的时间以到达某一区域的预算时间以及最大 拼接次数。在一个实施例中,预算时间和/或最大拼接次数也可由系统 指定。在接收到用户的查询请求后,可达区域确定系统采用基于轨迹 扩展的确定可达区域的方法,或者基于跳图扩展的确定可达区域的方 法,来确定可达区域,并将可达区域发送给用户。以下,将参考图4、 图5A-5B详细介绍基于轨迹扩展的确定可达区域的方法,参考图6、 图7A-7C详细介绍基于跳图扩展的确定可达区域的方法。具体地,该 系统接收查询点、最大轨迹拼接次数以及预算时间;响应于查询点、 最大轨迹拼接次数以及预算时间,基于路段数据和轨迹数据,确定从 查询点出发,在预算时间以内的可达区域,其中,在可达区域内执行 的轨迹拼接次数不大于最大轨迹拼接次数。
在一个实施例中,用户的查询请求中也可以包括用户感兴趣的信 息,即兴趣点,诸如咖啡馆、餐厅、电影院等。相应地,可达区域确 定系统可与例如地图服务商交互获取包含该兴趣点的地图数据,并将 兴趣点附于所确定的可达区域,一并发送给用户。
在另一个实施例中,用户的查询请求中也可以不包括兴趣点。相 应地,可达区域确定系统可以不与地图服务商交互,以及在发送给用 户的可达区域中不包括兴趣点信息。
图4是根据本发明实施例的一种基于轨迹扩展的确定可达区域的 方法的流程图。图5A是用于基于轨迹扩展的确定可达区域的方法的路 段和轨迹示意图。图5B是根据本发明实施例的用于基于轨迹扩展的确 定可达区域的方法的轨迹扩展树状图。以下,也将以图5A和5B为示 例,说明图4中的流程图。
基于轨迹扩展的确定可达区域的方法将使用四元数组(tri,ej,tij,k) 来标记从查询点起通过轨迹tri、途经路段ej,花费时间tij的可达区域, 其中,轨迹tri途经路段ej,k为从查询点起通过轨迹tri至路段ej的终 点所花费的轨迹拼接次数。可达区域将由系统响应于用户请求而最终 确定的四元数组的路段ej的集合来限定。在图5B中,用节点n表示四元数组,节点n下层左边的数字表示花费时间tij,下层右边的数字表示 轨迹拼接次数k。
在S401中,可达区域确定系统接收查询点、预算时间T、最大轨 迹拼接次数Kmax。如前所述,可以从用户的查询请求中获知预算时间T、 最大轨迹拼接次数Kmax,也可以由该系统来设置这两者。在图5A中, 查询点由星状图标表示,带箭头的实线表示轨迹,灰色方格间的区域 表示路段。在图5A和5B中,预算时间T为4分钟,最大轨迹拼接次 数Kmax为2次,并且为示意方便,假设图5A中任意轨迹途经每条路 段所花费的时间均为1分钟。
在S402中,基于查询点创建初始四元数组(trnull,enull,0,0),即,tij=0, k=0。其中,trnull表示初始无轨迹途经所述查询点,enull表示初始无路 段途经所述查询点,查询点可被认为是enull的终点。在图5B中,n0表 示初始四元数组。
从S403起,开始进入通过轨迹拼接确定四元数组,进而确定可达 区域的步骤。在S403中,将轨迹拼接次数加1。
在S404中,判断轨迹拼接次数是否小于等于最大轨迹拼接次数 Kmax。若是,则流程前进到S405。
在S405中,系统根据轨迹数据确定途经前一次创建的四元数组中 的路段的终点、与前一次创建的四元数组中的轨迹不同的轨迹tri,确 定轨迹tri途经终点之后继续途经的路段ej,根据轨迹tri、所述路段ej、 从查询点起通过先前创建的四元数组中的轨迹和轨迹tri至所述路段ej的终点所花费的时间和轨迹拼接次数创建四元数组(tri,ej,tij,k),其中,从查询点起至路段ej的终点所花费的时间tij为途经先前创建的四元数 组中的路段和路段ej的时间之和,并丢弃所述tij大于所述预算时间的 四元数组。
具体地,例如,对于图5B中表示初始四元数组的n0,在k=1的第 一次迭代中,查询点作为路段enull的终点,而且enull表示起始无路段, trnull表示起始无轨迹,所以例如可根据轨迹数据,确定途经查询点的所 有轨迹(tr1、tr6、tr4),以将其用于创建四元数组。沿着轨迹tr1,途 经查询点之后的路段为e1、e2;沿着轨迹tr6,途经查询点之后的路段 为e13、e14;沿着轨迹tr4,途经查询点之后的路段为e8、e6、e9、e10, 由此,创建四元数组n1、n2、n3、n4、n6、n7、n11、n16
节点n1、n2、n3、n4、n6、n7、n11、n16所表示的四元数组中的花费 时间均小于预算时间T,因而这些节点所表示的四元数组得以保留,在 S406中被加入结果集。
在S407中,可选地,对于结果集中轨迹相同、路段相同的多个四 元数组,保留tij最小的四元数组。由于第一次迭代得到的结果集中(节 点n1、n2、n3、n4、n6、n7、n11、n16)不存在轨迹相同、路段相同的四 元数组,所以在第一次迭代后,没有节点(四元数组)被删除。流程回到S403,进行下一次迭代。
在第二次迭代中,根据S403,k=2,依然不大于最大轨迹拼接次数 Kmax,所以流程前进到S405。在S405中,根据轨迹数据,确定途经节 点n1、n2、n3、n4、n6、n7、n11、n16中的路段的终点,且与节点n1、n2、 n3、n4、n6、n7、n11、n16中的轨迹不同的轨迹,即tr2和tr6;并确定轨迹tr2和tr6途经节点n1、n2、n3、n4、n6、n7、n11、n16中的路段的终点 之后继续途经的路段,由此,创建四元数组n5、n10、n15、n12、n8、n13、 n17、n9、n14。由于这些节点所表示的四元数组中的花费时间均小于预 算时间T,因而这些节点所表示的四元数组得以保留,在S406中被加 入结果集。可选地,在S407中,对结果集中的节点(四元数组)进行 删除处理。即,在轨迹拼接中,如果在先前创建的四元数组中存在一 四元数组(tri’,ej’,ti’j’,k’),使得与新创建的四元数组(tri,ej,tij,k)相比, tri’=tri,ej’=ej,ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej,tij,kij)。例 如,对于n15,由于在结果集中存在节点n9,而节点n9的花费时间为2 分钟,小于节点n15的花费时间4分钟,所以节点n15被丢弃。类似地, 由于n2节点n13被丢弃,由于n6节点n17被丢弃,由于n12节点n14被丢 弃。
优选地,可在创建四元数组的同时,检查当前已创建的四元数组 中是否存在其花费时间和轨迹拼接次数分别小于新创建的四元数组的 花费时间和轨迹拼接次数的四元数组,若存在,则直接丢弃新创建的 四元数组,由此加快用于可达区域确定的处理时间。例如当创建节点 n13时,根据节点n2判断节点n13应被丢弃,则将不再根据节点n13中的 路段e13而遍历到路段e14,由此节点n17将不会被产生,从而节省了处 理时间。
在第三次迭代中,根据S403,k=3,因而在S404中,判断轨迹拼 接次数超过最大轨迹拼接次数,流程进入到S405,其中返回结果集, 结果集中的四元数组的路段构成的范围即为可达区域。
此外,在一个实施例中,可考虑由于进行轨迹拼接而花费的时间, 即从查询点起至路段ej的终点所花费的时间tij为途经先前创建的四元 数组中的路段和路段ej的时间之和,再加上轨迹拼接所花费的时间。 例如,在第二次迭代中,由于发生了轨迹转换,可以将节点n5、n10、 n15、n12、n8、n13、n17、n9、n14中的花费时间增加不同轨迹之间转换所 需要的时间。
优选地,在基于轨迹扩展的确定可达区域的过程中,可以使用轨 迹-路段哈希表和路段-轨迹哈希表,以根据路段-轨迹哈希表快速确定 途经某路段的轨迹,以及根据轨迹-路段哈希表快速确定该轨迹继续途 经的路段。
图6是根据本发明实施例的一种基于跳图索引的确定可达区域的 方法的流程图。图7A是用于基于跳图索引的确定可达区域的方法的路 段和轨迹示意图。图7B是用于基于跳图索引的确定可达区域的方法的 跳图索引的示意图。图7C是用于基于跳图索引的确定可达区域的方法 的路段扩展树状图。以下,也将以图7A-7C为示例,说明图6中的流 程图。
基于跳图索引的确定可达区域的方法将使用作为扩展路段的三元 数组(ej,tj,k)标记从查询点起花费时间tj至路段ej的终点的可达区域, 其中,k为从查询点起至路段ej的终点所花费的轨迹拼接次数。可达区 域将由系统响应于用户请求而最终确定的三元数组的路段ej的集合来 限定。在图7c中,用无灰色填充的节点表示作为扩展路段的三元数组,该节点下层左边的数字表示花费时间tij,下层右边的数字表示轨迹拼接 次数k。以及,在图7c中,用灰色填充的节点表示作为连接路段。在 基于跳图索引确定可达区域的方法中,连接路段是指基于路段数据可 经过、但尚未经过(未花费时间)的路段,其主要用于确定随后的扩 展路段。
在S601中,可达区域确定系统接收查询点、预算时间T、最大轨 迹拼接次数Kmax。如前所述,可以从用户的查询请求中获知预算时间T、 最大轨迹拼接次数Kmax,也可以由该系统来设置这两者。在图6中, 查询点由星状图标表示,带箭头的实线表示轨迹,灰色方格间的区域 表示路段。在图7A-7C中,预算时间T为5.5分钟,最大轨迹拼接次 数Kmax为2次,并且图7A路段ej旁边的轨迹ID以及数字代表对应轨 迹途经该路段所花费的时间(分钟数)。
在S602中,基于查询点创建作为扩展路段的初始三元数组(enull,0, 0),即,tij=0,k=0。其中,enull表示初始无路段途经所述查询点,查 询点可被认为是enull的终点,在图7C中,n0表示初始三元数组。
从S603起,开始进入通过跳图索引确定三元数组,进而确定可达 区域的步骤。在S603中,根据路段数据,确定以前一次创建的扩展路 段的终点为起点的路段,以作为本次的连接路段。
具体地,对于图7C中表示作为扩展路段的初始三元数组的n0,在 第一次迭代中,查询点作为路段enull的终点,而且enull表示起始无路段, 所以例如可根据路段数据,确定以查询点为起点的所有路段,以创建 连接路段。即,路段e6、e1、e9被创建为连接路段。
在S604中,根据轨迹数据确定途经本次连接路段花费时间最少的 轨迹tri。在S605中,判断从前次扩展路段至本次扩展路段是否发生过 轨迹拼接。若发生过轨迹拼接,则在S606中将轨迹拼接次数加1,并 在S607中判断轨迹拼接次数是否不大于最大轨迹拼接次数。若轨迹拼 接次数不大于最大轨迹拼接次数,则在S608中创建作为本次扩展路段 的三元数组(ej,tj,k)。也即,从S604至S608中,根据轨迹数据确定途 经本次连接路段花费时间最少的轨迹tri,轨迹tri途经本次连接路段的 起点之后继续途经的路段ej(S604),根据路段ej、从查询点起途经先 前创建的三元数组中的路段和路段ej所花费的时间和轨迹拼接次数创 建表示扩展路段的三元数组(ej,tj,k)(S608),其中,从所述查询点起 至所述路段ej的终点所花费的时间tj为途经先前创建的三元数组中的 路段和所述路段ej的时间之和(S605-S607),丢弃tj大于预算时间的 三元数组。
具体地,参照图7A,途经连接路段e6、e1、e9的轨迹分别只有一 个,所以途经这些连接路段花费时间最少的轨迹分别为tr1、tr2和tr3。 进一步,在步骤S605、S606中,判断相比于初始三元数组,产生了轨 迹,即k=1。由于k小于最大轨迹拼接次数Kmax,所以在S608中,确 定轨迹tr1、tr2和tr3途经作为连接路段e6、e1、e9的起点的查询点之后 继续途经的路段,以创建扩展路段。即,表示作为扩展路段的三元数 组的节点n4-n9被创建。并且,由于从查询点沿轨迹tr2至路段e4所花 费的时间为6分钟,大于预算时间5.5分钟,所以节点n9被丢弃。
优选地,为加快计算途经路段所花费的时间,系统可以将图7A中 的路段和轨迹的示意图转换为图7B中的跳图索引,并基于该跳图索引 直观快速地获得途经路段所花费的时间。例如,对于轨迹tr2,在创建 节点(三元数组)n6-n9时,可以根据跳图索引得到从e1的起点到其终 点花费的时间为1分钟、从e1的起点到e2的终点花费的时间为2分 钟、…、从e1的起点到e4的终点花费的时间为6分钟。
可选地,在步骤S609中,对于本次创建的路段相同的三元数组(ej, tj,k),保留tj最小的三元数组,将剩余的本次创建的三元数组加入结 果集。由于n4-n8中没有路段相同的三元数组,所以均被保留。因而在 S610中,判断存在本次创建的作为扩展路段的三元数组,流程回到 S603。
具体地,在本次迭代中,在S603中,根据扩展路段n4-n8以及路 段数据,确定连接路段为e2、e3、e4、e5,即节点n10-n13。在S604中, 根据图7B的跳图索引,可知对于其起点与e2的终点相邻的路段e3, 途经其花费时间最少的轨迹为tr4,即从n7以时间花费最少的方式转换至n17经过了轨迹拼接,因而在S605中节点n17的轨迹拼接次数被加1, 变为k=2。相同的道理,从n8至n21也经过了轨迹拼接。由于轨迹拼接 次数均为大于最大轨迹拼接次数,所以在S608,根据途经连接路段e2、 e3、e4、e5花费时间最少的轨迹,表示作为扩展路段的三元数组的节点 n14-n22被创建。由于图7C中虚线表示的节点的花费时间超过预算时间, 因而被丢弃,即本次创建的三元数组为n14、n15、n17、n18、n21、n22
可选地,在S609中,如果在所创建的三元数组中存在一三元数组 (ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比,ej’=ej,tj’≤tj,则丢弃 所述三元数组(ej,tj,kj)。即,对于本次创建的路段相同的三元数组(ej,tj, k),保留tj最小的三元数组,即由于n17的花费时间小于n15的花费时 间,n15被丢弃;由于n18的花费时间小于n21的花费时间,n21被丢弃;或者,也可以根据现有结果集中已有的三元数组,丢弃新创建的三元 数组,即可由于结果集中已经有n8,所以丢弃n15。即,在步骤S609 中,本次创建的作为扩展路段的三元数组n14、n17、n18、n22被加入 到结果集。
以此类推,直至例如由于在S607中轨迹拼接次数大于最大轨迹拼 接次数,无法再创建新的三元数组,则在S612中,返回结果集,结果 集中的三元数组的路段构成的范围即为可达区域。
此外,在一个实施例中,可考虑由于进行轨迹拼接而花费的时间, 即从查询点起至路段ej的终点所花费的时间tij为途经先前创建的三元 数组中的路段和路段ej的时间之和,再加上轨迹拼接所花费的时间。 例如,在第二次迭代中,由于从n7到n17发生了轨迹转换,可以将节点 n17的花费时间增加不同轨迹之间转换所需要的时间。
进一步,如果所述查询点不在所述路段的起点或终点,则在无论 基于轨迹扩展的可达区域确定之前,还是在基于跳图索引的可达区域 确定之前,可以根据路段数据确定查询点至该查询点所在路段的起点 或终点的距离,或者根据轨迹数据确定从查询点至该查询点所在路段 的起点或终点所花费的时间,选择距离较近的端点,或行进至其花费 时间较少的端点以作为输入至可达区域确定方法的查询点。
图8是根据本发明实施例的用于确定可达区域的装置的主要模块 的示意图。用于确定可达区域的装置包括数据采集模块、收发模块、 可达区域确定模块、查询点确定模块以及索引构建模块,其中可达区 域确定模块还包括第一可达区域确定模块和第二可达区域确定模块。
数据采集模块用于采集路段数据和轨迹数据,其中,所述路段数 据包括所述路段的起点位置和终点位置,所述轨迹数据包括所述轨迹 所途经的路段和用于所途经的路段的时间。
收发模块,用于接收查询点、最大轨迹拼接次数以及预算时间。
可达区域确定模块,用于响应于所述查询点、所述最大轨迹拼接 次数以及所述预算时间,基于所述路段数据和所述轨迹数据,确定从 所述查询点出发,在所述预算时间以内的可达区域,其中,在所述可 达区域内执行的轨迹拼接次数不大于所述最大轨迹拼接次数。
所述可达区域确定模块还包括第一可达区域确定模块,所述第一 可达区域确定模块使用四元数组(tri,ej,tij,k)标记从所述查询点起通过 轨迹tri、途经路段ej,花费时间tij的可达区域,其中,所述轨迹tri途 经路段ej,k为从所述查询点起通过所述轨迹tri至所述路段ej的终点所 花费的轨迹拼接次数,其特征在于,执行初始四元数组创建:基于所述查询点创建初始四元数组(trnull,enull,0,0),其中,所述trnull表示初始 无轨迹途经所述查询点,所述enull表示初始无路段途经所述查询点,所 述查询点为所述enull的终点;执行轨迹拼接:根据所述轨迹数据确定途 经前一次创建的四元数组中的路段的终点、与前一次创建的四元数组 中的轨迹不同的轨迹tri,确定所述轨迹tri途经所述终点之后继续途经 的路段ej,根据所述轨迹tri、所述路段ej、从所述查询点起通过先前创 建的四元数组中的轨迹和所述轨迹tri至所述路段ej的终点所花费的时 间和轨迹拼接次数创建四元数组(tri,ej,tij,k),其中,从所述查询点起至 所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路 段和所述路段ej的时间之和,所述轨迹拼接次k为执行所述轨迹拼接 步骤的次数,丢弃所述tij大于所述预算时间的四元数组;执行可达区 域确定,重复进行所述执行轨迹拼接,直至所述轨迹拼接次数大于所 述最大轨迹拼接次数,将所述四元数组中的路段的集合识别为所述可 达区域。在一个实施例中,在第一可达区域确定模块执行轨迹拼接中, 如果在先前创建的四元数组中存在一四元数组(tri’,ej’,ti’j’,k’),使得与 在所述轨迹拼接步骤中创建的四元数组(tri,ej,tij,k)相比,tri’=tri,ej’=ej, ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej,tij,kij)。在一个实施例中, 在第一可达区域确定模块执行轨迹拼接中,从所述查询点起至所述路 段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所 述路段ej的时间之和,再加上轨迹拼接所花费的时间。
所述可达区域确定模块还包括第二可达区域确定模块,所述第二 可达区域确定模块使用作为扩展路段的三元数组(ej,tj,k)标记从所述查 询点起花费时间tj至路段ej的终点的可达区域,其中,k为从所述查询 点起至所述路段ej的终点所花费的轨迹拼接次数,其特征在于,执行 初始三元数组创建:基于所述查询点创建作为所述扩展路段的初始三元数组(enull,0,0),其中,所述enull表示初始无路段途经所述查询点, 所述查询点为所述enull的终点;执行连接路段确定:根据所述路段数据 确定以前一次创建的扩展路段的终点为起点的路段,以作为本次连接 路段;执行扩展路段确定:根据所述轨迹数据确定途经所述本次连接 路段花费时间最少的轨迹tri,所述轨迹tri途经所述本次连接路段的起 点之后继续途经的路段ej,根据所述路段ej、从所述查询点起途经先前 创建的三元数组中的路段和所述路段ej所花费的时间和轨迹拼接次数 创建表示所述扩展路段的三元数组(ej,tj,k),其中,从所述查询点起至 所述路段ej的终点所花费的时间tj为途经先前创建的三元数组中的路 段和所述路段ej的时间之和,丢弃所述tj大于所述预算时间的三元数 组;执行可达区域确定:重复进行所述执行连接路段确定和所述执行 扩展路段确定,直至所述轨迹拼接次数大于所述最大轨迹拼接次数, 将所述三元数组中的路段的集合识别为所述可达区域。在一个实施例 中,在第二可达区域确定模块执行扩展路段确定中,如果在所述三元 数组中存在一三元数组(ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比, ej’=ej,tj’≤tj,则丢弃所述三元数组(ej,tj,kj)。在一个实施例中,在第 二可达区域确定模块执行扩展路段确定中,从所述查询点起至所述路 段ej的终点所花费的时间tij为途经先前创建的三元数组中的路段和所 述路段ej的时间之和,再加上轨迹拼接所花费的时间。
进一步,所述装置所采用的所述最大轨迹拼接次数为2次至5次。
查询点确定模块,用于如果所述查询点不在所述路段的起点或终 点,则根据所述查询点至所述查询点所在路段的起点或终点的距离, 或者根据从所述查询点至所述查询点所在路段的起点或终点所花费的 时间,将所述查询点视为在所在路段的起点或终点。
索引构建模块,用于根据所述路段数据和所述轨迹数据,创建轨 迹-路段哈希表和路段-轨迹哈希表,其中,可以使用轨迹-路段哈希表 来根据轨迹查找到所述轨迹途经的路段,可以使用路段-轨迹哈希表来 根据路段查找到途经所述路段的轨迹。
图9是本发明实施例可以应用于其中的示例性系统架构图。
如图9所示,系统架构900可以包括终端设备901、902、903,网 络904和服务器905。网络904用以在终端设备901、902、903和服务 器905之间提供通信链路的介质。网络904可以包括各种连接类型, 例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备901、902、903通过网络904与服务器905 交互,以接收或发送消息等。终端设备901、902、903上可以安装有 各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应 用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。在一个实施例中,终端设备901、902、903可以向服务器905发送查询 点以获知可达区域。
终端设备901、902、903可以是具有显示屏并且支持网页浏览的 各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算 机和台式计算机等等。
服务器905可以是提供各种服务的服务器,例如对用户利用终端 设备901、902、903所浏览的购物类网站提供支持的后台管理服务器 (仅为示例)。服务器905可以接收用户查询请求,并将含有可达区 域的处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的信息推送方法一般由服务 器905执行,相应地,信息推送装置一般设置于服务器905中。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意 性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图10是适于用来实现本发明实施例的终端设备或服务器的计算机 系统的结构示意图。
下面参考图10,其示出了适于用来实现本发明实施例的终端设备 的计算机系统1000的结构示意图。图10示出的终端设备仅仅是一个 示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(CPU)1001, 其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分 1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的 动作和处理。在RAM 1003中,还存储有系统1000操作所需的各种程 序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此 相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006; 包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的 输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、 调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如 因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口 1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等 等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序 根据需要被安装入存储部分1008。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程 可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种 计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该 计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实 施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装, 和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元 (CPU)1001执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读 信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算 机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红 外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机 可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导 线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、 只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、 光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存 储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储 介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行 系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机 可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信 号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采 用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组 合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何 计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由 指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限 于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、 方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点 上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码 的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于 实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的 实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发 生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们 有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合, 可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者 可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实 现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理 器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确 定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构 成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接 的服务端发送图片获取请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机 可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独 存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多 个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备 包括:采集路段数据和轨迹数据,其中,所述路段数据包括所述路段 的起点位置和终点位置,所述轨迹数据包括所述轨迹所途经的路段和 用于所途经的路段的时间;接收查询点、最大轨迹拼接次数以及预算 时间;响应于所述查询点、所述最大轨迹拼接次数以及所述预算时间, 基于所述路段数据和所述轨迹数据,确定从所述查询点出发,在所述预算时间以内的可达区域,其中,在所述可达区域内执行的轨迹拼接 次数不大于所述最大轨迹拼接次数。
根据本发明实施例的技术方案,具有如下优点或有益效果:因为 采用基于预算时间和最大拼接次数来确定可达区域的技术手段,所以 克服了在轨迹数据不足的情况下无法有效地确定可达区域的技术问 题,进而达到了在考虑交通状态的同时减少对反映交通状况的轨迹数 据量的需求以及高效可靠的确定可达区域的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域 技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种 各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内 所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (22)

1.一种用于确定可达区域的方法,其特征在于,包括:
采集路段数据和轨迹数据,其中,所述路段数据包括所述路段的起点位置和终点位置,所述轨迹数据包括所述轨迹所途经的路段和用于所途经的路段的时间;
接收查询点、最大轨迹拼接次数以及预算时间;
响应于所述查询点、所述最大轨迹拼接次数以及所述预算时间,基于所述路段数据和所述轨迹数据,确定从所述查询点出发,在所述预算时间以内的可达区域,其中,在所述可达区域内执行的轨迹拼接次数不大于所述最大轨迹拼接次数。
2.根据权利要求1所述的方法,其特征在于,使用四元数组(tri,ej,tij,k)标记从所述查询点起通过轨迹tri、途经路段ej,花费时间tij的可达区域,其中,所述轨迹tri途经路段ej,k为从所述查询点起通过所述轨迹tri至所述路段ej的终点所花费的轨迹拼接次数,还包括:
初始四元数组创建步骤:基于所述查询点创建初始四元数组(trnull,enull,0,0),其中,所述trnull表示初始无轨迹途经所述查询点,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;
轨迹拼接步骤:根据所述轨迹数据确定途经前一次创建的四元数组中的路段的终点、与前一次创建的四元数组中的轨迹不同的轨迹tri,确定所述轨迹tri途经所述终点之后继续途经的路段ej,根据所述轨迹tri、所述路段ej、从所述查询点起通过先前创建的四元数组中的轨迹和所述轨迹tri至所述路段ej的终点所花费的时间和轨迹拼接次数创建四元数组(tri,ej,tij,k),其中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,所述轨迹拼接次k为执行所述轨迹拼接步骤的次数,丢弃所述tij大于所述预算时间的四元数组;
可达区域确定步骤:重复执行所述轨迹拼接步骤,直至所述轨迹拼接次数大于所述最大轨迹拼接次数,将所述四元数组中的路段的集合识别为所述可达区域。
3.根据权利要求2所述的方法,其特征在于,还包括:在所述轨迹拼接步骤中,如果在先前创建的四元数组中存在一四元数组(tri’,ej’,ti’j’,k’),使得与在所述轨迹拼接步骤中创建的四元数组(tri,ej,tij,k)相比,tri’=tri,ej’=ej,ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej,tij,kij)。
4.根据权利要求2或3所述的方法,其特征在于,在所述轨迹拼接步骤中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,再加上轨迹拼接所花费的时间。
5.根据权利要求1所述的方法,其特征在于,使用作为扩展路段的三元数组(ej,tj,k)标记从所述查询点起花费时间tj至路段ej的终点的可达区域,其中,k为从所述查询点起至所述路段ej的终点所花费的轨迹拼接次数,还包括:
初始三元数组创建步骤:基于所述查询点创建作为所述扩展路段的初始三元数组(enull,0,0),其中,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;
连接路段确定步骤:根据所述路段数据确定以前一次创建的扩展路段的终点为起点的路段,以作为本次连接路段;
扩展路段确定步骤:根据所述轨迹数据确定途经所述本次连接路段花费时间最少的轨迹tri,所述轨迹tri途经所述本次连接路段的起点之后继续途经的路段ej,根据所述路段ej、从所述查询点起途经先前创建的三元数组中的路段和所述路段ej所花费的时间和轨迹拼接次数创建表示所述扩展路段的三元数组(ej,tj,k),其中,从所述查询点起至所述路段ej的终点所花费的时间tj为途经先前创建的三元数组中的路段和所述路段ej的时间之和,丢弃所述tj大于所述预算时间的三元数组;
可达区域确定步骤:重复执行所述连接路段确定步骤和所述扩展路段确定步骤,直至所述轨迹拼接次数大于所述最大轨迹拼接次数,将所述三元数组中的路段的集合识别为所述可达区域。
6.根据权利要求5所述的方法,其特征在于,还包括:在所述扩展路段确定步骤中,如果在所述三元数组中存在一三元数组(ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比,ej’=ej,tj’≤tj,则丢弃所述三元数组(ej,tj,kj)。
7.根据权利要求5或6所述的方法,其特征在于,在所述扩展路段确定步骤中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的三元数组中的路段和所述路段ej的时间之和,再加上轨迹拼接所花费的时间。
8.根据权利要求1-3、5-6任一项所述的方法,其特征在于,所述最大轨迹拼接次数为2次至5次。
9.根据权利要求1-3、5-6任一项所述的方法,其特征在于,还包括:如果所述查询点不在所述路段的起点或终点,则根据所述查询点至所述查询点所在路段的起点或终点的距离,或者根据从所述查询点至所述查询点所在路段的起点或终点所花费的时间,将所述查询点视为在所在路段的起点或终点。
10.根据权利要求1-3、5-6任一项所述的方法,其特征在于,还包括:根据所述路段数据和所述轨迹数据,创建轨迹-路段哈希表和路段-轨迹哈希表,其中,可以使用轨迹-路段哈希表来根据轨迹查找到所述轨迹途经的路段,可以使用路段-轨迹哈希表来根据路段查找到途经所述路段的轨迹。
11.一种用于确定可达区域的装置,其特征在于,包括:
数据采集模块,用于采集路段数据和轨迹数据,其中,所述路段数据包括所述路段的起点位置和终点位置,所述轨迹数据包括所述轨迹所途经的路段和用于所途经的路段的时间;
收发模块,用于接收查询点、最大轨迹拼接次数以及预算时间;
可达区域确定模块,用于响应于所述查询点、所述最大轨迹拼接次数以及所述预算时间,基于所述路段数据和所述轨迹数据,确定从所述查询点出发,在所述预算时间以内的可达区域,其中,在所述可达区域内执行的轨迹拼接次数不大于所述最大轨迹拼接次数。
12.根据权利要求11所述的装置,所述可达区域确定模块还包括第一可达区域确定模块,所述第一可达区域确定模块使用四元数组(tri,ej,tij,k)标记从所述查询点起通过轨迹tri、途经路段ej,花费时间tij的可达区域,其中,所述轨迹tri途经路段ej,k为从所述查询点起通过所述轨迹tri至所述路段ej的终点所花费的轨迹拼接次数,其特征在于,
执行初始四元数组创建:基于所述查询点创建初始四元数组(trnull,enull,0,0),其中,所述trnull表示初始无轨迹途经所述查询点,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;
执行轨迹拼接:根据所述轨迹数据确定途经前一次创建的四元数组中的路段的终点、与前一次创建的四元数组中的轨迹不同的轨迹tri,确定所述轨迹tri途经所述终点之后继续途经的路段ej,根据所述轨迹tri、所述路段ej、从所述查询点起通过先前创建的四元数组中的轨迹和所述轨迹tri至所述路段ej的终点所花费的时间和轨迹拼接次数创建四元数组(tri,ej,tij,k),其中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,所述轨迹拼接次k为执行所述轨迹拼接步骤的次数,丢弃所述tij大于所述预算时间的四元数组;
执行可达区域确定,重复进行所述执行轨迹拼接,直至所述轨迹拼接次数大于所述最大轨迹拼接次数,将所述四元数组中的路段的集合识别为所述可达区域。
13.根据权利要求12所述的装置,其特征在于,还包括:在所述执行轨迹拼接中,如果在先前创建的四元数组中存在一四元数组(tri’,ej’,ti’j’,k’),使得与在所述轨迹拼接步骤中创建的四元数组(tri,ej,tij,k)相比,tri’=tri,ej’=ej,ti’j’≤tij,k’≤k,则丢弃所述四元数组(tri,ej,tij,kij)。
14.根据权利要求12或13所述的装置,其特征在于,在所述执行轨迹拼接中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的四元数组中的路段和所述路段ej的时间之和,再加上轨迹拼接所花费的时间。
15.根据权利要求11所述的装置,所述可达区域确定模块还包括第二可达区域确定模块,所述第二可达区域确定模块使用作为扩展路段的三元数组(ej,tj,k)标记从所述查询点起花费时间tj至路段ej的终点的可达区域,其中,k为从所述查询点起至所述路段ej的终点所花费的轨迹拼接次数,其特征在于,
执行初始三元数组创建:基于所述查询点创建作为所述扩展路段的初始三元数组(enull,0,0),其中,所述enull表示初始无路段途经所述查询点,所述查询点为所述enull的终点;
执行连接路段确定:根据所述路段数据确定以前一次创建的扩展路段的终点为起点的路段,以作为本次连接路段;
执行扩展路段确定:根据所述轨迹数据确定途经所述本次连接路段花费时间最少的轨迹tri,所述轨迹tri途经所述本次连接路段的起点之后继续途经的路段ej,根据所述路段ej、从所述查询点起途经先前创建的三元数组中的路段和所述路段ej所花费的时间和轨迹拼接次数创建表示所述扩展路段的三元数组(ej,tj,k),其中,从所述查询点起至所述路段ej的终点所花费的时间tj为途经先前创建的三元数组中的路段和所述路段ej的时间之和,丢弃所述tj大于所述预算时间的三元数组;
执行可达区域确定:重复进行所述执行连接路段确定和所述执行扩展路段确定,直至所述轨迹拼接次数大于所述最大轨迹拼接次数,将所述三元数组中的路段的集合识别为所述可达区域。
16.根据权利要求15所述的装置,其特征在于,还包括:在所述执行扩展路段确定中,如果在所述三元数组中存在一三元数组(ej’,tj’,k’),使得与另一三元数组(ej,tj,kj)相比,ej’=ej,tj’≤tj,则丢弃所述三元数组(ej,tj,kj)。
17.根据权利要求15或16所述的装置,其特征在于,在所述执行扩展路段确定中,从所述查询点起至所述路段ej的终点所花费的时间tij为途经先前创建的三元数组中的路段和所述路段ej的时间之和,再加上轨迹拼接所花费的时间。
18.根据权利要求11-13、15-16任一项所述的装置,其特征在于,所述最大轨迹拼接次数为2次至5次。
19.根据权利要求1-3、5-6任一项所述的装置,其特征在于,还包括查询点确定模块,用于如果所述查询点不在所述路段的起点或终点,则根据所述查询点至所述查询点所在路段的起点或终点的距离,或者根据从所述查询点至所述查询点所在路段的起点或终点所花费的时间,将所述查询点视为在所在路段的起点或终点。
20.根据权利要求11-13、15-16任一项所述的装置,其特征在于,还包括索引构建模块,用于根据所述路段数据和所述轨迹数据,创建轨迹-路段哈希表和路段-轨迹哈希表,其中,可以使用轨迹-路段哈希表来根据轨迹查找到所述轨迹途经的路段,可以使用路段-轨迹哈希表来根据路段查找到途经所述路段的轨迹。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
22.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一所述的方法。
CN201810565693.7A 2018-06-04 2018-06-04 一种用于确定可达区域的方法和装置 Active CN109029476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810565693.7A CN109029476B (zh) 2018-06-04 2018-06-04 一种用于确定可达区域的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810565693.7A CN109029476B (zh) 2018-06-04 2018-06-04 一种用于确定可达区域的方法和装置

Publications (2)

Publication Number Publication Date
CN109029476A true CN109029476A (zh) 2018-12-18
CN109029476B CN109029476B (zh) 2020-06-23

Family

ID=64612094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810565693.7A Active CN109029476B (zh) 2018-06-04 2018-06-04 一种用于确定可达区域的方法和装置

Country Status (1)

Country Link
CN (1) CN109029476B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815418A (zh) * 2019-01-15 2019-05-28 首都师范大学 基于时空约束的城市车辆可达区域计算方法
CN111637897A (zh) * 2019-03-01 2020-09-08 纳恩博(常州)科技有限公司 地图的更新方法、更新装置、存储介质以及处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104990551A (zh) * 2015-06-19 2015-10-21 中国人民解放军国防科学技术大学 一种基于轨迹提取的室内外联合导航方法与系统
CN106643734A (zh) * 2016-12-30 2017-05-10 中国科学院电子学研究所 时空轨迹数据的分级处理方法
CN106897374A (zh) * 2017-01-19 2017-06-27 浙江大学 一种基于轨迹大数据最近邻查询的个性化推荐方法
CN107036600A (zh) * 2015-09-30 2017-08-11 小蚁科技(香港)有限公司 用于自主交通工具导航的系统和方法
CN107463671A (zh) * 2017-08-03 2017-12-12 北京大学 路径查询的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104990551A (zh) * 2015-06-19 2015-10-21 中国人民解放军国防科学技术大学 一种基于轨迹提取的室内外联合导航方法与系统
CN107036600A (zh) * 2015-09-30 2017-08-11 小蚁科技(香港)有限公司 用于自主交通工具导航的系统和方法
CN106643734A (zh) * 2016-12-30 2017-05-10 中国科学院电子学研究所 时空轨迹数据的分级处理方法
CN106897374A (zh) * 2017-01-19 2017-06-27 浙江大学 一种基于轨迹大数据最近邻查询的个性化推荐方法
CN107463671A (zh) * 2017-08-03 2017-12-12 北京大学 路径查询的方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815418A (zh) * 2019-01-15 2019-05-28 首都师范大学 基于时空约束的城市车辆可达区域计算方法
CN109815418B (zh) * 2019-01-15 2020-11-06 首都师范大学 基于时空约束的城市车辆可达区域计算方法
CN111637897A (zh) * 2019-03-01 2020-09-08 纳恩博(常州)科技有限公司 地图的更新方法、更新装置、存储介质以及处理器

Also Published As

Publication number Publication date
CN109029476B (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
US10969239B2 (en) Systems and methods for determining a point of interest
US11550826B2 (en) Method and system for generating a geocode trie and facilitating reverse geocode lookups
CN110909096B (zh) 推荐上车点确定方法及装置、存储介质、电子设备
US20180018572A1 (en) Method, apparatus, device, and system for predicting future travel volumes of geographic regions based on historical transportation network data
US9207090B2 (en) System and method for dynamic path optimization
US10234305B2 (en) Method and apparatus for providing a targeted map display from a plurality of data sources
US8600659B1 (en) Method and system for geographic search for public transportation commuters
CN103940441A (zh) 一种兴趣点搜索方法和装置
CN111950857A (zh) 基于业务指标的指标体系管理方法、装置以及电子设备
CN104320848B (zh) 基于云计算实现室内定位的系统及方法
CN109508361A (zh) 用于输出信息的方法和装置
US10803132B2 (en) Application search results based on a current search query and a previous search query
CN109029476A (zh) 一种用于确定可达区域的方法和装置
CN108140027B (zh) 用于地图的访问点
CN113128743A (zh) 一种拣货路径规划方法和装置
CN110376622A (zh) 定位方法和装置
US20130138635A1 (en) Search method using a plurality of space of interest objects
CN105841689A (zh) 提供长途交通工具信息的方法及装置
US10510095B2 (en) Searching based on a local density of entities
EP2624198A1 (en) Search method using a plurality of space of interest objects
US20190028846A1 (en) Location based services using location and motion information
WO2022208660A1 (ja) 逆ジオコーディング装置、逆ジオコーディング方法、およびプログラム
CN109297480A (zh) 用于管理设备的位置的方法和系统
CN114199227B (zh) 一种导航路径的规划方法和装置
CN109798910B (zh) 巴士路线自动规划的方法与设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant after: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee after: Jingdong Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Patentee before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

CP01 Change in the name or title of a patent holder