CN103235831B - 基于路网的移动对象位置索引结构及索引方法 - Google Patents
基于路网的移动对象位置索引结构及索引方法 Download PDFInfo
- Publication number
- CN103235831B CN103235831B CN201310178443.5A CN201310178443A CN103235831B CN 103235831 B CN103235831 B CN 103235831B CN 201310178443 A CN201310178443 A CN 201310178443A CN 103235831 B CN103235831 B CN 103235831B
- Authority
- CN
- China
- Prior art keywords
- mobile object
- tree
- path
- pos
- prediction
- 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.)
- Expired - Fee Related
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Navigation (AREA)
Abstract
本发明提供的一种基于路网的移动对象位置索引结构和索引方法。其中索引结构包括:针对路网建立的上层索引结构和针对路网中的移动对象建立的下层索引结构,所述上层索引结构包括:路网R树,路径哈希表和交叉口转向表,所述下层索引结构包括:移动对象R树、静态对象R树、移动对象哈希表和动态链表。本发明的索引结构,可以支持移动对象的全时态位置信息查询和最近邻查询。
Description
技术领域
本发明涉及位置索引技术,尤其涉及一种基于路网的移动对象位置索引结构和索引方法。
背景技术
随着移动设备(例如:智能手机、车载导航终端)、无线通信技术和GPS(GlobalPositioning System,全球定位系统)等的大量应用,催生了一类基于位置的服务,其中位置服务提供者提供给查询者关于移动对象的位置信息。在现实应用中,大多数的移动对象在二维空间中做受限运动,而不是无限制的运动,例如:车辆沿道路行驶是受限运动,轮船在大海中自由航行是无限制的运动,因此人们逐渐意识到受限运动的重要性,并提出了若干基于路网的移动对象位置索引结构。但是,目前基于路网的移动对象位置索引结构的研究还处于初始阶段,每种结构都只能满足部分要求,例如:Frentzos等人提出的基于时间片查询的FNR-Tree索引结构,只能索引移动对象的历史轨迹,而无法索引移动对象的实时位置;KIM提出的IMORS索引结构,该结构支持信息的快速更新,能够有效的索引移动对象的实时信息,但是该索引结构没有其他R-Tree等结构的支撑,所以无法索引移动对象的历史轨迹信息。Almeida等人提出的MON-Tree索引结构支持对移动对象的窗口查询和历史轨迹查询,但缺乏对时间信息的管理和网络拓扑空间持续性优化,所以关于时间片的查询效率低且不支持最近邻查询。
发明内容
有鉴于此,本发明提供了一种基于路网的移动对象位置索引结构和索引方法。该索引结构可以支持移动对象的全时态位置信息查询和最近邻查询。
本发明提供的基于路网的移动对象位置索引结构,包括:针对路网建立的上层索引结构和针对路网中的移动对象建立的下层索引结构,所述上层索引结构包括:路网R树,路径哈希表和交叉口转向表,所述下层索引结构包括:移动对象R树、静态对象R树、移动对象哈希表和动态链表。
进一步,所述路网R树为二维路网R树,且所述路网R树的叶子节点的数据结构包括:路径标识号、指向移动对象R树的指针、指向静态对象R树的指针、与路径哈希表中指针相对应的双向指针和限行标志。
进一步,所所述路径哈希表的数据结构包括:路径标识号、限行标志、路径所含交叉口标识和指向路网R树中对应叶子节点的指针。
进一步,所述交叉口转向表的数据结构包括:交叉口标识、可转向路径标识和交叉口位置属性。
进一步,所述静态对象R树的每个叶子结点均指向一个最近邻链表,且所述静态对象R树中叶子结点的数据结构包括:静态对象标识号、静态对象位置信息和静态对象名称。
进一步,所述移动对象R树中的叶子结点的数据结构包括:移动对象标识号、移动对象在路径中的运动方向、路径标识号、以及指向动态链表中相应结点的指针。
进一步,所述移动对象哈希表的数据结构包括:移动对象标识号、移动对象插入表的时间、移动对象插入表时的速度、移动对象插入表时的相对位置,指向动态链表队首的指针、以及指向动态链表队尾的指针。
进一步,所述动态链表数据结构包括:移动对象标识号,移动对象当前所处的路径标识号,更新移动对象时的速度、时间、移动方向,移动对象在路径中的相对位置,以及指向移动对象R树中对应叶子结点的指针。
本发明提供的基于上述的索引结构的移动对象位置的索引方法,该方法用于预测移动对象过去将来时刻的位置,包括:
接收预测移动对象在t时刻的位置的预测请求;
若t介于移动对象两次更新的时刻ti和ti+1之间,则根据移动对象的位置偏移预测移动对象在t时刻的位置fpos1和根据移动对象的平均速度预测移动对象在t时刻的位置fpos2;
根据fpos1和fpos2预测移动对象在t时刻的最终预测位置fpos。
进一步,
其中,posi为移动对象在ti时刻的位置,posi+1为移动对象在ti+1时刻的位置,Vi为移动对象在ti时刻的速度,Vi+1为移动对象在ti+1时刻的速度。
本发明提供的基于上述的索引结构的移动对象位置的索引方法,该方法用于预测移动对象未来时刻的位置,包括:
接收预测移动对象在t时刻位置的预测请求;
若t大于移动对象最后一次更新结点的时间te,并且t和te的差小于移动对象的更新间隔td,则预测移动对象在t时刻的位置fpos=pose+(t-te)×Ve,其中,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度。
本发明提供的基于上述的索引结构的移动对象位置的索引方法,该方法用于预测移动对象未来时刻的位置,包括:
接收预测移动对象在t时刻位置的预测请求;
若t大于移动对象最后一次更新结点的时间te,并且t和te的差大于移动对象的更新间隔td,则预测移动对象从te所处的位置运动到交叉口的时间tji;
根据tji和查询时刻t的间隔,预测移动对象在t时刻的位置。
进一步,其中,posji为交叉口的位置,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
进一步,所述根据tji和查询时刻t的间隔,预测移动对象在t时刻的位置包括:
当td<tji-te时,则预测移动对象在t时刻的位置为:
当td>tji-te时,则预测移动对象将在以posji为圆心,r为半径的圆形区域内的可转向路径上,其中,
其中,pose为移动对象在te时刻的位置,pose-1为移动对象在te的上一更新时刻te-1的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
本发明提供的基于上述的索引结构的移动对象位置的索引方法,该方法用于索引移动对象的最近邻,包括:
接收来自移动对象的最近邻查询请求;
根据移动对象的最近邻查询请求,访问静态对象R树和最近邻链表,得到N个最近邻对象;
根据移动对象的行驶方向和路径限行两个要素,从所述N个最近邻对象中选择出最终的最近邻对象。
本发明的有益效果:
本发明实施例中,基于路网的移动对象位置索引结构主要由上、下两层索引结构组成,其中上层索引结构是针对路网而建立,具体包括:路网R树、路径哈希表和交叉口转向表,下层索引结构是针对移动对象而建立,具体包括:移动对象R树、静态对象R树,移动对象哈希表和动态链表;该索引结构支持移动对象的全时态位置查询(包括:实时位置查询、历史轨迹查询、过去将来时刻位置预测、未来时刻位置预测,等)和最近邻查询。
附图说明
下面结合附图和实施例对本发明作进一步描述:
图1是本发明提供的移动对象位置索引结构的实施例的结构示意图。
图2和图3均为路网的简意示意图。
图4是本发明提供的移动对象位置的索引方法的第一实施例的结构示意图。
图5是本发明提供的移动对象位置的索引方法的第二实施例的流程示意图。
图6是本发明提供的移动对象位置的索引方法的第三实施例的流程示意图。
图7是本发明提供的移动对象位置的索引方法的第四实施例的流程示意图。
具体实施方式
此处,主要分两部分对本发明实施例进行说明,其中一部分是关于基于路网的移动对象位置索引结构,另一部分是关于基于该索引结构实现的移动对象位置的索引方法。下面分别就这两部分进行详细说明。
第一部分:基于路网的移动对象位置索引结构。
请参考图1,是本发明提供的基于路网的移动对象位置索引结构的实施例的结构示意图。
图1所示的结构主要由上、下两层索引结构组成,其中上层索引结构主要是对实际的交通路网建立的索引,下层索引结构主要是针对路网中的移动对象建立的索引。
并且,上层索引结构主要包括:路网R树,路径哈希表(即:Roads_hash)和交叉口转向表(即:Turn_table)。下层索引结构主要包括:静态对象R树、移动对象R树、移动对象哈希表(即:mobj(moving object)_hash)和动态链表。下面分别就上层索引结构和下层索引结构进行详细说明。
继续如图1所示,路网R树为二维路网R树,也就是“2DR-Tree”,其中R树是数据结构中一种标准的N叉平衡树。在建立路网R树时,以路径为基本索引单位,其中路径是由一系列连续的路段组成,而路段则由边构成,所谓的边实际是道路中拐点之间的距离,在将边组成路段时,将一条或多条边组成的交叉口之间的距离定义为路段。
举例来言,如图2所示,是路网的简意示意图。其中,1和2所指均为拐点之间的距离,即为:边1和边2;又因为边1和边2相对于相互连接的另一端均为交叉口,因此边1和边2组成了路段。
在划分路径时,采用限行标记(标记单/双向)的路径模型,主要遵循如下原则进行:原则1、一条路径为实际交通网中的道路,由一条或多条连续的路段组成;原则2、若根据原则1中划分的路径中有某段或某几段是单行道,则需根据规则3重新划分;原则3、将连续的单行道划分为一条独立的路径,剩余的连续路段为一条路径。
举例来言,如图3所示,是路网的简意示意图。在该路网中存在路段1、2、3、4,假设路段1为双行道、路段2为单行道、路段3为单行道、路段4为双行道,那么按照上述原则对路段1、2、3、4进行路径划分时,将划分出三条路径,分别为由路段1构成的路径,由路段2、3构成的路径和由路段4构的路径。
依据上述三条原则划分路径的好处在于:因为路段2和路段3是单行道,考虑到车辆在交叉口转向约束等问题,将其另命名为一条路径,可以提高移动对象将来位置预测和最近邻查询的精度。
本实施例,路网R树的中间结点的数据结构包括:MBR(Minimum BoundingRectangle,最小外接矩形)和Child_Ptr(孩子指针),其中MBR是包含中间节点的所有子节点的最小外接矩形,Child_Ptr是指向叶子结点的指针。
路网R树的每个叶子结点代表一条路径,并同时指向下层索引结构中对应的移动对象R树和静态对象R树,并且每个叶子节点的数据结构包括:MBR,Road_ID,information,mobj_ptr,sobj_ptr(static object ptr),ptr和limit。其中MBR是该条路径的最小外接矩形;Road_ID为路径标识号,通过路径标识号进行路径的区分和索引;information指向该路径的实际存储位置,该实际存储位置记录了该路径的其它属性值,例如:路径总长度、路面质量及承载能力等;mobj_ptr,为指向该路径所对应的下层移动对象R树的指针;sobj_ptr,为指向该路径对应的下层静态对象R树的指针;ptr是双向指针,与路径哈希表中的指针对应;Limit即限行标志,用于标识该路径是单行道还是双行道,例如:当limit=0时表示该路径为双行道,Limit=1表示该路径为单行道。
本实施例,如表一所示,是路径哈希表的数据结构的示意,从表一可知,路径哈希表的数据结构包括:路径标识(即:Road_ID)),限行标志(即:Limit),交叉口标识和指针。其中,限行标志,用于标识该路径是单行道还是双行道,例如:当限行标志=1时表示该路径是单行道,限行标志=0时表示该路径是双行道;交叉口标识记录了该条路径含有的所有的交叉口;指针指向该路径所对应的路网R树的叶子结点。
举例来言,表一中的(R3-5,0,J2、J5,ptr)具体表示:R3-5标识一条路径的起点在交叉口3,终点在交叉口5;0标识该条路径允许双向行驶,即可在行驶途中变更行驶方向;J2、J5为处于路径R3-5中的交叉口;ptr指向路网R树中与该路径相对应的叶子结点。
表一:
路径标识 | 限行标志 | 交叉口标识 | 指针 |
R1-4 | 1 | J2 | ptr |
R3-5 | 0 | J2、J5 | ptr |
…… | …… | …… | …… |
Ri-k | 1 | Jk | ptr |
利用表一,如果知道路径标识号,就可以查找到该条路径的单、双行信息,该条路径中所包含的交叉口情况、以及通过指针定位到该条路径对应的叶子节点。
本实施例中,如表二所示,是交叉口转向表的数据结构示意,从表二可知,交叉口转向表的数据结构包括:交叉口标识,转向路径和位置属性。其中,交叉口标识(即:junction)用于区分和索引交叉口;转向路径(即:turn_to_roads)包含了在该交叉口可以转向的路径,从实际路网结构可知,最多有4条可以转向的路径;位置属性(即:Position)表示该交叉口在其连接的所有路径中的相对位置,即Position=0表示在路径的起点,Position=1表示在路径的末端。
表二:
交叉口标识 | 转向路径 | 位置属性 |
J2 | R1-4 | 0.3 |
J5 | 0 | 0.7 |
…… | …… | …… |
Jk | Ri-k | …… |
如表二所示,其中的(J2,R1-4,0.3)表示移动对象可以在交叉口J2处转向驶入路径R1-4中,且交叉口J2在路径R1-4中的相对位置为0.3,即路径的总长度为1,交叉口J2在离路径R1-4的起点1处的距离为0.3。在表二中,如果知道了交叉口的标识,那么就可以查询到该交叉口可以转向的路径以及该交叉口的相对位置。并且,通过交叉口标识还建立了路径哈希表与交叉口转向表之间的关联,例如:通过路径标识号R3-5查询到在该路径上存在交叉口J2,然后通过交叉口转向表,可以知道在交叉口J2处,存在的可转向路径是R1-4,且该交叉口J2在路径R1-4中的相对位置,根据可选转向路径和移动对象行驶方向,便于预测移动对象的将来位置和查询行驶方向上的最近邻对象。
继续如图1所示,下层索引结构主要包括:静态对象R树、移动对象R树、移动对象哈希表和动态链表。
其中,静态对象R树为一维结构,可以支持移动对象的最近邻查询,其主要用于索引路径上所有静态对象的位置信息,如酒店、加油站等。具体的,静态对象R树的每个叶子结点都指向一个NNL(nearest neighbor list,最近邻链表),该NNL保存了静态对象的最近邻信息。静态对象R树的中间结点数据结构包括:MBR和Child_Ptr,其中MBR为包含所有叶子结点的最小外接矩形;Child_Ptr为指向叶子结点的指针。具体的,静态对象R树叶子结点的数据结构包括:MBR,Sobj_ID,name,position,information和ptr,其中Sobj_ID是静态对象的标识号,name为静态对象的名称,position保存了静态对象的位置信息,information为指向保存该对象其它相关属性的物理地址指针,ptr指向该对象的最近邻链表NNL。
其中,移动对象R树索引了同条路径上所有的移动对象,其中间结点数据结构包括:MBR和Child_Ptr,其中MBR为移动对象位置的最小外接矩形,即(t1,t2,p1,p2)所构成的矩形框范围域,t1和t2为时间间隔,p1和p2是坐标位置间隔,如(13,15,(1,2),(3,5))表示在下午1点至3点之间,在由坐标(1,2)和(3,5)围成的矩形框范围内,横轴长度为2,纵轴长度为3;child_Ptr为指向叶子结点的指针。具体的,移动对象R树的叶子结点数据结构包括:MBR,mobj_ID,direction,Road_ID,information和dptr。其中,mobj_ID为移动对象标识号,direction为移动对象在该路径中的运动方向,Road_ID为路径标识号,information是指向物理磁盘的指针,保存了该移动对象的其它相关信息,例如路径总长度、路面质量及承载能力等,dptr是双向指针,指向动态链表中相应的结点。
其中,如表三所示,是移动对象哈希表的数据结构的示意,由表三可知,移动对象哈希表的数据结构包括:mobj_ID,t,v,p,ptr和rptr。其中mobj_ID为移动对象标识号,t表示移动对象插入哈希表的时间,v表示移动对象插入哈希表时的速度,单位为公里每秒,p为当移动对象插入哈希表时在路径中的相对位置,ptr为指向动态链表中的首节点的指针,rptr为指向动态链表的尾结点的指针。
表三:
其中,动态链表中结点的数据结构包括:mobj_ID,Road_ID,t,v,direction,p和dptr,其中,mobj_ID为移动对象标识号,Road_ID为移动对象当前所处的路径标识号,v、t、direction分别表示更新移动对象时的速度、时间和移动方向,p表示移动对象在路径中的相对位置,dptr为指向移动对象R树中对应叶子结点的双向指针。
第二部分:基于第一部分所示的索引结构的移动对象位置的索引方法。
请参考图4,是本发明提供的移动对象位置的索引方法的第一实施例的流程示意图。本实施例主要用于预测移动对象过去将来时刻的位置,其具体包括:
步骤S41、接收预测移动对象在t时刻的位置的预测请求。此处,预测请求包括:移动对象标识号。
步骤S42、若t介于移动对象两次更新的时刻ti和ti+1之间,则根据移动对象的位置偏移预测移动对象在t时刻的位置fpos1和根据移动对象的平均速度预测移动对象在t时刻的位置fpos2。
具体的,根据移动对象的位置偏移预测移动对象在t时刻的位置fpos1是指根据式: 进行的预测。
具体的,根据移动对象的平均速度预测移动对象在t时刻的位置fpos2是指根据式: 进行的预测。
其中,posi为移动对象在ti时刻的位置,posi+1为移动对象在ti+1时刻的位置,Vi为移动对象在ti时刻的速度,Vi+1为移动对象在ti+1时刻的速度。
步骤S43、根据fpos1和fpos2预测移动对象在t时刻的最终预测位置fpos。具体的,根据式: 进行预测。
本实施例中,移动对象除了在更新间隔td到达时,自动进行位置更新外,还在改变行驶路径时强制进行位置更新,因此对于移动对象过去将来时刻位置预测只需要考虑在同一路径中行驶的情形。由于动态链表中结点保存了移动对象的更新时间、更新位置和更新速度,因此可以用位移差值除以时间差值得平均速度,然后用时间间隔乘以平均速度就可以预测出移动对象的位置,或者利用两次更新速度的平均值预测查询时刻的位置;然而,本实施例综合利用上述两种方式进行位置预测,可以最大化的缩小误差,提高预测的精度。
请参考图5,是本发明提供的移动对象位置的索引方法的第二实施例的流程示意图。本实施例主要用于预测移动对象未来时刻的位置,具体包括:
步骤S51、接收预测移动对象在t时刻位置的预测请求。此处,预测请求包括:移动对象标识号。
步骤S52、若t大于移动对象最后一次更新结点的时间te,并且t和te的差小于移动对象的更新间隔td,则预测移动对象在t时刻的位置fpos为:fpos=pose+(t-te)×Ve。
其中,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度。
本实施例中,由于查询时刻(即t时刻)和移动对象最近一次更新结点的时间te小于移动对象自动更新的时间间隔td(为固定值),因此根据移动对象最近过去的运动状况将延续到最近将来的原则,采用上述的预测算法进行预测可以获得好的预测效果。
请参考图6,是本发明提供的移动对象位置的索引方法的第三实施例的流程示意图。本实施例主要用于预测移动对象未来时刻的位置,具体包括:
步骤S61、接收预测移动对象在t时刻位置的预测请求。此处,预测请求包括:移动对象标识号。
步骤S62、若t大于移动对象最后一次更新结点的时间te,并且t和te的差大于移动对象的更新间隔td,则预测移动对象从te所处的位置运动到交叉口的时间tji。
具体的,可以根据进行预测。其中,posji为交叉口的位置,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
具体的,当t大于移动对象最后一次更新结点的时间te,并且t和te的差大于移动对象的更新间隔td时,表明预测的时刻点距离最后一次更新时间的距离比较远,预测越久的将来时刻位置信息,精确度就越差。所以根据过去时刻延续到将来时刻的方式就不太适合,必须综合更多其它的情形,才能较准确的预测移动对象未来时刻的位置。
步骤S63、根据tji和查询时刻t的间隔,预测移动对象在t时刻的位置。具体的,当td<tji-te时,即移动对象超过下一个交叉口的概率不大,即使经过交叉口处,也是在离其不远的小范围内。因此,搜索交叉口转向表,只要交叉口不是路径在移动对象运动方向上的最后一个路口,就假设移动对象依旧沿原路径行驶,那么最近的过去将影响最近的将来,预测移动对象在t时刻的位置为:
当td>tji-te时,则移动对象在预测时间点t时极大可能已经不在原路径上行驶了,已经在交叉口Ji或者下一个交叉口转向了,这种情形下的预测精度极低,因为很难通过移动对象原先的运动方向推测将要选择的路径。为此,我们预测移动对象将会出现在以Ji为圆心、r为半径的圆形区域C里,而非具体到某个点。在圆形区域C里最多有四条路径R1、R2、R3和R4,访问上层路径哈希表,查看四条路径中是否有限行路径,剔除不可转向的路径,进一步提高预测精度。具体的,另外,当td<tji-te时,通过搜索交叉口转向表,发现交叉口是路径在移动对象运动方向上的最后一个路口,也可以采用此种预测方式。
上述中,pose为移动对象在te时刻的位置,pose-1为移动对象在te的上一更新时刻te-1的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
请参考图7,是本发明提供的移动对象位置的索引方法的第四实施例的流程示意图。本实施例主要用于索引移动对象的最近邻对象,具体包括:
步骤S71、接收来自移动对象的最近邻查询请求。此处,最近邻查询请求中包括移动对象标识号。
步骤S72、根据移动对象的最近邻查询请求,访问静态对象R树和最近邻链表,得到N个最近邻对象。
步骤S73、根据移动对象的行驶方向和路径限行两个要素,从所述N个最近邻对象中选择出最终的最近邻对象。
具体的,响应移动对象在路径Ri上行驶到POSi处时,发出查询最近的加油站的请求,具体操作步骤如下:
第一部分述及的索引结构的静态对象R树是由GPS等定位系统进行数据采集,一次性完成插入操作的。不过计算下层静态对象之间的距离时,并没有考虑路网拓扑结构,只是单纯的计算它们之间的直线距离,所以实现移动对象相对静态对象的最近邻查询需要结合上层路径哈希表和交叉口转向表,考虑移动对象的实际运动方向和路径限行问题才能真正的计算出最近邻对象,例如,移动对象Oi在Pi位置发出查询距离当前最近的加油站的请求,首先访问静态对象R树和最近邻链表,得到N个最近邻对象,按照空间距离最短进行排列,然后根据对象Oi的行驶方向和路径限行两个要素,判断查询出来的第一个最近邻静态对象N1是否在移动对象Oi的行驶方向上(通过位置夹角判断是否同向,夹角小于90度则同向),如果是则选取,如果不是则需要查看该路径的限行标记,看对象Oi能否转向,如果能则转向,并输出查询结果N1,如果不能,则需要判断第二个最近邻对象N2,步骤如上,直到查询到满足条件的最近邻对象Ni。
每个静态对象都维护了一个NNL(nearest neighbor list),NNL保存了该静态对象的最近邻信息,是动态更新的。当移动对象Oi在路径Ri上运行到POSi处时,发出了NNQ(nearest neighbor query),查询最近的加油站,系统首先根据路径标识在上层路径哈希表中找到该路径,查看该路径的相应信息,比如限行标志LIMIT、交叉点junction等属性,然后通过移动对象R树的叶子结点,定位到该路径维护的静态对象R树,查找相应对象维护的NNL链表,在NNL链表中查找查询对象,如果在NNL中没有找到所需信息,则需要通过最近邻查询算法NNA(Nearest Neighbor Algorithm),找到最近邻对象并插入到相应的NNL链表中。通过上述流程查询到的最近邻对象NNO(Nearest Neighbor Object)没有考虑实际的交通路网拓扑结构,只是直线距离最短的静态对象,因此需要结合移动对象的运行方向和路径限行等因素,计算出基于交通路网下的最近邻对象。
第一部分述及的索引结构还可以预测移动对象的历史轨迹,下面简略叙述其思路:
假设需要查询移动对象在时间段(t1,t2)内的轨迹信息,具体实现如下:
移动对象轨迹查询包括历史轨迹和实时位置查询。历史轨迹查询是指查询时t小于移动对象的最新更新时刻;实时查询是指查询移动对象的当前位置信息,由于动态链表最后一个结点(即:尾结点)就是最晚更新的结点,因此通过关键字映射找到在移动对象哈希表中的移动对象,通过移动对象哈希表的rptr指针可直接定位动态链表的尾结点,即快速实现当前位置的实时查询。
进行历史轨迹查询时,首先根据移动对象的标识号,通过关键字映射找到在移动对象哈希表的移动对象,移动对象哈希表的ptr指针指向记录该移动对象运动信息的动态链表。动态链表中的各结点按时间先后顺序排列,所以只需要通过结点的ptr指针就可以依次遍历到符合时间段(t1,t2)要求的结点。找到所有符合要求的结点集合mobj[]后,通过结点的dptr指针就可以定位到上层R树的叶子结点,得出移动对象运动轨迹的详细信息。需要说明的是,由于通过移动对象哈希表就可以快速定位查询对象,无需遍历整个移动对象R树森林,因此有利于提高查询速度。动态链表结点中有对象的更新时刻信息,且每个结点都有指向移动对象R树中相应结点的指针,因此仅需访问动态链表就可以快速索引查询时间段内的移动对象。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于路网的移动对象位置索引结构,其特征在于:包括:针对路网建立的上层索引结构和针对路网中的移动对象建立的下层索引结构,所述上层索引结构包括:路网R树,路径哈希表和交叉口转向表,所述下层索引结构包括:移动对象R树、静态对象R树、移动对象哈希表和动态链表;
所述路网R树为二维路网R树,且所述路网R树的叶子节点的数据结构包括:路径标识号、指向移动对象R树的指针、指向静态对象R树的指针、与路径哈希表中指针相对应的双向指针和限行标志;
所述路径哈希表的数据结构包括:路径标识号、限行标志、路径所含交叉口标识和指向路网R树中对应叶子节点的指针;
所述交叉口转向表的数据结构包括:交叉口标识、可转向路径标识和交叉口位置属性,通过交叉口标识建立路径哈希表与交叉口转向表之间的关联;
接收预测移动对象在t时刻的位置的预测请求;
若t介于移动对象两次更新的时刻ti和ti+1之间,则根据移动对象的位置偏移预测移动对象在t时刻的位置fpos1和根据移动对象的平均速度预测移动对象在t时刻的位置fpos2;
根据fpos1和fpos2预测移动对象在t时刻的最终预测位置fpos;
接收来自移动对象的最近邻查询请求;
根据移动对象的最近邻查询请求,访问静态对象R树和最近邻链表,得到N个最近邻对象;
根据移动对象的行驶方向和路径限行两个要素,从所述N个最近邻对象中选择出最终的最近邻对象;
在划分路径时,采用限行标记的路径模型,遵循如下原则进行:原则1、一条路径为实际交通网中的道路,由一条或多条连续的路段组成;原则2、若根据原则1中划分的路径中有某段或某几段是单行道,则需根据规则3重新划分;原则3、将连续的单行道划分为一条独立的路径,剩余的连续路段为一条路径。
2.如权利要求1所述的基于路网的移动对象位置索引结构,其特征在于:所述静态对象R树的每个叶子结点均指向一个最近邻链表,且所述静态对象R树中叶子结点的数据结构包括:静态对象标识号、静态对象位置信息和静态对象名称;
所述移动对象R树中的叶子结点的数据结构包括:移动对象标识号、移动对象在路径中的运动方向、路径标识号、以及指向动态链表中相应结点的指针;
所述移动对象哈希表的数据结构包括:移动对象标识号、移动对象插入表的时间、移动对象插入表时的速度、移动对象插入表时的相对位置,指向动态链表队首的指针、以及指向动态链表队尾的指针;
所述动态链表数据结构包括:移动对象标识号,移动对象当前所处的路径标识号,更新移动对象时的速度、时间、移动方向,移动对象在路径中的相对位置,以及指向移动对象R树中对应叶子结点的指针。
3.如权利要求1所述的基于路网的移动对象位置索引结构,其特征在于:
其中,posi为移动对象在ti时刻的位置,posi+1为移动对象在ti+1时刻的位置,Vi为移动对象在ti时刻的速度,Vi+1为移动对象在ti+1时刻的速度。
4.一种基于权利要求1-2中任一项所述的结构的移动对象位置的索引方法,该方法用于预测移动对象未来时刻的位置,其特征在于:包括:
接收预测移动对象在t时刻位置的预测请求;
若t大于移动对象最后一次更新结点的时间te,并且t和te的差小于移动对象的更新间隔td,则预测移动对象在t时刻的位置fpos=pose+(t-te)×Ve,其中,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度。
5.一种基于权利要求1-2中任一项所述的结构的移动对象位置的索引方法,该方法用于预测移动对象未来时刻的位置,其特征在于:包括:
接收预测移动对象在t时刻位置的预测请求;
若t大于移动对象最后一次更新结点的时间te,并且t和te的差大于移动对象的更新间隔td,则预测移动对象从te所处的位置运动到交叉口的时间tji;
根据tji和查询时刻t的间隔,预测移动对象在t时刻的位置。
6.如权利要求5所述的结构的移动对象位置的索引方法,其特征在于:其中,posji为交叉口的位置,pose为移动对象在te时刻的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
7.如权利要求6所述的结构的移动对象位置的索引方法,其特征在于:所述根据tji和查询时刻t的间隔,预测移动对象在t时刻的位置包括:
当td<tji-te时,则预测移动对象在t时刻的位置为:
当td>tji-te时,则预测移动对象将在以posji为圆心,r为半径的圆形区域内的可转向路径上,其中,
其中,pose为移动对象在te时刻的位置,pose-1为移动对象在te的上一更新时刻te-1的位置,Ve为移动对象在te时刻的速度,Ve-1为移动对象在te的上一更新时刻的速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310178443.5A CN103235831B (zh) | 2013-05-15 | 2013-05-15 | 基于路网的移动对象位置索引结构及索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310178443.5A CN103235831B (zh) | 2013-05-15 | 2013-05-15 | 基于路网的移动对象位置索引结构及索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103235831A CN103235831A (zh) | 2013-08-07 |
CN103235831B true CN103235831B (zh) | 2016-08-10 |
Family
ID=48883872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310178443.5A Expired - Fee Related CN103235831B (zh) | 2013-05-15 | 2013-05-15 | 基于路网的移动对象位置索引结构及索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235831B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473286B (zh) * | 2013-08-29 | 2018-01-02 | 上海斐讯数据通信技术有限公司 | 一种网管设备面板管理方法及网管设备面板 |
CN104794175B (zh) * | 2015-04-01 | 2018-01-23 | 浙江大学 | 基于度量k最近对的景点和酒店最佳配对方法 |
CN106095802B (zh) * | 2016-05-31 | 2019-08-09 | 南京邮电大学 | 城市路网上基于r树的全时态移动对象索引方法 |
CN105928535B (zh) * | 2016-06-15 | 2018-08-31 | 苏州清研捷运信息科技有限公司 | 一种道路通行限制的车辆路径规划方法 |
CN106570062B (zh) * | 2016-10-08 | 2021-01-05 | 中国人民解放军理工大学 | 一种路网轨迹不确定移动对象范围查询系统及方法 |
CN107917716B (zh) * | 2018-01-02 | 2021-07-06 | 广东工业大学 | 固定线路导航方法、装置、终端及计算机可读存储介质 |
CN108304542B (zh) * | 2018-01-31 | 2021-09-03 | 沈阳航空航天大学 | 一种时间依赖路网中的连续k近邻查询方法 |
US11080267B2 (en) * | 2018-08-31 | 2021-08-03 | Waymo Llc | Validating road intersections |
CN110657805A (zh) * | 2018-09-30 | 2020-01-07 | 北京奇虎科技有限公司 | 一种基于道路场景查找移动目标的方法及装置 |
CN112434118B (zh) * | 2020-11-11 | 2024-02-13 | 中南民族大学 | 索引结构及创建方法、系统、查询方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN102436481A (zh) * | 2011-10-21 | 2012-05-02 | 武汉大学 | 一种道路网结构模式的自动识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181467B2 (en) * | 2003-03-27 | 2007-02-20 | Oracle International Corporation | Delayed distance computations for nearest-neighbor queries in an R-tree index |
-
2013
- 2013-05-15 CN CN201310178443.5A patent/CN103235831B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN102436481A (zh) * | 2011-10-21 | 2012-05-02 | 武汉大学 | 一种道路网结构模式的自动识别方法 |
Non-Patent Citations (4)
Title |
---|
NBR-tree: 面向城市交通网络的一种新型时空索引;金培权等;《武汉大学学报(信息科学版)》;20100205;第35卷(第2期);第148-151页 * |
交通网络中移动对象全时态索引研究与实现;李贞海;《中国优秀硕士学位论文全文数据库信息科技辑 》;20110915(第09期);第I138-700页 * |
网络受限移动对象不确定性轨迹的索引;丁治明等;《计算机科学》;20080325;第35卷(第3期);第79-83页 * |
路网中移动对象的索引与查询研究;谭晓天;《万方数据企业知识服务平台》;20120903;第I页,第15-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103235831A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103235831B (zh) | 基于路网的移动对象位置索引结构及索引方法 | |
CN102033918B (zh) | 基于时间位置信息搜索目标用户的方法及系统 | |
Chang et al. | Discovering personalized routes from trajectories | |
CN103544291B (zh) | 道路网络中基于RRN-Tree的移动对象CKNN查询方法 | |
CN106095802B (zh) | 城市路网上基于r树的全时态移动对象索引方法 | |
CN106225791A (zh) | 一种基于网格划分的gps定位与道路匹配方法 | |
CN105679009B (zh) | 一种基于出租车gps数据挖掘的打车/接单poi推荐系统及方法 | |
Pun-Cheng | An interactive web-based public transport enquiry system with real-time optimal route computation | |
JP4045303B2 (ja) | 地図情報更新装置および地図情報更新方法 | |
CN103149577B (zh) | “北斗”导航、gps导航和历史数据融合的组合导航方法 | |
CN102023018A (zh) | 能量消耗量预测方法、能量消耗量预测装置及终端装置 | |
CN107291842A (zh) | 基于轨迹编码的轨迹查询方法 | |
CN102749084A (zh) | 一种面向海量交通信息的路径选择方法 | |
CN106323322A (zh) | 车辆导航路线智能优化方法 | |
CN102435200A (zh) | 一种路径快速规划方法 | |
CN107784012A (zh) | 一种数字地图兴趣点的更新方法及装置 | |
CN108182800A (zh) | 一种货运交通信息处理方法及设备 | |
WO2022199388A1 (zh) | 出行路径规划方法和出行路径推荐方法 | |
CN106373384B (zh) | 边远地区客运班车线路实时生成方法 | |
CN107917716A (zh) | 固定线路导航方法、装置、终端及计算机可读存储介质 | |
Huang et al. | Dynamic graph mining for multi-weight multi-destination route planning with deadlines constraints | |
CN110555174B (zh) | 一种基于r树的轨迹路径推荐方法 | |
CN112685411A (zh) | 一种高铁网络可视化方法 | |
Park et al. | Framework for constructing multimodal transport networks and routing using a graph database: A case study in London | |
Qi et al. | Monet: Modeling and querying moving objects in spatial networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 Termination date: 20170515 |