一种轨迹查询方法、系统及装置与流程

文档序号:15445588发布日期:2018-09-14 23:19阅读:173来源:国知局

本申请涉及导航技术领域,尤其涉及一种轨迹查询方法、系统及装置。



背景技术:

给定多个查询点,在历史轨迹中找到与这些查询点的距离的和最小的一条或多条轨迹,是多点轨迹查询方法所要解决的问题。其中,所述轨迹可以是动物的行动轨迹或者交通工具的行驶轨迹。例如旅游过程中,游客希望在一天内游览多个景点,如果将这些景点作为查询点,多点轨迹查询就是从历史行驶路线中找到距离这些景点最近的一条或多条行驶路线,从而帮助游客进行路线规划。

多点轨迹查询方法中,历史轨迹由在动物或交通工具行动或行驶过程中实时采集的gps位置信息组成。基于采集的历史轨迹数据,多点轨迹查询方法通常分为两个步骤:先通过查询算法确定离查询点最近,也就是与查询点的距离的和最小的一条或多条轨迹所在的候选集,所述候选集为历史轨迹数据集合的子集;然后对候选集中的每条轨迹,计算其到各个查询点的距离和,将各个轨迹按所述距离和从小到大排列,选取最小的前k条历史轨迹,作为最终结果。其中,查询算法是多点轨迹查询方法的重点。

现有的多点轨迹查询算法主要包括iknn(incrementalk-nnbasedalgorithm,扩展的k近邻算法)、gh(globalheap,全局堆)和sra(spatialrange-basedapproach,基于空间区域的算法)。

其中,iknn构建以轨迹为结点的r树空间索引,使用扩展的k近邻算法在r树中进行搜索,确定离查询点最近的k条历史轨迹所在的候选集。iknn中,扩展的k近邻算法以查询点与轨迹之间的相似度为搜索距离:

上式中m为查询点个数,q是查询点的集合,t是一条轨迹,e是自然常数,dist(qi,t)是查询点qi到轨迹t的欧氏距离,相似度会越大,查询点距离轨迹越近。

gh对每个查询点qi都建立一个独立堆,独立堆中含有该查询点和所有轨迹点组成的二元组,并使其按照轨迹点到查询点的距离从小到大排列,再选择其中距离最小的二元组,以此为基础建立一个全局堆,然后以全局堆为索引基础进行搜索,确定离查询点最近的k条历史轨迹所在的候选集。gh中的搜索距离是查询点到轨迹tx的欧式距离的累加:

sra构建以轨迹为结点的r树空间索引,基于轨迹r树进行空间区域搜索,来确定离查询点最近的k条历史轨迹所在的候选集,其所使用的搜索距离与gh所使用的搜索距离相同。

但是,现有的多点轨迹查询算法都是基于查询点到轨迹的欧氏距离进行搜索,查询点到轨迹的欧氏距离根据轨迹的gps(globalpositioningsystem,全球定位系统)数据计算,由于gps数据与真实位置数据之间存在偏移,查询点到轨迹的欧氏距离也将偏移查询点到实际轨迹的真实距离,产生很大的计算误差,导致查询准确度降低。再者,现有的多点轨迹查询方法都是基于轨迹构造空间索引,把所有轨迹的gps点放在一个r树下或者堆中,由于轨迹和轨迹点数量众多,索引结构将非常庞大,导致索引速度慢,查询效率低。



技术实现要素:

本申请提供了一种轨迹查询方法、系统及装置,以解决现有技术中轨迹查询效率低的问题。

第一方面,本申请提供了一种轨迹查询方法,该方法包括:匹配历史轨迹数据和道路网的路段数据,建立路段与历史轨迹之间的映射关系,所述路段为道路网中两个相邻节点之间的线路,所述历史轨迹数据由动物或交通工具沿道路行动的历史gps位置数据组成;根据所述路段数据生成路网索引,所述路网索引为以所述路段数据为空间对象的空间索引;确定待选轨迹所属的候选集c,包括:对每个查询点qi,使用所述路网索引查找距离qi最近的一条或多个路段,将与所述离qi最近的一条或多条路段相映射的历史轨迹放入查询点qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹,其中,k为预设值,i取区间[1,m]中的所有自然数,m为所述查询点的个数,所述查询点为待选轨迹经过或从旁边经过的位置点,所述查询点预先给定,所述待选轨迹为与所述查询点的距离和最小的一条或多条历史轨迹;将ci合并为所述候选集c;选取所述候选集c中与所述查询点的距离和最小的k条历史轨迹。

采用本实现方式,引入道路网数据,将历史轨迹数据与道路网的路段数据匹配,得到路段与轨迹的映射关系,并生成以路段数据为空间对象的空间索引,在此空间索引中查询距离查询点最近的多个路段,再根据路段与历史轨迹的映射关系,进一步计算得到距离查询点最近的一条或多条历史轨迹。相比于现有技术中以历史轨迹为结点的空间索引,本实现方式中空间索引以路段数据为空间对象,数据体量更小,结构更简洁,能够大大提高轨迹查询效率,而且,由于路段数据是精确的,在空间索引中根据查询点与路段的距离进行搜索,相比现有技术中根据查询点与历史轨迹的距离进行搜索,具有更高的准确度。

结合第一方面,在第一方面第一种可能的实现方式中,所述确定所述待选轨迹所属的候选集c,具体包括:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次相映射的历史轨迹使用所述路网索引查找除相映射的历史轨迹已放入ci的路段之外距离qi最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹;若是,将ci合并为所述候选集c。采用本实现方式,基于查询点与路段的距离,使用以路段为空间对象的路网索引进行查询,逐步对子候选集进行扩展,相比现有技术具有更高的准确度和效率。

结合第一方面,在第一方面第二种可能的实现方式中,所述确定所述待选轨迹所属的候选集c,具体包括:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),使用所述路网索引查找除相映射的历史轨迹已放入cj(min)的路段之外距离qj最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集cj(min),直至ci的交集中存在至少k条历史轨迹,cj(min)为qj的子候选集;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。采用本实现方式,每次只对当前轨迹条数最少的子候选集进行扩展,相比每次对所有子候选集进行扩展,具有更高的查询效率。

结合第一方面,在第一方面第三种可能的实现方式中,所述确定所述待选轨迹所属的候选集c,具体包括:使用所述路网索引查找距离qi最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次计算λ=λ+δ,使用所述路网索引查找距离qj最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条历史轨迹放入qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹;若是,将ci合并为所述候选集c;其中,λ和δ预先设定。采用本实现方式,利用轨迹数λ来控制子候选集的扩展,在λ足够大的情况下,扩展速度有可能相比根据距离增量扩展的方式更快。

结合第一方面,在第一方面第四种可能的实现方式中,所述方法还包括:根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述确定所述待选轨迹所属的候选集c,具体包括:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入ci的路段之外,使用所述路网索引查找到的距离qi最近的路段,所述已有轨迹为当前所述子候选集ci中已有的历史轨迹;若是,将ci合并为所述候选集c。采用本实现方式,在进行子候选集扩展时,不会将子候选集中已有的轨迹重复加入,从而降低重复操作次数,减少冗余资源占用,提高查询效率。

结合第一方面,在第一方面第五种可能的实现方式中,所述方法还包括:根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述确定所述待选轨迹所属的候选集c,具体包括:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集cj(min)中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入cj(min)的路段之外,使用所述路网索引查找到的距离qj最近的路段,所述已有轨迹为当前所述子候选集cj(min)中已有的历史轨迹;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。采用本实现方式,在进行子候选集扩展时,每次只对当前轨迹条数最少的子候选集进行扩展,而且不会将子候选集中已有的轨迹重复加入,从而能更好地降低冗余资源占用和操作次数,提高查询效率。

结合第一方面或第一方面第一种至第五种可能的实现方式其中任意一种,在第一方面第六种可能的实现方式中,所述选取所述候选集c中与查询点的距离和最小的k条历史轨迹,包括:计算所述候选集c中历史轨迹tj与查询点之间的距离其中,q为查询点的集合,dist(qi,tj)为历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离;按距离dist(q,tj)从小到大的顺序选取前k条历史轨迹;其中,j取区间[1,n]中的所有自然数,n为所述候选集c中轨迹的条数。本实现方式使用历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离来进行选取,由于查询点与各路段的距离已经计算完毕,相比使用查询点与历史轨迹本身的距离来进行选取,可以不必再额外进行计算,因而计算量更小,能够更快速地得到查询结果。

第二方面,本申请还提供了一种轨迹查询系统,所述轨迹查询系统包括用于执行第一方面各种实现方式中方法步骤的模块。所述系统包括:道路网路段数据接收单元,用于接收道路网的路段数据,其中,所述路段为道路网中两个相邻节点之间的线路;历史轨迹数据接收单元,用于接收采集的历史轨迹数据,其中,所述历史轨迹数据由动物或交通工具沿道路行动的历史gps位置数据组成;路网索引生成单元,用于根据所述路段数据生成路网索引,所述路网索引为以所述路段数据为空间对象的空间索引;匹配单元,用于匹配所述道路网的路段数据和所述历史轨迹数据,建立路段与历史轨迹之间的映射关系;候选集确定单元,用于确定待选轨迹所属的候选集c,具体用于:对每个查询点qi,使用所述路网索引查找距离qi最近的一条或多个路段,将与所述离qi最近的一条或多条路段相映射的历史轨迹放入查询点qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹,其中,k为预设值,i取区间[1,m]中的所有自然数,m为所述查询点的个数,所述查询点为待选轨迹经过或从旁边经过的位置点,所述查询点预先给定,所述待选轨迹为与所述查询点的距离和最小的一条或多条历史轨迹;将ci合并为所述候选集c;轨迹确定单元,用于选取所述候选集c中与所述查询点的距离和最小的k条历史轨迹。

结合第二方面,在第二方面第一种可能的实现方式中,所述候选集确定单元,具体用于:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次使用所述路网索引查找除相映射的历史轨迹已放入ci的路段之外距离qi最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹;若是,将ci合并为所述候选集c。

结合第二方面,在第二方面第二种可能的实现方式中,所述候选集确定单元,具体用于:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),使用所述路网索引查找除相映射的历史轨迹已放入cj(min)的路段之外距离qj最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集cj(min),直至ci的交集中存在至少k条历史轨迹,cj(min)为qj的子候选集;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。

结合第二方面,在第二方面第三种可能的实现方式中,所述的轨迹查询系统,还包括:冗余聚类单元,用于根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述候选集确定单元,具体用于:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入ci的路段之外,使用所述路网索引查找到的距离qi最近的路段,所述已有轨迹为当前所述子候选集ci中已有的历史轨迹;若是,将ci合并为所述候选集c。

结合第二方面,在第二方面第四种可能的实现方式中,所述的轨迹查询系统,还包括:冗余聚类单元,用于根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述候选集确定单元,具体用于:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集cj(min)中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入cj(min)的路段之外,使用所述路网索引查找到的距离qj最近的路段,所述已有轨迹为当前所述子候选集cj(min)中已有的历史轨迹;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。

结合第二方面或第二方面第一种至第四种可能的实现方式其中任意一种,在第二方面第五种可能的实现方式中,所述轨迹确定单元,具体用于:计算所述候选集c中历史轨迹tj与查询点之间的距离其中,q为查询点的集合,dist(qi,tj)为历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离;按距离dist(q,tj)从小到大的顺序选取前k条历史轨迹;其中,j取区间[1,n]中的所有自然数,n为所述候选集c中轨迹的条数。

第三方面,本申请还提供了一种轨迹查询装置,包括:处理器、存储器及接收器;所述处理器可以执行所述存储器中所存储的程序或指令,从而实现以第一方面各种实现方式所述的轨迹查询方法。其中,所述接收器,用于接收道路网的路段数据并存储于存储器中,其中,所述路段为道路网中两个相邻节点之间的线路;所述接收器,还用于接收采集的历史轨迹数据并存储于存储器中,所述历史轨迹数据由动物或交通工具沿道路行动的历史gps位置数据组成;所述处理器,用于根据所述路段数据生成路网索引并存储于存储器中,所述路网索引为以所述路段数据为空间对象的空间索引;所述处理器,还用于匹配所述道路网的路段数据和所述历史轨迹数据,得到轨迹路段匹配数据并存储于存储器中,所述轨迹路段数据的数据结构包含路段与历史轨迹之间的映射关系;所述处理器,还用于确定待选轨迹所属的候选集c,具体用于:对每个查询点qi,使用所述路网索引查找距离qi最近的一条或多个路段,将与所述离qi最近的一条或多条路段相映射的历史轨迹放入查询点qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹,其中,k为预设值,i取区间[1,m]中的所有自然数,m为所述查询点的个数,所述查询点为待选轨迹经过或从旁边经过的位置点,所述查询点预先给定,所述待选轨迹为与所述查询点的距离和最小的一条或多条历史轨迹;将ci合并为所述候选集c;所述处理器,还用于选取选取所述候选集c中与所述查询点的距离和最小的k条历史轨迹。

结合第三方面,在第三方面第一种可能的实现方式中,所述处理器用于确定所述待选轨迹所属的候选集c,具体为:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次使用所述路网索引查找除相映射的历史轨迹已放入ci的路段之外距离qi最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹;若是,将ci合并为所述候选集c。

结合第三方面,在第三方面第二种可能的实现方式中,所述处理器用于确定所述待选轨迹所属的候选集c,具体为:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),使用所述路网索引查找除相映射的历史轨迹已放入cj(min)的路段之外距离qj最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集cj(min),直至ci的交集中存在至少k条历史轨迹,cj(min)为qj的子候选集;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。

结合第三方面,在第三方面第三种可能的实现方式中,所述处理器还用于:根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述处理器用于确定所述待选轨迹所属的候选集c,具体为:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入ci的路段之外,使用所述路网索引查找到的距离qi最近的路段,所述已有轨迹为当前所述子候选集ci中已有的历史轨迹;若是,将ci合并为所述候选集c。

结合第三方面,在第三方面第四种可能的实现方式中,所述处理器还用于:根据所述路段和所述历史轨迹之间的映射关系,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;所述处理器用于确定所述待选轨迹所属的候选集c,具体为:使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;若否,则每次选取轨迹条数最少的子候选集cj(min),将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集cj(min)中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入cj(min)的路段之外,使用所述路网索引查找到的距离qj最近的路段,所述已有轨迹为当前所述子候选集cj(min)中已有的历史轨迹;若是,将ci合并为所述候选集c;其中,j为在[1,m]区间的自然数。

结合第三方面或第三方面第一种至第四种可能的实现方式其中任意一种,在第三方面第五种可能的实现方式中,所述处理器用于选取所述候选集c中与所述查询点的距离和最小的k条历史轨迹,具体为:计算所述候选集c中历史轨迹tj与查询点之间的距离其中,q为查询点的集合,dist(qi,tj)为历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离;按距离dist(q,tj)从小到大的顺序选取前k条历史轨迹;其中,j取区间[1,n]中的所有自然数,n为所述候选集c中轨迹的条数。

第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的轨迹查询方法中的部分或全部步骤。

第五方面,本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的轨迹查询方法中的部分或全部步骤。

本申请实施例所提供的轨迹查询技术方案,引入道路网数据,将历史轨迹数据与道路网的路段数据匹配,得到路段与轨迹的映射关系,并生成以路段数据为空间对象的空间索引,在此空间索引中查询距离查询点最近的多个路段,再根据路段与历史轨迹的映射关系,进一步计算得到距离查询点最近的一条或多条历史轨迹。相比于现有技术中以历史轨迹为结点的空间索引,本申请实施例中空间索引以路段数据为空间对象,数据体量更小,结构更简洁,能够大大提高轨迹查询效率,而且,由于道路网的路段数据是精确的,在空间索引中根据查询点与路段的距离进行搜索,相比现有技术中根据查询点与历史轨迹的距离进行搜索,具有更高的准确度,从而提高轨迹查询结果与实际需求的符合度。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请为本申请实施例提供的轨迹查询系统的一示例性框架图;

图2为本申请实施例建立历史轨迹与路段的映射关系的匹配示意图;

图3为本申请实施例中确定待选轨迹所属的候选集c的一示例性流程示意图;

图4为本申请实施例中确定待选轨迹所属的候选集c的另一示例性流程示意图;

图5为本申请为本申请实施例提供的轨迹查询系统的另一示例性框架图;

图6为本申请实施例中确定待选轨迹所属的候选集c的一示例性流程示意图;

图7为本申请实施例中确定待选轨迹所属的候选集c的另一示例性流程示意图;

图8为本申请实施例中确定待选轨迹所属的候选集c的又一示例性流程示意图;

图9为本申请实施例中选取与查询点的距离和最小的k条历史轨迹的一示例性流程示意图;

图10为本申请为本申请实施例提供的轨迹查询设备的一示例性结构示意图。

具体实施方式

参见图1,为本申请实施例提供的轨迹查询系统的一示例性框架图。所述轨迹查询系统的运行基于道路网中的路段数据和历史轨迹数据。路段为道路网中两个相邻节点之间的线路。道路网中的路段数据包括道路网络各路段的位置数据以及各路段的编号,可以存储于道路网数据服务器中。历史轨迹指动物(包括人)或者交通工具例如车辆沿道路行动的历史轨迹,历史轨迹不一定正好在道路上,也可能在道路附近。历史轨迹数据由动物或交通工具沿道路行动的历史gps位置数据组成,通过在人(或动物)或者行驶设备例如车辆上安装的gps信息采集装置采集并传送至历史轨迹数据服务器。

路段数据主要包括路段编号和路段地理位置数据,由于历史轨迹数量大,组成历史轨迹的gps位置点也多,而且一条历史轨迹可能经过多个路段,不同历史轨迹又可能重复经过相同路段,因此历史轨迹数据的数据量远大于路段数据的数据量。

道路网路段数据接收单元与道路网数据服务器通信,接收道路网的路段数据。道路网路段数据接收单元可以在轨迹查询发起时向道路网数据服务器发送数据请求,然后接收道路网数据服务器返回的道路网路段数据,或者接收道路网全部数据,从其中提取路段数据;也可以由道路网数据服务器在每次数据更新后将数据发送给道路网路段数据接收单元,由道路网路段数据接收单元对已接收的道路网路段数据进行更新。

同理,历史轨迹数据接收单元与轨迹数据服务器通信,接收历史轨迹数据。历史轨迹数据接收单元可以在轨迹查询发起时向轨迹数据服务器发送数据请求,然后接收轨迹数据服务器返回的历史轨迹数据,也可以由轨迹数据服务器在每次数据更新后将数据发送给历史轨迹数据接收单元,由历史轨迹数据接收单元对已接收的历史轨迹数据进行更新。

所述道路网路段数据接收单元可以接收道路网中所有的路段数据。或者用户设置一定的以查询点为出发点的查询范围计算方法,例如先计算查询点的中心点,再以中心点为原点、半径为5km的圆所覆盖的范围为查询范围,道路网路段数据接收单元则在用户给定查询点后,计算出查询范围,再从道路网数据服务器请求在所述查询范围以内的路段数据,这样可以减少数据量,提高系统处理效率。同理,历史轨迹数据接收单元可以接收所有历史轨迹数据;或者用户设置一定的以查询点为出发点的查询范围计算方法,历史轨迹数据接收单元在用户给定查询点后,计算出查询范围,再从轨迹数据服务器请求在所述查询范围以内的历史轨迹数据,进一步减少数据量。其中,所述查询点为待选轨迹经过或从旁边经过的位置点,所述查询点预先给定,所述待选轨迹为与所述查询点的距离和最小的一条或多条历史轨迹。

虽然动物或交通工具是沿道路行驶,但由于gps位置数据与实际道路位置之间出于国家安全等因素的考虑是不可能精确符合的,因此若使用轨迹数据来进行轨迹查询,加之计算产生的误差,所得结果的准确度将会变得很低。因此,本申请实施例所提供的轨迹查询系统,与现有技术中根据gps历史轨迹数据在以历史轨迹数据为空间对象的空间索引中进行查询不同,是由匹配单元将历史轨迹数据与道路网的路段数据匹配,获得轨迹与路段之间的映射关系,将历史轨迹数据转换为轨迹路段匹配数据,并在以路段数据为空间对象的路网索引中进行查询。相应地,在查询中所使用的距离也不是查询点与轨迹之间的距离,而是查询点与路段之间的距离,由此提高计算的准确度。所述距离可以为欧氏距离,或者其他用户定义的物理意义或数学意义上的距离。

另外,所述路网索引为以路段数据为空间对象的空间索引,由路网索引生成单元根据所述路段数据生成。所述路网索引可以为r树、k-d-b树或者其他空间索引结构。路网索引是以路段数据为空间对象的空间索引,由于路段数据量远小于历史轨迹数据量,相比以轨迹点表达的历史轨迹数据为空间对象的空间索引,数据体量大大下降,有利于提高查询效率。

图2给出了建立历史轨迹与路段的映射关系的匹配示意图。图2a为路段在地图上的标记图,其中q1、q2和q3为查询点,a、b、c、d、e、f、g、h、i、j、k和l为道路网节点,也是路段的端点,每个路段用其两个端点表示,例如路段ab、bc、de等。从图2a可以看出离q1最近的为路段ab,离q2最近的为路段kl,离q3最近的为路段dj和ed。其中q3有两个距离最近的路段。在一种实施方式中,与查询点的距离相等且最小的路段都视为距离查询点最近的路段;或者在另一种实施方式中,与查询点距离最小,以及与最小距离的差距在设定范围内的路段,都视为距离查询点最近的路段。图2b为历史轨迹t1、t2、t3和t4在地图上的标记图。图2中示出的是在查询点附近一定查询范围以内的历史轨迹t1、t2、t3和t4,以及在查询点附近一定查询范围以内的路段。

图2c为历史轨迹与路段匹配后在地图上的叠加图。由图2c可以看出,经过路段ab的有历史轨迹t1、t2和t3;经过路段dj的有历史轨迹t1;经过路段ed的有历史轨迹t1和t2;经过路段kl的有历史轨迹t1、t2和t4。

匹配单元将历史轨迹数据与道路数据匹配后,得到轨迹路段匹配数据,所述轨迹路段匹配数据的数据结构中包含了路段与历史轨迹之间的映射关系。所得轨迹路段匹配数据的数据结构可以如表1所示,路段为行,历史轨迹为列,路段和历史轨迹都可以只包括编号,这样可以减少数据量。根据路段编号可以索引到经过该路段的历史轨迹,该数据结构也可称为轨迹索引。

表1

在匹配单元得到轨迹路段匹配数据后,侯选集确定单元根据每个查询点到各个路段的距离,在路网索引中进行查询距离每个查询点最近的一条或多条路段,再根据所述轨迹路段匹配数据,具体地,根据历史轨迹和路段之间的映射关系,确定距离所有查询点最近的k条历史轨迹所在的候选集c。其中k为大于或等于1的预设值,由用户根据历史轨迹和道路的情况以及查询需求确定。所述距离所有查询点最近为与所有查询点的距离和最小。

进行查询的思路是对于每个查询点,使用路网索引搜索到距离该查询点最近的一个或多个路段,再得到与该一个或多个路段相映射的多条历史轨迹,这些历史轨迹便是距离该查询点最近的轨迹,将这些历史轨迹放入该查询点的子候选集中。然后取每个查询点的子候选集的交集,如果该交集中存在至少k条历史轨迹,也就是每个子候选集中存在至少k条相同的历史轨迹,则说明从查询点的子候选集并集中能够找到k条距离所有查询点最近的历史轨迹。查询点的子候选集的并集即距离所有查询点最近的k条历史轨迹所在的候选集c。

在搜索距离某个查询点最近的多个路段的过程中,所述路段包括距离该查询点最近的,也可能还包括距离该查询点次近或者第三近乃至更远的,故而候选集c中的某条历史轨迹对于某个查询点可能是最近的,但对于其他某个查询点可能是最远的。因此在得到候选集c后由轨迹确定单元进行细化计算,选取所述候选集c中距离所有查询点最近的k条历史轨迹。

具体地,所述候选集确定单元,根据轨迹路段匹配数据和路网索引,确定距离查询点最近的k条历史轨迹(待选轨迹)所属的候选集c的过程,如图3所示,可以包括:

步骤s301,使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中。

对于给定的每个查询点qi,计算该查询点到各个路段的距离,然后比较所计算得到的距离的大小,得到距离最小的路段,该路段便是距离qi最近的路段,再根据轨迹路段匹配数据中历史轨迹和路段的映射关系,得到该路段相映射的历史轨迹,将所述历史轨迹放入qi的子候选集ci中。其中,i取区间[1,m]中的所有自然数,m为查询点的个数。

步骤s302,计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

步骤s303,若否,将除相映射的历史轨迹已放入ci的路段之外,使用所述路网索引查找到的距离qi最近的路段相映射的轨迹放入子候选集ci中,并返回步骤s302;

步骤s304,若是,将ci合并为所述候选集c。

步骤s302中,若ci的交集中不存在历史轨迹或者历史轨迹的数目小于k,则由步骤s303继续向外搜索,将距离查询点qi次近的路段相映射的历史轨迹加入到查询点qi的子候选集ci中,并返回步骤s302的判断;若判断的结果依然为否,则步骤s303继续向外搜索,将距离查询点qi第三近的路段对应的历史轨迹加入到子候选集ci中,并返回步骤s302,依次类推。当步骤s302判断的结果为是,也就是ci的交集中历史轨迹的数目等于或大于k时,终止循环,将各查询点的子候选集ci合并,得到候选集c。

这种方式中,每次循环对每个查询点的子候选集ci都进行扩展,但通常每个路段相映射的轨迹数是不均衡的,有的路段相映射的历史轨迹少,而有的路段相映射的历史轨迹多,这就会造成各个子候选集ci中包含的轨迹数差别很大。例如有三个查询点,在第一次将距离查询点qi最近的路段相映射的轨迹放入子候选集ci中后,c1中只有5条轨迹,而c2中有50条轨迹,c3中有30条轨迹,这种情况下,对每个ci都进行扩展就会浪费资源和计算时间,因此可以每次只对轨迹数最少的子候选集进行扩展,以节省资源和提高查询效率。

具体地,所述候选集确定单元,确定所述待选轨迹所属的候选集c过程,如图4所示,可以具体包括:

步骤s401,使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

步骤s402,计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;

步骤s403,若否,则选取当前轨迹条数最少的子候选集cj(min),将除相映射的历史轨迹已放入cj(min)的路段之外,使用所述路网索引查找到的距离qj最近的路段相映射的历史轨迹放入qj的子候选集cj(min),并返回步骤s403;

步骤s404,若是,将ci合并为所述候选集c。

其中,i取区间[1,m]中的所有自然数,j为在[1,m]区间的自然数,m为查询点的个数。

这种方式中,步骤s403与步骤s303的不同之处在于,每次循环先比较该次各个子候选集中历史轨迹的条数,选取其中历史轨迹条数最少的子候选集进行扩展,这样可以减少扩展次数,提高查询效率。

实际情况中,路段之间尤其是相邻路段之间对应的历史轨迹通常会有重复,另一方面路段相映射的历史轨迹的数量分布通常又是不均匀的,例如路段ab对应10条历史轨迹,路段bc对应20条历史轨迹,路段cd对应30条历史轨迹,而路段ab对应的10条历史轨迹也经过路段bc和cd,也就是路段bc和路段cd对应的历史轨迹中有10条历史轨迹和路段ab对应的10条历史轨迹是相同的。在轨迹查询过程,若需要对某查询点的子候选集进行扩展,而扩展搜索到的路段相映射的历史轨迹与前一次查询到的路段相映射的历史轨迹有重复,便会出现轨迹冗余的情况,相同的历史轨迹将会被多次重复放入到查询点的子候选集中,造成资源和时间的浪费,降低查询效率。为解决这个问题,降低资源占用,提高查询效率,可以先由冗余聚类单元根据轨迹路段匹配数据,对其中的路段进行冗余聚类。

参见图5,为本申请实施例提供的轨迹查询系统的另一示例性框架图。图5所示框架图与图1所示框架图的区别在于加入了冗余聚类单元,所述冗余聚类单元位于匹配单元和侯选集确定单元之间,与匹配单元和候选集确定单元连接。

所述冗余聚类单元先通过lsh(locality-sensitivehashing,局部敏感哈希)等算法来计算哪些路段对应的历史轨迹存在冗余(重合)。lsh算法可以根据给定的数个哈希变换算式,对所有路段相映射的历史轨迹集合进行哈希变换,得到每条路段的最小哈希值聚类,最小哈希值相等的路段,认为其相映射的轨迹是有冗余的。通过lsh算法可以得到历史轨迹存在重合的路段的集合,每个所述集合至少包含两条路段。进一步地,冗余聚类单元比较所述集合中路段相映射的轨迹,可以得到同时经过所述集合中的路段的冗余历史轨迹的集合(冗余轨迹集合),将这些冗余轨迹集合标记为冗余或者其他特征性标记,或者将所述冗余轨迹集合用特定指针表示,并且将轨迹路段匹配数据中该路段相映射的历史轨迹表示为冗余轨迹集合和其他轨迹的组合。

例如,路段ab对应10条历史轨迹,路段bc对应30条历史轨迹,经过计算,ab和bc存在轨迹冗余,而且bc对应的30条历史轨迹中有10条和路段ab对应的10;藕色轨迹是一样的,那么这10条历史轨迹便是ab和bc的冗余轨迹,将这10条历史轨迹作为一个冗余轨迹集合,该冗余轨迹集合可以命名为r1并标记为“redundant(冗余)”,或者将该冗余轨迹集合以指针p1表示。这样,轨迹路段匹配数据中,路段ab对应的历史轨迹为冗余轨迹集合r1,路段bc对应的历史轨迹为冗余轨迹集合r1与其他历史轨迹;或者路段ab对应的历史轨迹为指针p1(实际上为p1所指向的冗余轨迹集合),路段bc对应的历史轨迹为p1与其他轨迹指针的组合。

这样,在确定候选集的过程中,如果需要对查询点的子候选集进行扩展,在扩展时如果新查询到的路段相映射的历史轨迹与子候选集中已放入的历史轨迹之间有相同的冗余轨迹集合,则该冗余轨迹集合不重复加入子候选集中,而只将该冗余轨迹集合之外的历史轨迹放入子候选集中。具体地,所述候选集确定单元,确定候选集c的过程,如图6所示,可以具体包括:

步骤s601,使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

步骤s602,计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

步骤s603,若否,则执行如下步骤:

步骤s6031,使用所述路网索引选取除相映射的历史轨迹已放入ci的路段之外距离qi最近的被选路段;

步骤s6032,将所述被选路段中与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集ci中,所述已有轨迹为当前子候选集ci中已有的轨迹,并返回步骤s602;

步骤s604,若是,将ci合并为所述候选集c;

其中,i取区间[1,m]中的所有自然数,m为查询点的个数。

若步骤s603每次只对轨迹数最少的子候选集进行扩展,则所述候选集确定单元,确定候选集c的过程,如图7所示,可以具体包括:

步骤s701,使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

步骤s702,计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

步骤s703,若否,则执行如下步骤:

步骤s7031,选取轨迹条数最少的子候选集cj(min),cj(min)为查询点qj的子候选集;

步骤s7032,使用所述路网索引选取除相映射的历史轨迹已放入cj(min)的路段之外距离qj最近的被选路段;

步骤s7033,将所述被选路段中与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集cj(min)中,并返回步骤s702,所述已有轨迹为当前子候选集cj(min)中已有的轨迹;

步骤s704,若是,将ci合并为所述候选集c;

其中,i取区间[1,m]中的所有自然数,j为在[1,m]区间的自然数,m为查询点的个数。

上述各种实施方式中,候选集确定单元是通过距离增量,也就是增加查询点到路段之间的距离,来逐步对子候选集进行扩展。下面提出另一种实施方式,候选集确定单元使用轨迹条数来逐步对子候选集进行扩展。具体地,设定一个轨迹条数λ,对每个查询点的子候选集,计算查询点到各个路段的距离后,如果距离查询点最近的路段相映射的历史轨迹条数g1大于或等于λ,则将其中的λ条历史轨迹放入子候选集中;如果距离查询点最近的路段相映射的历史轨迹条数g1小于λ,则将距离查询点最近的路段相映射的历史轨迹都放入子候选集中,并且判断离查询点次近的路段相映射的历史轨迹条数g2加上g1是否大于或等于λ,如果大于或等于λ,则将离查询点次近的路段相映射(λ-g1)条历史轨迹也放入子候选集中,这(λ-g1)条轨迹可以随机地从距离查询点次近的路段相映射的历史轨迹中选取,依此类推直至子候选集中有λ条轨迹。这样,第一次得到的每个子候选集中的轨迹数是相同的,都是λ条,然后判断子候选集的交集中是否存在k条历史轨迹,如果存在,则不需对子候选集再进行扩展;如果不存在,则增加λ的值,令λ加上一个设定的增量δ,即令λ=λ+δ,然后对子候选集进行扩展,即按照路段距离查询点从近到远的顺序,选取路段,将路段相映射的历史轨迹放入子候选集中,使各个子候选集中的轨迹数增加δ条,按照这种方式对子候选集进行扩展,直至子候选集的并集中历史轨迹的条数大于或等于k。这种方式在λ足够大的情况下,扩展速度可能相比前述根据距离增量扩展的方式要快,但由于不同查询点与各个路段的距离存在很大差异,这种使每个子候选集的条数都相同的方式,没有考虑距离的递进,很可能会使子候选集中被加入很多距离查询点远的不必要的历史轨迹,增加候选集的体量,浪费系统资源,而且如果λ设置过小,子候选集的扩展速度反而会很慢。

候选集确定单元若使用轨迹条数来逐步对子候选集进行扩展,则所述候选集确定单元,确定候选集c的过程,如图8所示,可以具体包括:

步骤s801,使用所述路网索引查找距离qi最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条轨迹放入qi的子候选集ci中;

步骤s802,计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

步骤s803,若否,则计算λ=λ+δ,使用所述路网索引查找距离qj最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条轨迹放入qi的子候选集ci中,并返回步骤s802;

步骤s804,若是,将ci合并为所述候选集c。

其中,i取区间[1,m]中的所有自然数,m为查询点的个数,λ和δ预先设定。

在候选集确定单元得到候选集c后,轨迹确定单元对候选集c中所有的历史轨迹计算其到各个查询点的距离的和,选取其中距离的和最小的k条历史轨迹作为查询结果,完成轨迹查询。其中,计算历史轨迹到查询点的距离,可以为直接根据历史轨迹数据计算查询点到历史轨迹的距离,该距离为查询点到历史轨迹上距离查询点最近的轨迹点的距离;也可以为计算历史轨迹经过的距离查询点最近的路段到查询点的距离,这种方式不必额外地再获取历史轨迹本身的位置数据来进行计算,计算量小,更为便捷快速。

具体地,所述轨迹确定单元选取所述候选集c中距离所述查询点的距离和最小的k条历史轨迹的过程,如图9所示,可以包括:

步骤s901,计算所述候选集c中历史轨迹tj与查询点之间的距离其中,q为查询点的集合,dist(qi,tj)为历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离;

步骤s902,按距离dist(q,tj)从小到大的顺序选取前k条历史轨迹;

其中,j取区间[1,n]中的所有自然数,n为候选集c中历史轨迹的条数。

其中,可以基于已计算的查询点qi到各个路段的距离,对于候选集c中的每条历史轨迹,根据轨迹路段匹配数据得到其相映射的路段,选取与查询点qi距离最小的路段,该路段与查询点qi的距离,即历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离。所述轨迹确定单元在计算得到各个历史轨迹与所有查询点的距离和之后,比较各个历史轨迹的所述距离和,按从小到大的顺其选取前k条历史轨迹,完成轨迹查询。所述轨迹确定单元还可以将得到的k条历史轨迹相关信息发送至用户界面,由用户界面进行显示,供用户查看。

本申请实施例所提供的轨迹查询系统和对应的方法,将历史轨迹数据与道路网的路段数据匹配,得到路段与历史轨迹的映射关系。基于查询点到路段的距离而非查询点到gps历史轨迹的距离,使用空间索引进行查询,从而提高轨迹查询的准确度;且以所述空间索引根据路段数据生成,以路段数据为空间对象,相比现有技术中在以gps点组成的历史轨迹为空间对象的索引空间,数据体量更小,结构更简洁,有利于提供轨迹查询的效率。并且,本申请实施例所提供的轨迹查询系统和对应的方法,还可以对路段相映射的历史轨迹进行冗余聚类,以减少历史轨迹被重复进行放入操作的次数,减少资源浪费,提高查询效率。

参见图10,为本申请实施例提供的轨迹查询装置的结构示意图。如图10所示,所述装置包括接收器、存储器和处理器,

所述接收器,用于接收道路网的路段数据并存储于存储器中;

所述接收器,还用于接收采集的历史轨迹数据并存储于存储器中;

所述处理器,用于根据所述路段数据生成路网索引并存储于存储器中,所述路网索引为以所述路段数据为空间对象的空间索引;

所述处理器,还用于匹配所述道路网的路段数据和所述历史轨迹数据,得到轨迹路段匹配数据并存储于存储器中,所述轨迹路段数据的数据结构包含路段与历史轨迹之间的映射关系;

所述处理器,还用于确定所述待选轨迹所属的候选集c,具体用于:

对每个查询点qi,使用所述路网索引查找距离qi最近的一条或多个路段,将与所述离qi最近的一条或多条路段相映射的历史轨迹放入查询点qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹,其中,k为预设值,i取区间[1,m]中的所有自然数,m为所述查询点的个数,所述查询点为待选轨迹经过或从旁边经过的位置点,所述查询点预先给定,所述待选轨迹为与所述查询点的距离和最小的一条或多条历史轨迹;

将ci合并为所述候选集c;

所述处理器,还用于选取所述候选集c中与所述查询点的距离和最小的k条历史轨迹。

其中,所述路段数据可以存储于路段数据库中,所述历史轨迹数据可以存储于历史轨迹数据库中,所述路网索引可以存储于路网索引数据库中,所述轨迹路段匹配数据可以存储于轨迹路段匹配数据库中。

所述轨迹查询装置可以包括一个接收器,所述接收器既接收路段数据也接收历史轨迹数据;所述轨迹查询装置也可以包括两个接收器:路段数据接收器用于接收路段数据,历史轨迹数据接收器用于接收历史轨迹数据。所述接收器(或者路段数据接收器)与道路网数据服务器通信,接收道路网的路段数据。所述接收器(或者路段数据接收器)可以在轨迹查询发起时向道路网数据服务器发送数据请求,然后接收道路网数据服务器返回的道路网路段数据,或者接收道路网全部数据,从其中提取路段数据;也可以由道路网数据服务器在每次数据更新后将数据发送给所述接收器(或者路段数据接收器),由接收器(或者路段数据接收器)对已接收的路段数据进行更新。

所述接收器(或者历史轨迹数据接收器)与轨迹数据服务器通信,接收历史轨迹数据。所述接收器(或者历史轨迹数据接收器)可以在轨迹查询发起时向轨迹数据服务器发送数据请求,然后接收轨迹数据服务器返回的历史轨迹数据,也可以由轨迹数据服务器在每次数据更新后将数据发送给所述接收器(或者历史轨迹数据接收器),由接收器(或者历史轨迹数据接收器)对已接收的历史轨迹数据进行更新。

所述接收器(或者路段数据接收器)可以接收道路网中所有的路段数据。或者用户设置一定的以查询点为出发点的查询范围计算方法,所述接收器(或者路段数据接收器)在用户给定查询点后,计算出查询范围,再从道路网数据服务器请求在所述查询范围以内的路段数据,以减少数据量,提高系统处理效率。同理,所述接收器(或者历史轨迹数据接收器)可以接收所有历史轨迹数据;或者由用户设置一定的以查询点为出发点的查询范围计算方法,所述接收器(或者历史轨迹数据接收器)在用户给定查询点后,计算出查询范围,再从轨迹数据服务器请求在所述查询范围以内的历史轨迹数据,进一步减少数据量。

所述轨迹查询装置可以包括一个存储器,所述存储器中分区存储上述数据库,所述轨迹查询装置也可以包括多个存储器,分别存储上述数据库,例如,如图10中所示,存储器a存储路段数据库,存储器b存储历史轨迹数据库;存储器c存储路网索引数据库和轨迹路段匹配数据库,由于轨迹查询过程要同时使用这两类数据,因此路网索引和轨迹路段匹配数据存储于一个存储器中有便于数据的读取和计算,提高计算效率。

可选的,所述处理器用于确定候选集c,具体为:

使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

若否,则每次使用所述路网索引查找除相映射的历史轨迹已放入ci的路段之外距离qi最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹;

若是,将ci合并为所述候选集c。

可选的,所述处理器用于确定候选集c,具体为:

使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;

若否,则每次选取轨迹条数最少的子候选集cj(min),使用所述路网索引查找除相映射的历史轨迹已放入cj(min)的路段之外距离qj最近的路段,将与所述距离qi最近的路段相映射的历史轨迹放入所述子候选集cj(min),直至ci的交集中存在至少k条历史轨迹,cj(min)为qj的子候选集;

若是,将ci合并为所述候选集c。

其中,i取区间[1,m]中的所有自然数,j为在[1,m]区间的自然数,m为查询点的个数。

可选的,所述处理器还用于:根据所述轨迹路段匹配数据,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;

相应地,所述处理器用于确定候选集c,具体为:

使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

若否,则每次将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入所述子候选集ci中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入ci的路段之外,使用所述路网索引查找到的距离qi最近的路段,所述已有轨迹为当前所述子候选集ci中已有的历史轨迹;

若是,将ci合并为所述候选集c。

可选的,所述处理器还用于:根据所述轨迹路段匹配数据,计算得到同时经过r个路段的轨迹集合,将所述轨迹集合标记为冗余,其中,r大于或等于2;

相应地,所述处理器用于确定候选集c,具体为:

使用所述路网索引查找距离qi最近的第一路段,将与所述第一路段相映射的历史轨迹放入qi的子候选集ci中;

计算ci的交集,判断所述交集中是否存在至少k条历史轨迹;

若否,则每次选取轨迹条数最少的子候选集cj(min),将被选路段相映射的与已有轨迹之间标记为冗余的相同轨迹集合之外的历史轨迹,放入子候选集cj(min)中,直至ci的交集中存在至少k条历史轨迹,所述被选路段为除相映射的历史轨迹已放入cj(min)的路段之外,使用所述路网索引查找到的距离qj最近的路段,所述已有轨迹为当前所述子候选集cj(min)中已有的历史轨迹;

若是,将ci合并为所述候选集c。

其中,i取区间[1,m]中的所有自然数,j为在[1,m]区间的自然数,m为查询点的个数。

可选的,所述处理器用于确定候选集c,具体为:

使用所述路网索引查找距离qi最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条历史轨迹放入qi的子候选集ci中;

计算ci之间的交集,判断所述交集中是否存在至少k条历史轨迹;

若否,则每次计算λ=λ+δ,使用所述路网索引查找距离qj最近的一个或多个路段,将与所述距离qi最近的一个或多个路段相映射的总共λ条历史轨迹放入qi的子候选集ci中,直至ci的交集中存在至少k条历史轨迹;

若是,将ci合并为所述候选集c。

可选的,所述处理器用于选取所述候选集c中与查询点的距离和最小的k条历史轨迹,具体为:

计算所述候选集c中历史轨迹tj与查询点之间的距离其中,q为查询点的集合,dist(qi,tj)为历史轨迹tj所经过的距离查询点qi最近的路段与查询点qi的距离;

按距离dist(q,tj)从小到大的顺序选取前k条历史轨迹。

其中,j取区间[1,n]中的所有自然数,n为候选集c中历史轨迹的条数。

所述存储器还用于存储操作系统和程序指令。或者存储器分为存储前述各个数据库的存储器以及存储操作系统和程序指令的存储器,如图10中的存储器d。

具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的轨迹查询方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于方法和装置实施例而言,由于其基本相似于系统实施例,所以描述的比较简单,相关之处参见系统实施例中的说明即可。

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