城市地图索引方法
技术领域
本发明涉及一种方法,尤其是一种城市地图索引方法,属于城市计算的技术领域。
背景技术
近年来,随着感知技术和计算能力的发展,各种基于位置信息的大数据在城市中悄然而生,如交通流、人群移动轨迹、气象数据和社交媒体等。如果使用得当,这些大数据不仅可以及时反映城市中存在的问题,还能用来解决一些问题,如环境恶化、交通拥堵、能耗增加、规划落后等。城市计算便是指用城市中的大数据来解决城市本身所面临的挑战,通过对多种数据结构的聚合、分析和挖掘,来提取知识和智能,致力于提高人们的生活品质、好的环境和促进城市运转效率。城市计算帮助我们理解各种城市现象的本质,甚至预测城市未来的发展,如房价涨跌等。
城市车辆数据是城市大数据的主要来源。比如在国内火热的嘀嘀打车和快的打车,都会将每一个出租车的GPS信息给记录下来。这样的数据能够为城市建设提供很多的信息,比如需要在什么位置新建设一条公路来减缓车流量,以及需要规划一条新的公交路线来降低出租车的客流量。要进行城市计算,对数据进行分析和挖掘的前提是需要对与位置有关的信息做一个好的存储。由于城市地图是一个连续的二维空间,很难对这样一个连续的空间做直接的数据处理。人们通常会把城市分解为几个区域,然后基于这样的分解对数据做分类和存储。
一种简单的分解方式是直接使用GPS采样得到的经纬度值来标记数据的位置。这样一种分解方式不会产生任何的信息丢失。然后从GPS设备得到的经纬度值是高精度的,并且是非常敏感的。这就意味着,即使采样位置没有变化,GPS的读数也会有细微的不同。这样一种不同,会破坏收集到数据的关联性。比如对于同一位置的不同采样信息会被认为是不同位置的。
现在主要有两种数据分解方法:一个十分常用并且也非常简单的方法是将城市分割成一个个小网格。这些小网格通常是正方形的,大小也是固定。这种分解方式的优势是可以易于实现,并且也非常直观。主要的缺点是,网格的大小与数据与数据集无关。比如会产生很多感知数据的闹市区与几乎不产生数据的沙漠是被同等对待的,收集到数据的粒度也是一样的。所以,如果使用相对比较小的网格,要想覆盖整个城市区域,需要维护非常多的网格,而这样细粒度的区分对于活动相对比较少的区域来说是不必要的。相对比较大的网格对于活动很多的区域来说,粒度显得太小了。另外一个缺点是很多道路信息会被分在同一个网格里面。对于想要进行路径查询应用来说,就没有办法获得一个精确的路径。
另外一种方法是将GPS的坐标映射到一个电子地图上面。一个电子地图通常被定义为一个图G(N,E),其中,N是指节点的集合,E是指边的集合。城市中的一条道路通常被表示成一条边,而道路与道路的交汇点便被表示成一个节点。如果一条道路非常长,也可以用几条边的连接起来表示它。使用电子地图显然会使得数据更加精确,也相对容易管理。可是这样的电子地图同时很难直接获得,另外一个缺点是也会丢失一些关键信息,比如路的宽度,车道的数目,每一条车道的方向等。要获得这些信息是非常困难的。但有了这样一个电子地图,从计算角度讲,给定一个GPS数据,想要找到它属于哪一条边或者节点是会导致十分高的计算复杂度。
在城市道路网中,查询两点之间的最短通行路径是十分常见的。如果简单地将城市分隔成小格,会导致精确度下降的问题。如果使用电子地图,那么要计算最短路径又是具有较高计算复杂度的问题。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种城市地图索引方法,其能够高效地存储和更新车辆GPS信息,并能够提供实时的最短通行路径的查询。
按照本发明提供的技术方案,一种城市地图索引方法,所述索引方法包括如下步骤:
a、将GPS数据进行映射得到城市的电子地图G(N,E),其中,节点集N为经纬度坐标值,E是边的合集,代表连接两个节点的一条道路,对于每条道路,计算通过这条道路上所有车辆的平均用时来表示道路的权值;
b、对于上述城市电子地图G中,当其中一个节点附近所记录到的GPS采样点大于设定阈值时,则将这个节点设定为标志物;
c、将城市电子地图G中所有的节点都划分到距离最近的一个标志物所在的群组中,以得到以标志物为群组中心的若干标志物群组;在进行标志物群组生成中,记录每一个标志物群组的群组中心与其他标志物群组内节点之间的最远距离;
d、根据步骤a中的权值,计算任意两个标志物之间的通行时间,并用距离矩阵T来存储所得到的上述通行时间;
e、对于查询节点li与节点lj之间的最短通行时间,则查找节点li、节点lj分别所在的标志物群组Ci、标志物群组Cj,则节点li与节点lj之间的最短通行时间t满足
|t-Tij|≤Ci.err+Cj.err
其中,Tij为标志物群组Ci、标志物群组Cj之间的通行时间,Ci.err标识标志物群组Ci与其他标志物群组内节点之间的最远距离,Cj.err标识标志物群组Cj与其他标志物群组内节点之间的最远距离。
本发明的优点:将城市车辆的GPS数据映射得到城市电子地图G,通过对城市电子地图G中的标志物划分为标志物并生成标志物群组,以将任意两个位置之间的最短距离转化为标志物群组内标志物之间的通行时间来,能够高效地存储和更新车辆GPS信息,并能够提供实时的最短通行路径的查询。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
为了能够高效地存储和更新车辆GPS信息,并能够提供实时的最短通行路径的查询,本发明的索引方法包括如下步骤:
a、将GPS数据进行映射得到城市的电子地图G(N,E),其中,节点集N为经纬度坐标值,E是边的合集,代表连接两个节点的一条道路,对于每条道路,计算通过这条道路上所有车辆的平均用时来表示道路的权值;
在得到城市电子地图G(N,E)后,可以把查询两个位置之间最短用时转化为在城市电子地图G(N,E)中搜寻一条最短路径。权值表示所有车辆通过所在道路上的平均用时,因此得到的城市电子地图G(N,E)为一个有权值的有向图,权值的大小可以通过交通流数据统计得到。
b、对于上述城市电子地图G中,当其中一个节点附近所记录到的GPS采样点大于设定阈值时,则将这个节点设定为标志物;
为了能在有权值的有向图中计算最短路径并降低复杂度,需要对城市电子地图G进行聚类,一般地设定阈值为100米,在具体实施时,阈值越大,计算效率就越高,查询的误差也会越大,标志物为城市电子地图中的热门节点,或者说是车流量比较高的地理位置。
具体地,首先统计所有节点周围的GPS数据的数目,然后提取结果最高的节点作为标志物;再将已经被标志物提取到的GPS数据从统计结果中减去,并继续对剩余节点提取标志物,直至将城市电子地图G中的所有标志物提取得到。
c、将城市电子地图G中所有的节点都划分到距离最近的一个标志物所在的群组中,以得到以标志物为群组中心的若干标志物群组;在进行标志物群组生成中,记录每一个标志物群组的群组中心与其他标志物群组内节点之间的最远距离;
在提取完标志物之后,对于每一个标志物生成一个群组,即得到标志物群组。采取这样生成标志物群组的原因是:在估计通行时间时,对于常见的查询,能够更加准确;也即是牺牲冷门查询的准确率,来提高热门查询的准确性。
直观上讲,将城市电子地图G中所有的节点都划分到距离最近的一个标志物群组中去。在进行标志物群组生成的过程中,同时也记录每一个群组中心距离其他群内节点的最远距离,并将其标记为Ck.err。也即是标志物群组的最大测量误差。
d、根据步骤a中的权值,计算任意两个标志物之间的通行时间,并用距离矩阵T来存储所得到的上述通行时间;
在对城市电子地图G进行分类之后,便可以较快地估算出城市电子地图G中任意两点之间的通行时间。在具体实施时,由于步骤a中有每条道路的权值,通过计算取平均值的方法,能够预先计算出任意两个标志物之间的通行时间,并将结果存储在一个距离矩阵T中。
e、对于查询节点li与节点lj之间的最短通行时间,则查找节点li、节点lj分别所在的标志物群组Ci、标志物群组Cj,则节点li与节点lj之间的最短通行时间t满足
|t-Tij|≤Ci.err+Cj.err
其中,Tij为标志物群组Ci、标志物群组Cj之间的通行时间,Ci.err标识标志物群组Ci与其他标志物群组内节点之间的最远距离,Cj.err标识标志物群组Cj与其他标志物群组内节点之间的最远距离。
具体地,如果收到一个查询最短通行距离的请求,比如说要查找节点li与节点lj之间的最短通行时间,需要首先查找到li和lj所在的标志物群组Ci和标志物群组Cj。那么要计算的节点li与节点lj之间的通行时间t满足以下不等式:
|t-Tij|≤Ci.err+Cj.err.
直观的想,就是用标志物群组之间的通行时间来估计任意两节点之间的通行时间。采用所述的通行时间估算方法,可以大大减少获得两个位置之间通行距离的计算复杂度。
在具体实施时,生成的标志物越多,划分的标志物群组越多,那么单个标志物群组的测量误差Ck.err就越小,从而估算出的结果的误差也就越小。然而,随着划分的群组变多,要维护的通行时间的距离矩阵T也就越大,由于估算通行时间都与设定的群组数目直接相关,因此,不但会带来存储空间的加大,也会使得计算时间增长。
然而每一个标志物群组是一个不规则的形状,如何判断需要查询的一个位置到底处于哪一个群组中间呢?实施时,可以将包围每一个形状的所有直线集合表示出来,然后判断每一个点与直线的位置关系,进而判断该点是否在一个多面形内。由于查询标志物群组的频率十分频繁,同时要给出实时响应,这样的计算复杂度无疑是过大的。
为了解决上述问题,将城市电子地图G的区域划分为一个个小的网格,然后计算每一个小网格对应到哪一个群组中去。由于一个小网格由两条经度线以及两条纬度线包围而成,在获得一个位置的经纬度值之后,就可以在O(1)时间内判断出,这个位置是属于哪一个网格。并且,由于从网格到群组的划分是非实时进行的,可以将网格划分得较为细致。一般地,网格的大小一般是100米乘100米。
本发明将城市车辆的GPS数据映射得到城市电子地图G,通过对城市电子地图G中的标志物划分为标志物并生成标志物群组,以将任意两个位置之间的最短距离转化为标志物群组内标志物之间的通行时间来,能够高效地存储和更新车辆GPS信息,并能够提供实时的最短通行路径的查询。