CN113312346A - 索引构建方法、轨迹查询方法、装置、设备及可读介质 - Google Patents
索引构建方法、轨迹查询方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN113312346A CN113312346A CN202010292011.7A CN202010292011A CN113312346A CN 113312346 A CN113312346 A CN 113312346A CN 202010292011 A CN202010292011 A CN 202010292011A CN 113312346 A CN113312346 A CN 113312346A
- Authority
- CN
- China
- Prior art keywords
- track
- index
- node
- sub
- index layer
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种索引构建方法、轨迹查询方法、装置、电子设备及计算机可读介质,涉及通信技术领域。其中,所述方法包括:根据轨迹点数据构建第一索引层,第一索引层中的各个节点用于存储所述轨迹点数据;对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;为第一索引层和第二索引层构建链接,以通过链接建立第二索引层的各个索引节点对应的子外包框与第一索引层中的各个节点中的轨迹点数据之间的关联关系;根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构。本申请实施例构建得到的索引结构能够有效地处理相似轨迹的查询。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种索引构建方法、轨迹查询方法、装置、电子设备及计算机可读介质。
背景技术
支持GPS的设备和基于位置的服务,例如单车等,每天都会产生大量的轨迹。这些轨迹的数量十分庞大,同时蕴含着很多的信息,利用这些轨迹可以对人们的活动进行指导,例如个人导航服务、物流服务等。此外,还可以通过分析人们的轨迹来发现人们的运行特征,为政府和公司的决策提供支持。移动物体的轨迹通常由一串带时间戳的空间点表示。由于轨迹数据集的数据量十分庞大,因此通常需要对轨迹建立索引。对于轨迹,已经提出了各种索引结构。但是,由于多种原因,不能有效地处理轨迹的相似性查询。如何使得构建得到的索引结构能够有效地处理轨迹的相似性查询成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种索引构建方法、轨迹查询方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何使得构建得到的索引结构能够有效地处理轨迹的相似性查询的技术问题。
根据本申请实施例的第一方面,提供了一种索引构建方法。所述方法包括:根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构。
根据本申请实施例的第二方面,提供了一种轨迹查询方法。所述方法包括:接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构,其中,所述索引结构为根据本申请实施例的第一方面所述的索引构建方法构建的索引结构;对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
根据本申请实施例的第三方面,提供了一种索引构建装置。所述装置包括:第一构建模块,用于根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;第二构建模块,用于对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;第三构建模块,用于为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;第四构建模块,用于根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构。
根据本申请实施例的第四方面,提供了一种轨迹查询装置。所述装置包括:接收模块,用于接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;第一确定模块,用于根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构,其中,所述索引结构为根据本申请实施例的第一方面所述的索引构建方法构建的索引结构;第二确定模块,用于对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;第三确定模块,用于根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
根据本申请实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的索引构建方法,或者实现如上述实施例的第二方面所述的轨迹查询方法。
根据本申请实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的索引构建方法,或者实现如上述实施例的第二方面所述的轨迹查询方法。
通过本申请实施例提供的索引构建方案,根据轨迹点数据构建第一索引层,第一索引层中的各个节点用于存储轨迹点数据,并对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点,再为第一索引层和第二索引层构建链接,以通过链接建立第二索引层的各个索引节点对应的子外包框与第一索引层中的各个节点中的轨迹点数据之间的关联关系,再根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构,与现有的其它方式相比,为第一索引层和第二索引层构建链接,以通过链接建立第二索引层的各个索引节点对应的子外包框与第一索引层中的各个节点中的轨迹点数据之间的关联关系,再根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构。由于第一索引层存储轨迹点数据,第二索引层存储相应的外包框和子外包框,因此构建得到的索引结构能够有效地处理轨迹的相似性查询。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明的一个实施例的轨迹采集网络框架的示意图;
图2A为本发明的另一实施例的索引构建方法的示意性流程图;
图2B为本发明的另一实施例的索引构建方法的示意图;
图2C为本发明的另一实施例的索引构建方法的示意图;
图2D为本发明的另一实施例的索引构建方法的示意图;
图2E为本发明的另一实施例的索引构建方法的示意图;
图3A为本发明的另一实施例的轨迹查询方法的示意图;
图3B为本发明的另一实施例的轨迹查询方法的示意图;
图4A为本发明的另一实施例的轨迹查询方法的示意图;
图4B为本发明的另一实施例的轨迹查询方法的示意图;
图5为本发明的另一实施例的索引构建装置的示意性框图;
图6为本发明的另一实施例的轨迹查询装置的示意性框图;
图7为本发明的另一实施例的电子设备的结构示意图;
图8为本发明的另一实施例的电子设备的硬件结构。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
此外,虽然本发明实施例的系统和方法的描述主要关于交通服务的请求,应该理解的是,这只是一个示例性的实施例。本发明实施例的索引构建方法可以应用与任何其他类型的线上到线下服务。例如,本发明实施例的索引构建方法可以应用于不同环境下的交通系统,包括陆地、海洋、航空航天或类似物或其任何组合。所述交通系统涉及的车辆可以包括诸如共享单车的自行车、出租车、私家车、顺风车、巴士、列车、子弹头列车、高速铁路、地铁、船只、飞机、太空船、热气球、无人驾驶车辆等或其任意组合。交通系统还可以包括用于经营及/或分配的任何交通系统,例如用于发送及/或接收快递的系统。本发明实施例的系统或方法的应用场景可以包括网页、浏览器插件、客户终端、定制系统、内部分析系统、人工智能机器人等或上述举例的任意组合。
本发明实施例中的术语“移动终端”和“客户端”可以交换使用,其表示用户所使用的用于提供服务或促进服务的移动终端。
在一个示例中,例如采用共享单车的轨迹数据。每个共享单车可以安装有轨迹定位设备。可以在本发明实施例中使用的定位技术可包括全球定位系统(GPS),全球导航卫星系统(GLONASS)、罗盘导航系统(COMPASS)、伽利略定位系统、准天顶卫星系统(QZSS)、无线保真(WIFI)定位技术等或其任意组合。上述定位技术中的一种或者多种可在本发明实施例中互换使用。
一般而言,共享单车支持诸如GPS的设备和基于位置的服务,基于时间会产生大量轨迹。这些轨迹数量十分庞大,同时蕴含着很多的信息。例如,包括结构化的时间信息和空间信息。例如,这些时空轨迹包括其他的非结构化信息。采用结构化信息和非结构化信息或者采用两者的结合,可以产生出非常有价值的数据。例如,采用聚类和分类算法等,基于确定的相似的轨迹,可以进行各种推荐服务。利用这些轨迹可以对人们的活动进行指导,例如个人导航服务、物流服务等。此外,还可以通过分析人们的轨迹来发现人们的运行特征,为政府和公司的决策提供支持。
本发明实施例的一个方面涉及在线系统以及用于遍历空间数据的方法。可以确定与地理区域相关的多个空间索引值。可以确定用于存储与地理区域相关的数据的多个数据组。每个数据组可以与一个空间索引值相关联。可以基于多个空间索引值和地理区域来确定优先队列。优先队列可以包括与第一参考索引值和地理区域的第一部分相关联的第一缓冲范围数据。所述数据组从与所述多个空间索引值中的最小空间索引值相关联的数据组开始,遍历所述多个数据组。如果确定当前遍历的数据组的空间索引值等于或大于所述第一参考索引值,向所述用户终端发送与所述地理区域的所述第一部分有关的数据。
本发明实施例采用欧式距离以确定所述地理区域中的空间索引值。处理引擎基于空间索引遍历所述数据组,但是,应理解,这仅仅是示例性的,本发明实施例可以采用任意的距离计算方式。
图1是根据一些实施例所示的示例性轨迹采集网络架构的框图。例如,所述轨迹采集网络架构可以是用于交通服务的在线交通服务平台。所述轨迹采集网络架构可以包括服务器110、网络120、移动终端140、车辆150、存储设备160和导航系统170。
所述轨迹采集网络架构可以提供多个服务。在一些实施例中,所述线上到线下服务可以是任何在线服务,如订餐推荐、购物推荐等或其他任何组合。
在一些实施例中,所述服务器110可以是单个服务器或服务器组。该服务器组可以是集中式或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,所述服务器110可以经由网络120访问存储在移动终端140和/或存储设备160中的信息和/或数据。再例如,所述服务器110可以直接连接到移动终端140和/或存储设备160访问存储的信息和/数据。在一些实施例中,服务器110可以在云平台上实现。仅仅举个例子,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云、中间云、多云等或其任意组合。在一些实施例中,服务器100可以在具有本发明实施例图10中所示的一个或多个组件的计算设备1000上实现。
在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与服务相关的信息和/数据来执行本发明实施例中的一个或多个功能。例如,处理引擎112可以遍历空间数据。在一些实施例中,处理引擎112可以包括一个或多个处理引擎(例如,单核处理器或是多核处理器)。仅仅举个例子,处理引擎112可以包括中央处理器(CPU)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、图形处理器(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可以程序门阵列(FPGA)、可以程序逻辑装置(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或其任意组合。
网络120可以促进信息和/数据的交换。在一些实施例中,轨迹采集网络架构(例如,服务器110、移动终端140、车辆150、存储设备160和导航系统170)中的一个或多个组件可以经由网络120向轨迹采集网络架构的其他组件发送信息和/数据。在一些实施例中,网络120可以是任何类型的有线网络、无线网络或其组合。仅仅举个例子,网络120可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网路(WAN)、无线局域网络(WLAN)、城域网(MAN)、广域网路(WAN)、公共开关电话网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可包括有线或无线网络接入点比如基站和/或互联网交换点120-1、120-2…。通过该网络接入点,轨迹采集网络架构的一个或多个组件可以连接至网络120以交换信息和或数据。
在一些实施例中,移动终端140可以包括移动装置130-1、平板计算机130-2、笔记本电脑130-3、车辆内置装置130-4等或上述举例的任意组合。在一些实施例中,可穿戴装置可以包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣物、智能背包、智能配饰等或上述举例的任意组合。在一些实施例中,智能移动装置可以包括智能电话、个人数字助理(PDA)、游戏设备、导航装置、销售点(POS)装置等或其任意组合。在一些实施例中,虚拟现实装置和/或增强实境装置可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强实境头盔、增强实境眼镜、增强实境眼罩等或上述举例的任意组合。在一些实施例中,车辆内置装置130-4可以包括车载电脑,车载电视等。在一些实施例中,移动终端140可以是具有用于定位乘客或骑行人员的位置的定位技术的设备。
移动终端140可以包括多个移动终端140-1、140-2、……、140-n。在一些实施例中,移动终端140可以被定制为能够实现线上到线下服务。在一些实施例中,移动终端140可以是一个带有定位技术的装置,该定位技术可以用于定位移动终端140和/或与移动终端相关的车辆150的位置。在一些实施例中,移动终端140可以与另一个定位装置通信以确定乘客、移动终端140的位置。在一些实施例中,移动终端140可以周期性地将该定位信息发送至服务器110。在一些实施例中,移动终端140也可以周期性地将可用状态发送至服务器110。所述可用状态可以表明与移动终端140相关的车辆150是否可以接载乘客。例如,或移动终端140可以每30分钟将所述定位信息和所述可用状态发送至服务器110。又例如,或移动终端140可以在每次用户登录与在线到离线服务相关的移动应用程序时将定位信息和可用状态发送至服务器110。
在一些实施例中,移动终端140可以对应一个或多个车辆150。车辆150可以接载乘客并送至目的地。车辆150可以包括多个车辆150-1、150-2、……、150-n。
存储设备160可以储存数据及/或指令。在一些实施例中,存储设备160可以存储从移动终端140获得的数据。在一些实施例中,存储设备160可以存储服务器110用来执行或使用来完成本发明实施例中描述的示例性方法的数据及/或指令。在一些实施例中,存储设备160可包括大容量存储器、可移动存储器、挥发性读写内存、只读存储器(ROM)等或其任意组合。示例性大容量存储器可包括磁盘、光盘、软盘、固态硬盘等。示例性的可移动存储器可包括快闪驱动、软盘、光盘、记忆卡、压缩盘、磁带等。示例性的挥发性读写记忆体可包括随机访问记忆体(RAM)。示例性的随机存储器可以包括动态随机存储器(DRAM)、双数据率同步动态随机存储器(DDRSDRAM)、静态随机存储器(SRAM)、可控硅随机存储器(T-RAM)和零电容存储器(Z-RAM)等。示例性的只读存储器可以包括掩蔽型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(PEROM)、电可擦除可编程只读存储器(EEPROM)、压缩硬盘只读存储器(CD-ROM)和数字多功能硬盘只读存储器等在一些实施例中,存储设备160可以在云平台上实现。仅仅举个例子,所述云平台可以包括私有云、公共云、混合云、社区云、分布式云、中间云、多云等或其任意组合。
在一些实施例中,存储设备160可以与网络120连接以与轨迹采集网络架构的一个或多个部件(例如,服务器110、移动终端140等)通信。轨迹采集网络架构的一个或多个组件可以通过网络120访问存储在存储设备160中的数据或指令。在一些实施例中,存储设备160可以直接与轨迹采集网络架构的一个或多个部件(例如,服务器110、移动终端140等)连接或通信。在一些实施例中,存储设备160可以是服务器110的一部分。
所述导航系统170可以确定与对象相关的信息,例如,一个或多个服务移动终端140中,车辆150等。在一些实施例中,导航系统170可以是全球定位系统(GPS)、全球导航卫星系统(GLONASS)、指南针导航系统(COMPASS)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(QZSS)等。所述信息可包括对象的位置、海拔、速度、加速度或当前时间。导航系统170可以包括一个或多个卫星,例如,卫星170-1、卫星170-2和卫星170-3。卫星170-1至170-3可以独立地或共同地确定上述信息。卫星导航系统170可以通过无线连接将上述信息发送至网络120、移动终端140或车辆150。
在一些实施例中,轨迹采集网络架构的一个或多个部件(例如,服务器110、移动终端140等)可以拥有访问存储设备160的权限。在一些实施例中,当满足一个或多个条件时,轨迹采集网络架构的一个或多个部件可以读取和/或修改与乘客和/或骑行人员相关的信息。例如,一个服务完成后,服务器110可以读取和/或修改一个或多个乘客的信息。又例如,一个服务完成后,服务器110可以读取和/或修改一个或多个移动终端用户的信息。
在一些实施例中,轨迹采集网络架构的一个或多个部件的信息交换可以通过请求一个服务的方式实现。服务的客体可以是任一产品。在一些实施例中,所述产品可以包括食品、医药、商品、化学产品、电器、衣物、小汽车、房屋、奢侈品等或上述举例的任意组合。在一些实施例中,所述产品可以包括服务产品、金融产品、知识产品、互联网产品等或上述举例的任意组合。互联网产品可以包括个人主机产品、网站产品、行动互联网产品、商业主机产品、嵌入式产品等或上述举例的任意组合。移动互联网产品可以用于移动终端的软件、程序、系统等或上述举例的任意组合。移动终端可以包括平板计算机、膝上型计算机、移动手机、掌上计算机(PDA)、智能手表、销售点(POS)装置、车载计算机、车载电视、随身装置等或上述举例的任意组合。例如,所述产品可以是用于计算机或移动手机中的任意的软件和/或应用程序。所述软件和/或应用程序可以与社交、购物、交通、娱乐、学习、投资等或上述举例的任意组合有关。在一些实施例中,所述与交通相关的软件和/或应用程序可以包括出行软件和/或应用程序、交通工具调度软件和/或应用程序、地图软件和/或应用程序等。在所述交通工具调度软件和/或应用程序中,交通工具可以包括马、马车、人力车(例如独轮手推车、自行车、三轮车等)、汽车(例如,出租车、公共汽车、私家车等)、火车、地铁、船舶、飞行器(例如,飞机、直升机、航天飞机、火箭、热气球等)等其任意组合。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
图2A为本发明的另一实施例的索引构建方法的示意性流程图;图2A的索引构建方法包括:
210:根据轨迹点数据构建第一索引层,第一索引层中的各个节点用于存储轨迹点数据。
应理解,轨迹点数据可以为时空轨迹点、时空轨迹线段、时空子轨迹。例如,由图1所述的数据采集方式采集的轨迹点数据。所述轨迹点数据可以为各种轨迹数据,本发明实施例对轨迹点数据不作限定。例如,轨迹点数据可以为关于轨迹线段的数据、关于子轨迹的数据。另外,子轨迹可以为轨迹点数据,也可以为轨迹线段。可选地,子轨迹可以由轨迹点数据生成,或者由轨迹线段生成。另外,子轨迹还可以通过轨迹线段生成。另外,时空子轨迹可以为原始采集的轨迹点,也可以通过切分由多个轨迹点形成的轨迹而得到。例如,第一索引层采用TB(Trajectory Bundle)结构,并且第二索引层采用3DR树结构。例如,第二索引层(例如,3DR层)是对子外包框建立的3DR树,而第一索引层(例如,TB层)是存储实际轨迹点的页面。
220:对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点。
应理解,本发明实施例的方案中的第二索引层包括下列的至少一种:叶子节点层、中间节点层、子节点层、根节点层。例如,第二索引层包括叶子节点层、中间节点层、根节点层。例如,叶子节点层中的多个叶子节点对应于中间节点层中的同一中间节点。例如,中间节点层中的多个中间节点对应于根节点层中的根节点。例如,根节点可以为一个,也可以为多个。本发明实施例对此不作限定。
230:为第一索引层和第二索引层构建链接,以通过链接建立第二索引层的各个索引节点对应的子外包框与第一索引层中的各个节点中的轨迹点数据之间的关联关系。
例如,所述关联关系可以指向对应的实际轨迹点存储在第一索引层中的位置。
对第二索引层,内部节点可以类似于R树中的节点,也可以与R树中的节点不同。例如,在本发明实施例的索引结构中,在每个叶子节点中,除了子外包框之外,还可以上述的关联关系。应理解,在所述叶子节点还可以存储其他的链接。另外,所述其他链接还可以指向第二索引层中存储相同轨迹的上一个和下一个子外包框的叶子节点。
240:根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构。
由于第一索引层存储轨迹点数据,第二索引层存储相应的外包框和子外包框,因此构建得到的索引结构能够有效地处理轨迹的相似性查询。
另外,在本发明实施例的索引结构中,由于尽可能多地使用子外包框中的信息,充分了利用了I/O(输入/输出)资源,从索引中检索尽可能多的子外包框,以便保证了检索到轨迹的精确点。
另外,第一索引层用于检索给定时间段内的轨迹点。本发明实施例的方案将较短的子轨迹链接在一起,用于形成可以存到内存页中的较长的子轨迹,例如,存储在同一内存页中。
还应理解,第一索引层中的叶子节点与第二索引层中的节点的分配方式可以相同,也可以不同。换言之,从第二索引层到第一索引层的链接可以是多对多映射。换言之,在第一索引层和第二索引层中,打包策略(即,应该将哪些子轨迹存储在一起)或者(包络策略)可以相同,也可以不同。
还应理解,本发明实施例的第一索引层存储轨迹点(或者,轨迹线段;或者,子轨迹)。与存储每条线段的外包框的索引层相比,更便于轨迹点的更新。换言之,第一索引层和第二索引层的分割和分组方法可以不同。另外,轨迹的精确点(或者,轨迹线段;或者,子轨迹;或者,轨迹点)未存储在第二索引层中,可以在同一第一索引层上构建多个第二索引层,以支持不同种类的查询。由此,可以同时优化索引剪枝性能和轨迹提取开销。
在本发明的另一实现方式中,可以对上述的索引结构进行更新。例如可以构建或更新第一索引层。另外,可以根据第一索引层的变化(或变动;或者更新的结果)来修改(或者更新)第二索引层。由于,第一索引层与第二索引层相对独立构建,并且第一索引层与第二索引层存在映射关系,使得对第一索引层的更新操作相对简单和便捷。例如,在第一索引层中,可以存储精确的轨迹点,在更新时,可以对轨迹点进行更新。例如,可以将其子外包框(以及外包框)提供给第二索引层。由此,可以在第二索引层上的时空外包框(或子外包框)进行加载和更新操作。
在本发明的另一实现方式中,对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,可以对轨迹外包框进行平均分组,也可以其他方式分组。例如,可以基于时间维度进行分组。例如,可以基于空间维度进行分组。例如,在时间上,对轨迹外包框平均切分。例如,确定轨迹外包框中的多个轨迹中的特征点,并且基于所述特征点,轨迹外包框进行切分。应理解,所述特征点为轨迹中信息丰富的点。例如,所述特征点为轨迹中非线性程度高的点,非特征点为轨迹中非线性程度低的点。例如,所述特征点为轨迹中无序性高的点,非特征点为轨迹中无序性低的点。例如,基于上述的特征点对轨迹进行切分,使得切分之后的轨迹片段具有有序性较高,并且线性程度较高。应理解,基于特征点对轨迹外包框进行切分,使得经由相似度查询后的轨迹信息的推荐度更精准,具有更高的推荐价值。例如,可以先对轨迹基于特征点进行初始切分,然后在对初始切分后得到的轨迹片段进行切分。例如,对轨迹片段进行平均切分。还应理解,上述的特征点可以为时间特征点,也可以为空间特征点。
还应理解,对作为子外包框的外包框的轨迹外包框进行分组,可以基于子外包框的几何参数进行分组,也可以基于子外包框中的轨迹参数进行分组。例如,可以基于子外包框的中心进行分组。例如,可以基于轨迹在子外包框的质心参数进行分组。例如,将检索时空基于质心参数阈值分为多个时空区域。例如,将质心参数处于特定时空区域的子外包框分为一组。例如,对子外包框进行分组还可以基于上述的条件和其他约束条件。
作为一个示例,对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,包括:根据多个子外包框的质心,对多个子外包框进行分组,以获得多个子外包框的分组结果。
作为一个示例,根据分组结果构建第二索引层的索引节点,包括:根据分组结果和第二索引层的叶子节点的时间长度,构建第二索引层的索引节点。
作为一个示例,构建第二索引层的索引节点之前,所述方法还包括:根据叶子节点的时间长度与叶子节点的总体积的关系,确定使得叶子节点的总体积最小的时间长度,并将使得叶子节点的总体积最小的时间长度作为用于构建第二索引层的索引节点的时间长度。
例如,通过时空外包框(或者,子外包框)进行加载来构建第二索引层时,根据子外包框的质心对子外包框进行分组,以构造叶子节点。例如,在构建索引结构树时,预先计算对第二索引层中的叶子节点层的时间长度与叶子节点的外包框总大小的关系。例如,基于上述关系获得使叶子节点总体积最小的叶子时间长度,并以此长度进行构建。对于时空轨迹数据,在空间范围通常随时间保持不变以及时间段较长并且不断增长的情况下,采用上述方式构建第二索引层,例如,构建第二索引层中的叶子节点层,使得整体上提高了索引效率。
在本发明的另一实现方式中,对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点,包括下面的至少一者:建立第二索引层中的叶子节点层与中间节点层之间的链接;建立叶子节点中的子外包框与叶子节点之间的链接,即,建立叶子节点的标识与子外包框中的子轨迹的标识之间的链接;建立叶子节点层与中间节点层之间的链接;建立子外包框与中间节点层中的中间节点之间的链接;建立叶子节点层中的属于同一叶子节点的子外包框与另一子外包框之间的链接;建立属于同一叶子节点的属于同一轨迹的子外包框与另一子外包框之间的链接;建立属于同一轨迹的子外包框所在的中间节点与另一子外包框所在的中间节点之间的链接,例如,所述另一子外包框中的子轨迹与所述子外包框中的子轨迹之间的相邻子轨迹。例如,属于同一轨迹的子外包框存储在不同的中间节点之间,由于在第二索引层中采用多层索引对不同的子外包框建立了链接,从而极大地提高了索引效率。
作为一个示例,对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点,包括:对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;并且,为索引节点中的各个叶子节点设置:与当前叶子节点的子外包框对应的轨迹点数据所在的第一索引层的节点之间的链接、与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接。
在本发明的另一实现方式中,在第二索引层中建立上述的至少一种链接可以采用不同的顺序。例如,可以先建立子外包框与叶子节点直接的链接,再建立子外包框与中间节点的链接。例如,可以先建立子外包框与叶子节点直接的链接,再建立属于同一轨迹的子轨迹的子外包框与所述子轨迹相邻的相邻子轨迹的另一子外包框之间的链接。例如,可以建立子外包框与叶子节点直接的链接,再建立属于同一轨迹的子轨迹的叶子节点外包框(即,外包框)与所述子轨迹相邻的相邻子轨迹的叶子节点外包框(可以为同一叶子节点,也可以为不同叶子节点)之间的链接。
例如,可以建立子外包框与叶子节点直接的链接,再建立属于同一轨迹的子轨迹的中间节点外包框与所述子轨迹相邻的相邻子轨迹的中间节点外包框(可以为同一中间节点,也可以为不同中间节点)之间的链接。
例如,可以建立属于同一轨迹的子轨迹的总外包框与所述子轨迹相邻的相邻子轨迹的总外包框(可以为同一总外包框,也可以为不同总外包框)之间的链接。例如,上述的总外包框可以为中间节点层的中间节点外包框。也可以为叶子节点层的叶子节点外包框。应理解,上述的各种链接的构建过程可以通过遍历算法实现,也可以通过更新算法实现,也可以针对特定的索引层或索引层中的子层(例如,叶子节点层或中间节点层)来实现。
作为一个示例,与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接通过以下方式设置:对第二索引层中的叶子节点进行第一轮遍历,以记录第二索引层中的各个叶子节点中的子外包框与叶子节点的序号之间的映射;对第二索引层中的叶子节点进行第二轮遍历,确定与当前叶子节点的子外包框所属的总外包框中的其它子外包框;根据映射和确定的其它子外包框,设置当前叶子节点与其它子外包框所在的叶子节点的链接。
作为一个示例,与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接,包括:与当前叶子节点的目标子轨迹的子外包框所属的轨迹的相邻子轨迹的子外包框所在叶子节点的链接。
由于建立轨迹的属于同一轨迹的不同子轨迹直接的链接,因此实现了有效地检索轨迹的连续部分,从而进一步减小了对邻近对象检索时关于距离的计算的影响。另外,该链接位于从子外包框到包含相同轨迹的其他子外包框的叶节子点之间,因此相比于在存储相同轨迹的点的节点之间,更有利于提高索引效率。
作为一个示例,根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构,包括:根据TB结构树、3DR结构和3DR结构的各个索引节点对应的子外包框与TB结构中的各个节点中的轨迹点数据之间的关联关系,构建用于进行轨迹查找的索引结构。
图2B为本发明的另一实施例的索引构建方法的示意图。如图所示,目标轨迹分为子轨迹t1、子轨迹t2和子轨迹t3。其中,子轨迹t1、子轨迹t2和子轨迹t3分别具有子外包框b1、子外包框b2和在子外包框b3。应理解,该图中的轨迹仅仅为一个示例,该图中的轨迹的切分方式也是示例性的,即,该轨迹可以具有其他的切分点和切分数量等。还应理解,上述的子外包框的形状和数量也可以为不同。例如,每个子外包框可以为针对切分后的每个子轨迹的子外包框。例如,每个子外包框可以为多个(例如,至少两个)切分后的子轨迹构成的子轨迹的子外包框。换言之,切分后子轨迹可以为对应于子外包框的子轨迹,也可以不对应于子外包框的子轨迹。换言之,对应于子外包框的子轨迹可以为切分后子轨迹,也可以包括多个切分后子轨迹。例如,图中示出的子外包框为子外包框在纸面的投影,应理解,子外包框的投影形状可以为矩形,也可以为多边形、圆形、椭圆形等。例如,子外包框的形状可以为平行六面体,也可以为多面体、诸如圆柱体的柱体、棱台、椎体等。
图2C为本发明的另一实施例的索引构建方法的示意图。如图所示,不同的子轨迹都存储第一索引层,换言之,为不同的多个子轨迹构建第一索引层。另外,不同的子外包框都存储在第二索引层,换言之,为不同的多个子外包框构建第二索引层。在第一索引层中,子轨迹t1位于一个节点、子轨迹t2和t3位于另一节点。在第二索引层中,子外包框b1、子外包框b2和在子外包框b3分别位于三个节点中。应理解,上述的分配方式仅仅为示例性的,例如,子外包框b1、子外包框b2和在子外包框b3也可以存储在两个节点中,也可以存储在一个节点中。另外,通过两个节点布置上述的三个子轨迹时,子轨迹t1和子轨迹t2也可以位于一个节点,并且子轨迹t3存储在另一个节点。另外,上述的三个节点也可以布置在一个节点中,也可以布置在三个节点中,本发明实施例对此不作限定。
如图所示,在本示例中,第一索引层与第二索引层中的不同节点的映射关系为存储有子轨迹t1的节点对应于子外包框b1,并且存储有子轨迹t2和子轨迹t3的节点对应于子外包框b1的节点和子外包框b3的节点。应理解,在其他的示例中,各个子轨迹的节点和各个子外包框的节点可以具有一对一、一对多、多对一、多对多的映射关系。
图2D为本发明的另一实施例的索引构建方法的示意图。如图所示,除了第一索引层的节点与第二索引层的节点之间的映射(例如,除了图2C所示的示例)之外,第二索引层还可以包括多个子层。例如,除了子外包框层之外,第二索引层还可以包括叶子节点层,叶子节点层中的叶子节点与子外包框层中的节点具有映射关系。例如,上述映射关系可以基于子外包框节点之间的关系,例如,上述映射关系可以基于子外包框之间的关系。如图所示,在本示例中,子轨迹t1、子轨迹t2和子轨迹t3为连续的三个子轨迹。相应地,子外包框b1为连续的三个子外包框。例如,子外包框b1本身属于叶子节点1。例如,子外包框b1之后的子外包框b2也属于叶子节点1,建立了子外包框b1与叶子节点1的链接。另外,对于子外包框b2,其之前和之后的外包框为子外包框b1和子外包框b3,并且子外包框b1和子外包框b3分别属于叶子节点1和叶子节点3,于是对于子外包框b2,建立了到叶子节点1和叶子节点2的链接。另外,对于子外包框b3,其之前的子外包框为子外包框b2,因此,建立了子外包框b2所属的叶子节点1与子外包框b3之间的映射关系。
应理解,在本示例中,结合了具有三个子轨迹的目标轨迹进行了说明。然而,在其他示例中,目标轨迹可以具有多于三个子轨迹或少于三个子轨迹。对于目标轨迹包括多个三个子轨迹的示例中,未示出子外包框b1之前还可以具有子外包框。或者,未示出的子外包框b3之后还可以包括子外包框。另外,叶子节点层还可以包括其他叶子节点。相应地,这些未示出的子外包框与已示出的叶子节点或者已示出的子外包框与未示出的叶子节点之间还可以具有其他映射关系。
图2E为本发明的另一实施例的索引构建方法的示意图。如图所示,第二索引层还可以中间节点层。应理解,在本示例中,仅示出了一个中间节点,然而,应理解,在其他的示例中,中间节点层还可以包括多个中间节点。另外,在本示例中,叶子节点1和叶子节点2位于该中间节点,换言之,该叶子节点1和叶子节点2与该中间节点具有关联,或者存储在该中间节点中。中间节点可以对应于轨迹的存储,也可以对应于子轨迹的存储。例如,上述的轨迹和子轨迹可以作为进行查询的目标。应理解,在其他的一些示例中,中间节点可以与子外包框建立链接,从而实现了更长的轨迹索引。可替代地,中间节点可以与子外包框建立链接,从而更有利于索引时的剪枝,以便进行更精确的轨迹查询。
图3A为本发明的另一实施例的轨迹查询方法的示意性流程图。图3A的轨迹查询方法包括:
310:接收相似轨迹查询请求,相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹。
例如,相似轨迹查询请求包括关于所述待查询轨迹的信息。例如,所述相似轨迹查询请求可以为根据前端推荐请求生成的子查询请求。
320:根据相似轨迹查询请求,确定对应的轨迹数据的索引结构。
330:对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系。
340:根据距离关系,确定与待查询轨迹距离最近的子外包框对应的节点,并根据确定的节点,获得与待查询轨迹相似的轨迹。
应理解,可以返回与待查询轨迹相似的轨迹。例如,返回至少一个相似轨迹。例如,所述至少一个相似轨迹可以为用户进行推荐。例如,至少一个相似轨迹为第一用户的轨迹。所述待查询轨迹为第二用户的轨迹。例如,至少一个相似轨迹可以为目标用户的第一时间段的轨迹。待查询轨迹可以为目标用户的第二时间段的轨迹。例如,至少一个相似轨迹可以为目标用户在第一空间范围的轨迹。待查询轨迹可以为目标用户的第二空间范围的轨迹。
在本发明实施例的方法构建的索引中,由于第一索引层存储轨迹点数据,第二索引层存储相应的外包框和子外包框,因此构建得到的索引结构能够有效地处理轨迹的相似性查询,在本发明实施例的查询处理中,读取轨迹的精确点时,能够加载(例如)一个轨迹的连续部分。例如,当子轨迹相对较短时,可以通过单次I/O加载许多连续的部分。
在本发明的另一实现方式中,可以对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系。例如,也可以对待查询轨迹进行预处理。例如,也可以对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与经预处理的待查询轨迹的距离关系。例如,对待查询轨迹进行预处理,可以对待查询轨迹进行简化。例如,对待查询轨迹的时空范围内的待查询轨迹点集中的多个轨迹点进行简化。例如,对多个轨迹点中的部分轨迹点进行删除或提取,得到精简轨迹点集。例如,按照层级关系依次确定各节点中的子外包框与经预处理的精简轨迹点集的距离关系。
作为一个示例,对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系之前,所述方法还包括:对待查询轨迹进行简化,以获得待查询轨迹的简化轨迹;对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系,包括:对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与简化轨迹的距离关系。
应理解,在轨迹查询(例如,KNN查询)的减枝过程中,可以计算待查询轨迹与加载的每个外包框之间的距离。在计算开销与查询子轨迹的数量成正比的情况下,例如,在计算开销随着查询长度的增加而线性增长的情况下,上述的本发明实施例的预处理方法能够节省计算开销。
例如,对于kNN查询或其他与距离相关的查询,如果使用的距离对于相关轨迹来说满足三角不等式,则对于查询轨迹Q以及在轨迹Q的时间段中定义的任意轨迹Q'和轨迹T。如果Q'和T之间的距离为第一距离;Q与Q'之间的距离为第二距离;Q和T之间的距离为第三距离,则第一距离-第二距离≤第三距离≤第一距离+第二距离。
对于本发明实施例的预处理方法,如果Q'的线段数少于轨迹Q,并且与查询中的轨迹T的第三距离相比,第二距离较小。于是,我们可以在滤波计算过程中使用轨迹Q'来替代轨迹Q能够节省计算成本。因此,将第一距离-第二距离=第三距离表示简化距离,实现了对中间数据的复用,因此能够在保证计算精度的同时大幅节省计算开销。
作为一个示例,对待查询轨迹进行简化,包括:确定待查询轨迹上到待查询轨迹的开始点与结束点的连线的距离最大的第一轨迹点;
确定待查询轨迹上到待查询轨迹的开始点与第一轨迹点的连线的距离最大的第二轨迹点,及待查询轨迹上到待查询轨迹的结束点与第一轨迹点的连线的距离最大的第三轨迹点,直到在待查询轨迹上确定n+1个轨迹点,其中,n表示简化轨迹中的线段的数量;依次连接待查询轨迹的开始点、确定的n+1个轨迹点和待查询轨迹的结束点,以生成待查询轨迹的简化轨迹。
在本示例中,具体而言,在将轨迹Q简化为轨迹Q'时,例如,在计算从点P到线L的距离时,通过计算P与线L中的点的欧氏距离来代替垂直距离进行计算。例如,每次选择新点时,将未选择点之中与已有线段有最大距离的点来代替递归地对每个线段进行选择。例如,将在选择n+1个点后停止,其中n是我们在简化轨迹中想要的线段数,来代替对最大距离设置阈值。例如,将轨迹Q的时间长度除以索引中的子轨迹的平均时间长度来确定轨迹Q'的线段的数量。
在本发明的另一实现方式中,可以针对子外包框、叶子节点、中间节点建立至少一个优先级队列。例如,针对子外包框、叶子节点、中间节点分别建立优先级队列。例如,可以针对子外包框和叶子节点设置优先级队列,并且针对中间节点设置另一优先级队列。例如,可以针对子外包框设置第一优先级队列,并且针对叶子节点和中间节点设置第二优先级队列。例如,可以两个优先级队列的结果,确定与待查询轨迹的距离关系。例如,利用第一优先级队列的排序结果确定第二优先级队列的排序结果。
例如,针对叶子节点和中间节点的第二优先级队列进行加载,例如,对于轨迹查询(例如,kNN查询),可以基于上述的两个优先级队列,以支持基于优先级队列的距离下界。两个优先级队列中的输入可以包含三个部分:相应轨迹或节点的标识符,计算出的距离下界以及节点或轨迹的状态。对于状态属性,状态0代表内部节点,状态1代表叶子节点,状态2代表不完整的外包框,状态3代表完整的外包框,状态4代表精确的轨迹。状态“不完整”表示存在该轨迹的未加载子外包框,该子外包框的时间间隔与查询的时间范围相交。这些输入将根据其距离下界进行排序,因此距离下界较小的输入将被更早加载。如果两个输入的距离下界相同,则状态会较大的输入会更早弹出。例如,处理两个队列时,两个队列的顶部较小的一个被视为两个队列的顶部,并且在插入时,将根据其类型插入输入。状态0和状态1的输入将存储在节点队列中,而状态2、状态3和状态4的输入将存储在轨迹队列中。
作为一个示例,对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系,包括:对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系,根据距离关系,将子外包框对应的节点加入优先级队列。
作为一个示例,优先级队列包括用于索引结构的第二索引层中的索引节点的优先级队列。
作为一个示例,优先级队列中的节点的节点信息包括以下信息中的至少一者:中间节点或者叶子节点的标识符、待查询轨迹与中间节点或者叶子节点的距离关系、中间节点或者叶子节点的状态属性、轨迹的标识符、待查询轨迹与轨迹的距离关系,及轨迹的状态属性。
作为一个示例,优先级队列中的节点包括以下中的至少一者:索引结构树的索引层的根节点、索引结构树的索引层的中间节点、索引结构树的索引层的叶子节点、未读完所有外包框的轨迹数据所在节点、已读完所有外包框的轨迹数据所在节点、真实轨迹点组成的轨迹数据所在节点。
图3B为本发明的另一实施例的轨迹查询方法的示意图。如图所示,示出了作为一个示例的KNN搜索处理过程。应理解,上述的KNN搜索处理仅仅为示例性的。例如,图3B的实施例包括如下步骤:
S401:将根节点加入优先队列。
S402:找出距离查询最近的优先队列条目。
S403:如果是中间节点,则将其子节点入队。
S404:如果是叶子节点,则将其存储的外包框去除分给各轨迹,然后重新计算涉及的各个轨迹的下界。
S405:如果是轨迹,且其外包框不完整,则读出保存了它的下一个和查询有关的外包框的叶子节点,然后和左边读取叶子节点同样流程。
S406:如果是轨迹,且其外包框完整,则取出其具体的轨迹点入队。
S407:如果是轨迹,且已经取出其具体的轨迹点,则其为最近邻,将其取出作为结果。
S408:是否已经找到K个最近邻。
S409:结束。
首先,叶子节点函数从叶子节点加载所有外包框,如果外包框的时间段与查询时间段相交,则将它们分配给相应的轨迹。此过程中将对新遇到的轨迹创建优先级队列中的新输入。其次,借助查询简化,它为接收新外包框的轨迹重新计算距离下界。然后,相关的优先队列输入将相应地更新其距离下界,并将其状态更新为状态2或状态3,具体取决于相应的轨迹是否有其他子外包框未加载。
换言之,每次从优先级队列中弹出和查询距离最近的一个记输入,如果它是中间节点或叶子节点,则读取这个节点,并将所有子节点加入队列。如果它是轨迹的外包框,则去读包含这个轨迹的其它部分外包框的叶子节点。如果它是具体的轨迹,则将其输出为KNN查询的结果。
在查询过程中,单个轨迹的不同子外包框会在不同时刻被加载。例如,根据它们更新距查询的距离的下限。例如,对于已加载某些子外包框的轨迹,可以需要维护已加载的子外包框、以及叶子节点包含该轨迹的未加载子外包框、以及子轨迹的存储位置。此外,还可以记录已经通过精确计算或通过基于最大速度的下限计算出的距离,以避免重复计算。
作为一个示例,根据确定的节点,获得与待查询轨迹相似的轨迹,包括:如果确定的节点为第二索引层中的中间节点,则将中间节点的子节点入队;如果确定的节点为第二索引层中的叶子节点,则将叶子节点存储的外包框取出分给相应的轨迹,并重新计算涉及的相应的轨迹的下界。
作为一个示例,所述方法还包括:如果确定的节点为第二索引层中的轨迹数据所在节点,并且轨迹的外包框不完整,则读出保存轨迹的下一个和待查询轨迹有关的外包框的叶子节点;如果确定的节点为第二索引层中的叶子节点,则将叶子节点存储的外包框取出分给各个轨迹,并重新计算涉及的各个轨迹的下界。
作为一个示例,所述方法还包括:如果确定的节点为第二索引层中的轨迹数据所在节点,并且轨迹的外包框完整,则取出轨迹的轨迹点入队;如果确定的节点为第二索引层中的轨迹数据所在节点,并且已经取出轨迹的轨迹点,则轨迹为待查询轨迹的最近邻。
图4A为本发明的另一实施例的轨迹查询方法的示意图。如图所示,首先将轨迹按照一定的规则进行切分,将T1切分成四段,并对应四个外包框B1,B2,B3,B4,同样对T2切分成三段,并对应三个外包框B5,B6,B7。换言之,轨迹T1和T2分别被切分为四段子轨迹和三段子轨迹。例如,轨迹T1的各子轨迹分别具有子外包框B1、子外包框B2、子外包框B3和子外包框B4。轨迹T2的各子轨迹分别具有子外包框B5、子外包框B6和子外包框B7。下面将结合图4B对图4A的切分的子轨迹的索引进行说明。
图4B为本发明的另一实施例的轨迹查询方法的示意图。如图所示,假设图4A的轨迹T1和轨迹T2为在一维空间上运动的两条轨迹(纵轴为时间),在构建本发明实施例的索引结构时,例如,在构建第一索引层时,将各段子轨迹重新组合,假设B1和B2内的子轨迹可以存放在一个内存页中,记为T1_1。B3和B4内的轨迹点则存在另一个内存页T1_2中,T2的轨迹点则存在T2_1内存页中。例如,在构建第二索引层时,构建过程可以如同普通的R树,假设最终结果如上图。应理解,虽然文中未绘制各个节点的外包框,但是这些外包框可以通过所包含的子外包框获得。还应理解,文中也未绘制子外包框间的前后连接。
另外,在进行KNN搜索时,假设查询距离轨迹Q最近的轨迹,则首先将根节点N1加入队列,然后取出N1,加入N2和N3。如果N2和N3的外包框都和Q相交,则依次将其打开,将子节点入队。然后,如果N4,N5,N6,N7,N4的外包框与Q相交,则读出B1和B5。之后,B5距离Q的距离最近,但其时间范围没有覆盖Q的时间范围(即,外包框不完整),因此查找B5的下一个子外包框B6,发现其在N6节点,于是将其读出。在获得B5和B6后,如果此时Q离这两个外包框组成的轨迹较远,则继续读出队列中离查询最近的节点N5,得到外包框B2和B3。如果发现B2和B3所包含的轨迹离Q比其它未读取的外包框近,则寻找B2和B3的具体子轨迹点,发现所述B2和B3存储在T1_1和T1_2中。因此读取这两页后,可以得到具体的T1的轨迹点。如果发现此轨迹依然在队列的最前面,换言之,如果此轨迹距离查询最近,则查询结果为T1。
应理解,上述的KNN搜索过程仅仅为示例性的,本发明实施例不仅用于KNN搜索(KNN检索或KNN查询)或ANN(近似最邻近)检索,还可以用于其他的检索处理。
图5为本发明的另一实施例的索引构建装置的示意性框图;图5的索引构建装置包括:
第一构建模块510,用于根据轨迹点数据构建第一索引层,第一索引层中的各个节点用于存储轨迹点数据。
第二构建模块520,用于对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点。
第三构建模块530,用于为第一索引层和第二索引层构建链接,以通过链接建立第二索引层的各个索引节点对应的子外包框与第一索引层中的各个节点中的轨迹点数据之间的关联关系。
第四构建模块540,用于根据第一索引层、第二索引层和关联关系,构建用于进行轨迹查找的索引结构。
由于第一索引层存储轨迹点数据,第二索引层存储相应的外包框和子外包框,因此构建得到的索引结构能够有效地处理轨迹的相似性查询。
在本发明的另一实现方式中,第二构建模块具体用于:根据多个子外包框的质心,对多个子外包框进行分组,以获得多个子外包框的分组结果。
在本发明的另一实现方式中,第二构建模块具体用于:根据分组结果和第二索引层的叶子节点的时间长度,构建第二索引层的索引节点。
在本发明的另一实现方式中,构建第二索引层的索引节点之前,所述装置还包括确定模块,所述确定模块用于根据叶子节点的时间长度与叶子节点的总体积的关系,确定使得叶子节点的总体积最小的时间长度,并将使得叶子节点的总体积最小的时间长度作为用于构建第二索引层的索引节点的时间长度。
在本发明的另一实现方式中,第二构建模块具体用于:对轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;并且,为索引节点中的各个叶子节点设置:与当前叶子节点的子外包框对应的轨迹点数据所在的第一索引层的节点之间的链接、与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接。
在本发明的另一实现方式中,与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接通过以下方式设置:对第二索引层中的叶子节点进行第一轮遍历,以记录第二索引层中的各个叶子节点中的子外包框与叶子节点的序号之间的映射;对第二索引层中的叶子节点进行第二轮遍历,确定与当前叶子节点的子外包框所属的总外包框中的其它子外包框;根据映射和确定的其它子外包框,设置当前叶子节点与其它子外包框所在的叶子节点的链接。
在本发明的另一实现方式中,与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接,包括:与当前叶子节点的目标子轨迹的子外包框所属的轨迹的相邻子轨迹的子外包框所在叶子节点的链接。
在本发明的另一实现方式中,第一索引层采用TB结构,并且第二索引层采用3DR结构,第四构建模块具体用于:根据TB结构树、3DR结构和3DR结构的各个索引节点对应的子外包框与TB结构中的各个节点中的轨迹点数据之间的关联关系,构建用于进行轨迹查找的索引结构。
本实施例的方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。
本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
图6为本发明的另一实施例的轨迹查询装置的示意性框图。图6的轨迹查询装置包括:
接收模块610,用于接收相似轨迹查询请求,相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹。
第一确定模块620,用于根据相似轨迹查询请求,确定对应的轨迹数据的索引结构。
第二确定模块630,用于对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系。
第三确定模块640,用于根据距离关系,确定与待查询轨迹距离最近的子外包框对应的节点,并根据确定的节点,获得与待查询轨迹相似的轨迹。
在本发明的另一实现方式中,对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系之前,所述装置还包括:简化模块,对待查询轨迹进行简化,以获得待查询轨迹的简化轨迹;第二确定模块具体用于:对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与简化轨迹的距离关系。
在本发明的另一实现方式中,所述简化模块具体用于:确定待查询轨迹上到待查询轨迹的开始点与结束点的连线的距离最大的第一轨迹点;确定待查询轨迹上到待查询轨迹的开始点与第一轨迹点的连线的距离最大的第二轨迹点,及待查询轨迹上到待查询轨迹的结束点与第一轨迹点的连线的距离最大的第三轨迹点,直到在待查询轨迹上确定n+1个轨迹点,其中,n表示简化轨迹中的线段的数量;依次连接待查询轨迹的开始点、确定的n+1个轨迹点和待查询轨迹的结束点,以生成待查询轨迹的简化轨迹。
在本发明的另一实现方式中,第二确定模块具体用于:对索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与待查询轨迹的距离关系,根据距离关系,将子外包框对应的节点加入优先级队列。
在本发明的另一实现方式中,优先级队列包括用于索引结构的第二索引层中的索引节点的优先级队列。
在本发明的另一实现方式中,优先级队列中的节点的节点信息包括以下信息中的至少一者:中间节点或者叶子节点的标识符、待查询轨迹与中间节点或者叶子节点的距离关系、中间节点或者叶子节点的状态属性、轨迹的标识符、待查询轨迹与轨迹的距离关系,及轨迹的状态属性。
在本发明的另一实现方式中,优先级队列中的节点包括以下中的至少一者:索引结构树的索引层的根节点、索引结构树的索引层的中间节点、索引结构树的索引层的叶子节点、未读完所有外包框的轨迹数据所在节点、已读完所有外包框的轨迹数据所在节点、真实轨迹点组成的轨迹数据所在节点。
在本发明的另一实现方式中,第三确定模块具体用于:如果确定的节点为第二索引层中的中间节点,则将中间节点的子节点入队;如果确定的节点为第二索引层中的叶子节点,则将叶子节点存储的外包框取出分给相应的轨迹,并重新计算涉及的相应的轨迹的下界。
在本发明的另一实现方式中,所述装置还包括第一处理模块,所述第一处理模块用于:如果确定的节点为第二索引层中的轨迹数据所在节点,并且轨迹的外包框不完整,则读出保存轨迹的下一个和待查询轨迹有关的外包框的叶子节点;如果确定的节点为第二索引层中的叶子节点,则将叶子节点存储的外包框取出分给各个轨迹,并重新计算涉及的各个轨迹的下界。
在本发明的另一实现方式中,所述装置还包括第二处理模块,所述第二处理模块用于:如果确定的节点为第二索引层中的轨迹数据所在节点,并且轨迹的外包框完整,则取出轨迹的轨迹点入队;如果确定的节点为第二索引层中的轨迹数据所在节点,并且已经取出轨迹的轨迹点,则轨迹为待查询轨迹的最近邻。
本实施例的方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。
本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
图7为本发明的另一实施例的电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器701;
计算机可读介质702,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例所述的方法。
图8为本发明的另一实施例的电子设备的硬件结构;如图8所示,该电子设备的硬件结构可以包括:处理器801,通信接口802,计算机可读介质803和通信总线804;
其中处理器801、通信接口802、计算机可读介质803通过通信总线804完成相互间的通信;
可选地,通信接口802可以为通信模块的接口;
其中,处理器801具体可以配置为:根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构,或者,
接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构;对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
处理器801可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质803可以是,但不限于,随机存取存储介质(RandomAccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本发明的方法中限定的上述功能。需要说明的是,本发明所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本发明的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所描述的方法。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构,或者,
接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构;对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种索引构建方法,所述方法包括:
根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;
对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;
为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;
根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构。
2.根据权利要求1所述的方法,其中,所述对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,包括:
根据所述多个子外包框的质心,对所述多个子外包框进行分组,以获得所述多个子外包框的分组结果。
3.根据权利要求1所述的方法,其中,所述根据分组结果构建第二索引层的索引节点,包括:
根据所述分组结果和所述第二索引层的叶子节点的时间长度,构建所述第二索引层的索引节点。
4.根据权利要求3所述的方法,其中,所述构建所述第二索引层的索引节点之前,所述方法还包括:
根据所述叶子节点的时间长度与所述叶子节点的总体积的关系,确定使得所述叶子节点的总体积最小的时间长度,并将使得所述叶子节点的总体积最小的时间长度作为用于构建所述第二索引层的索引节点的时间长度。
5.根据权利要求1所述的方法,其中,所述对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点,包括:
对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;
并且,为所述索引节点中的各个叶子节点设置:与当前叶子节点的子外包框对应的轨迹点数据所在的第一索引层的节点之间的链接、与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接。
6.根据权利要求5所述的方法,其中,所述与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接通过以下方式设置:
对所述第二索引层中的叶子节点进行第一轮遍历,以记录所述第二索引层中的各个叶子节点中的子外包框与所述叶子节点的序号之间的映射;
对所述第二索引层中的叶子节点进行第二轮遍历,确定与当前叶子节点的子外包框所属的总外包框中的其它子外包框;
根据所述映射和确定的所述其它子外包框,设置当前叶子节点与其它子外包框所在的叶子节点的链接。
7.根据权利要求5所述的方法,其中,所述与当前叶子节点的子外包框所属的总外包框中的其它子外包框所在叶子节点的链接,包括:
与当前叶子节点的目标子轨迹的子外包框所属的轨迹的相邻子轨迹的子外包框所在叶子节点的链接。
8.根据权利要求1所述的方法,其中,所述第一索引层采用TB结构,并且所述第二索引层采用3DR结构,
所述根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构,包括:
根据所述TB结构树、所述3DR结构和所述3DR结构的各个索引节点对应的子外包框与所述TB结构中的各个节点中的轨迹点数据之间的关联关系,构建用于进行轨迹查找的索引结构。
9.一种轨迹查询方法,所述方法包括:
接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;
根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构,其中,所述索引结构为根据权利要求1-8中任意一项权利要求所述的索引构建方法构建的索引结构;
对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;
根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
10.根据权利要求9所述的方法,其中,所述对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系之前,所述方法还包括:
对所述待查询轨迹进行简化,以获得所述待查询轨迹的简化轨迹;
所述对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系,包括:
对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述简化轨迹的距离关系。
11.根据权利要求10所述的方法,其中,所述对所述待查询轨迹进行简化,包括:
确定所述待查询轨迹上到所述待查询轨迹的开始点与结束点的连线的距离最大的第一轨迹点;
确定所述待查询轨迹上到所述待查询轨迹的开始点与所述第一轨迹点的连线的距离最大的第二轨迹点,及所述待查询轨迹上到所述待查询轨迹的结束点与所述第一轨迹点的连线的距离最大的第三轨迹点,直到在所述待查询轨迹上确定n+1个轨迹点,其中,n表示所述简化轨迹中的线段的数量;
依次连接所述待查询轨迹的开始点、确定的n+1个轨迹点和所述待查询轨迹的结束点,以生成所述待查询轨迹的简化轨迹。
12.根据权利要求9所述的方法,其中,所述对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系,包括:
对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系,根据所述距离关系,将子外包框对应的节点加入优先级队列。
13.根据权利要求12所述的方法,其中,所述优先级队列包括用于所述索引结构的第二索引层中的索引节点的优先级队列。
14.根据权利要求13所述的方法,其中,所述优先级队列中的节点的节点信息包括以下信息中的至少一者:所述中间节点或者所述叶子节点的标识符、所述待查询轨迹与所述中间节点或者所述叶子节点的距离关系、所述中间节点或者所述叶子节点的状态属性、所述轨迹的标识符、所述待查询轨迹与所述轨迹的距离关系,及所述轨迹的状态属性。
15.根据权利要求13所述的方法,其中,所述优先级队列中的节点包括以下中的至少一者:索引结构树的索引层的根节点、索引结构树的索引层的中间节点、索引结构树的索引层的叶子节点、未读完所有外包框的轨迹数据所在节点、已读完所有外包框的轨迹数据所在节点、真实轨迹点组成的轨迹数据所在节点。
16.根据权利要求9所述的方法,其中,所述根据确定的所述节点,获得与所述待查询轨迹相似的轨迹,包括:
如果确定的所述节点为所述第二索引层中的中间节点,则将所述中间节点的子节点入队;
如果确定的所述节点为所述第二索引层中的叶子节点,则将所述叶子节点存储的外包框取出分给相应的轨迹,并重新计算涉及的相应的轨迹的下界。
17.根据权利要求16所述的方法,其中,所述方法还包括:
如果确定的所述节点为所述第二索引层中的轨迹数据所在节点,并且所述轨迹的外包框不完整,则读出保存所述轨迹的下一个和所述待查询轨迹有关的外包框的叶子节点;
如果确定的所述节点为所述第二索引层中的叶子节点,则将所述叶子节点存储的外包框取出分给各个轨迹,并重新计算涉及的各个轨迹的下界。
18.根据权利要求16所述的方法,其中,所述方法还包括:
如果确定的所述节点为所述第二索引层中的轨迹数据所在节点,并且所述轨迹的外包框完整,则取出所述轨迹的轨迹点入队;
如果确定的所述节点为所述第二索引层中的轨迹数据所在节点,并且已经取出所述轨迹的轨迹点,则所述轨迹为所述待查询轨迹的最近邻。
19.一种索引构建装置,所述装置包括:
第一构建模块,用于根据轨迹点数据构建第一索引层,所述第一索引层中的各个节点用于存储所述轨迹点数据;
第二构建模块,用于对所述轨迹点数据对应的轨迹外包框所包含的多个子外包框进行分组,根据分组结果构建第二索引层的索引节点;
第三构建模块,用于为所述第一索引层和所述第二索引层构建链接,以通过所述链接建立所述第二索引层的各个索引节点对应的子外包框与所述第一索引层中的各个节点中的轨迹点数据之间的关联关系;
第四构建模块,用于根据所述第一索引层、所述第二索引层和所述关联关系,构建用于进行轨迹查找的索引结构。
20.一种轨迹查询装置,所述装置包括:
接收模块,用于接收相似轨迹查询请求,所述相似轨迹查询请求用于请求查询与待查询轨迹相似的轨迹;
第一确定模块,用于根据所述相似轨迹查询请求,确定对应的轨迹数据的索引结构,其中,所述索引结构为根据权利要求1-8中任意一项权利要求所述的索引构建方法构建的索引结构;
第二确定模块,用于对所述索引结构的第二索引层中的索引节点,按照层级关系依次确定各节点中的子外包框与所述待查询轨迹的距离关系;
第三确定模块,用于根据所述距离关系,确定与所述待查询轨迹距离最近的子外包框对应的节点,并根据确定的所述节点,获得与所述待查询轨迹相似的轨迹。
21.一种电子设备,所述设备包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任意一项权利要求所述的索引构建方法,或者实现如权利要求9-18中任意一项权利要求所述的轨迹查询方法。
22.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-8中任意一项权利要求所述的索引构建方法,或者实现如权利要求9-18中任意一项权利要求所述的轨迹查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010292011.7A CN113312346A (zh) | 2020-04-14 | 2020-04-14 | 索引构建方法、轨迹查询方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010292011.7A CN113312346A (zh) | 2020-04-14 | 2020-04-14 | 索引构建方法、轨迹查询方法、装置、设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312346A true CN113312346A (zh) | 2021-08-27 |
Family
ID=77370222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010292011.7A Pending CN113312346A (zh) | 2020-04-14 | 2020-04-14 | 索引构建方法、轨迹查询方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312346A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806376A (zh) * | 2021-11-09 | 2021-12-17 | 阿里云计算有限公司 | 索引构建方法及装置 |
CN116150304A (zh) * | 2023-03-28 | 2023-05-23 | 阿里云计算有限公司 | 数据的查询方法、电子设备和存储介质 |
-
2020
- 2020-04-14 CN CN202010292011.7A patent/CN113312346A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806376A (zh) * | 2021-11-09 | 2021-12-17 | 阿里云计算有限公司 | 索引构建方法及装置 |
CN113806376B (zh) * | 2021-11-09 | 2022-05-13 | 阿里云计算有限公司 | 索引构建方法及装置 |
CN116150304A (zh) * | 2023-03-28 | 2023-05-23 | 阿里云计算有限公司 | 数据的查询方法、电子设备和存储介质 |
CN116150304B (zh) * | 2023-03-28 | 2023-07-21 | 阿里云计算有限公司 | 数据的查询方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10948301B2 (en) | Systems and methods for recommending an estimated time of arrival | |
CN106649656B (zh) | 一种面向数据库的时空轨迹大数据存储方法 | |
JP2024041823A (ja) | 乗り物データを管理するためのシステムおよび方法 | |
Wang et al. | Processing of continuous location-based range queries on moving objects in road networks | |
US20200387489A1 (en) | Systems and methods for data storage and querying | |
Sasaki | A survey on IoT big data analytic systems: Current and future | |
CN110832478B (zh) | 用于按需服务的系统和方法 | |
US9223801B2 (en) | Information management method and information management apparatus | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
Limkar et al. | A novel method for parallel indexing of real time geospatial big data generated by IoT devices | |
US10969233B2 (en) | Trajectory data compression | |
CN113312346A (zh) | 索引构建方法、轨迹查询方法、装置、设备及可读介质 | |
Havers et al. | DRIVEN: A framework for efficient Data Retrieval and clustering in Vehicular Networks | |
CN109716383A (zh) | 利用机器学习技术进行价格预估的系统和方法 | |
CN113934686A (zh) | 面向海量机载激光点云的分布式多级空间索引方法 | |
Zhai et al. | Collision detection for UAVs based on GeoSOT-3D grids | |
Makris et al. | Evaluating the effect of compressing algorithms for trajectory similarity and classification problems | |
CN113326257A (zh) | 索引构建方法、推荐方法、装置、电子设备和计算机存储介质 | |
Kumar et al. | Changing the world of autonomous vehicles using cloud and big data | |
Yin et al. | Efficient trajectory compression and range query processing | |
US20230126317A1 (en) | System and method for processing vehicle event data for improved journey trace determination | |
CN116108120A (zh) | 用于轨迹数据的网格索引方法、轨迹数据搜索方法和装置 | |
Xie et al. | Construction for the city taxi trajectory data analysis system by Hadoop platform | |
Rahimi et al. | Towards a cloud based smart traffic management framework | |
Saleem et al. | Scalable processing of location-based social networking queries |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059796 Country of ref document: HK |