一种公交站点关联检测方法及装置转让专利

申请号 : CN201310364598.8

文献号 : CN104424191B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龙永霞

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本发明公开了一种公交站点关联检测方法及装置,该方法包括:对于任意站点Pi,在给定线段序列l中确定其关联线段L(Pi);对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则给定线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;如果满足,则确定所有关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。通过在“最短距离法”的基础上,进一步增加了“一致性条件”的判断,从而实现对站点和线段的错误关联的自动检测,有效地降低了人力成本消耗。

权利要求 :

1.一种公交站点关联检测方法,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,其特征在于,该方法包括:对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述线段序列l中与Pi的距离最短的线段;

对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述给定线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、

3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;

如果满足所述一致性条件,则确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。

2.根据权利要求1所述的方法,其特征在于,该方法还包括:对Pi与L(Pi)的关联关系中存在的错误进行定位,所述定位的方法包括:从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件;

确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及

确定抽取出的异常线段与其对应站点的关联关系错误。

3.根据权利要求2所述的方法,其特征在于,所述从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,包括:步骤a,将L(P1)添加至l’(p)中作为l’(p)中当前最后一条线段,并且令L(Pi)中的i=2;

步骤b,判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中作为l’(p)中当前最后一条线段;否则将L(Pi)确定为异常线段;令i=i+1,重复本步骤,直到i=n,所得到的l’(p)即为l(p)抽取异常线段后的结果。

4.根据权利要求2所述的方法,其特征在于,该方法还包括:对Pi与L(Pi)的关联关系中存在的错误进行修正,所述修正的方法包括:对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;

判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。

5.根据权利要求4所述的方法,其特征在于,该方法还包括:

如果更新后的L(Pi)仍不能使序列l(p)满足所述一致性条件,则依据所述线段序列l中的线段与Pi的距离对L(Pi)进行更新,直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。

6.根据权利要求4或5所述的方法,其特征在于,该方法还包括:

判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正。

7.一种公交站点关联检测装置,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,其特征在于,该装置包括:初始关联关系确定单元,用于对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述给定线段序列l中与Pi的距离最短的线段;

检测单元,用于对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;

关联关系判断单元,用于在所述检测单元判断出满足所述一致性条件的情况下,确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。

8.根据权利要求7所述的装置,其特征在于,该装置还包括:

错误定位单元,用于对Pi与L(Pi)的关联关系中存在的错误进行定位,所述错误定位单元包括:异常线段抽取子单元,用于从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件;

错误定位子单元,用于确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及确定抽取出的异常线段与其对应站点的关联关系错误。

9.根据权利要求8所述的装置,其特征在于,所述异常线段抽取子单元包括:初始化模块,用于将L(P1)添加至l’(p)中作为l’(p)中当前最后一条线段,并且令L(Pi)中的i=2;

遍历处理模块,用于对于i=2、3…n,遍历执行以下处理:判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中作为l’(p)中当前最后一条线段;否则将L(Pi)确定为异常线段,所得到的l’(p)即为l(p)抽取异常线段后的结果。

10.根据权利要求8所述的装置,其特征在于,该装置还包括:

错误修正单元,用于对Pi与L(Pi)的关联关系中存在的错误进行修正,所述错误修正单元具体用于:对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;

判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。

11.根据权利要求10所述的装置,其特征在于,所述错误修正单元还用于:在更新后的L(Pi)不能使序列l(p)满足所述一致性条件的情况下,依据所述线段序列l中的线段与Pi的距离对L(Pi)进行更新,直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。

12.根据权利要求10或11所述的装置,其特征在于,所述错误修正单元还用于:判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正。

说明书 :

一种公交站点关联检测方法及装置

技术领域

[0001] 本发明涉及地理信息技术领域,更具体地说,涉及一种公交站点关联检测方法及装置。

背景技术

[0002] 目前很多网站提供电子地图服务,可以根据用户的需求,为用户提供各种形式的地图信息。公交信息服务是电子地图服务的一个重要的应用分支。目前,很多电子地图产品都提供公交信息查询功能,例如,用户输入起点和目的地,可以很方便地查询到往返两地之间的公交乘车方式、预估时间等等。
[0003] 对于电子地图产品而言,能够将公交站点和公交线路准确地标识在地图的相应位置上,是提供高质量查询结果的前提。这就需要电子地图服务提供方自行对公交的站点位置信息和线路轨迹信息进行采集。其中,采集到的站点信息以点序列的形式表示:p={P1,P2,P3…Pn},n为站点的总数;轨迹信息则以线段序列的形式表示:l={L1,L2,L3…Lm},m为线段的总数。然后通过“最短距离法”,分别将P1,P2,P3…关联到l中的线段上,实现公交站点与公交轨迹相对位置关系的自动构建。
[0004] “最短距离法”是一种在理想条件下的公交站点关联方法,然而在实际应用中,由于采集的站点或线段位置不准确,或者线路轨迹复杂等因素,导致关联的结果往往并不准确,例如出现“将上行站点关联到下行线路”等情况,这就需要人工对关联结果做进一步的校验,造成人力成本的消耗。

发明内容

[0005] 本发明的目的是提供一种公交站点关联检测方法及装置,用于对站点和线段的关联是否正确进行自动检测。技术方案如下:
[0006] 本发明提供了一种公交站点关联检测方法,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,该方法包括:
[0007] 对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述线段序列l中与Pi的距离最短的线段;
[0008] 对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述给定线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;
[0009] 如果满足所述一致性条件,则确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。
[0010] 优选地,该方法还包括:对Pi与L(Pi)的关联关系中存在的错误进行定位,所述定位的方法包括:
[0011] 从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件;
[0012] 确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及
[0013] 确定抽取出的异常线段与其对应站点的关联关系错误。
[0014] 优选地,所述从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,包括:
[0015] 步骤a,将L(P1)添加至序列l’(p)中,并且令i=2;
[0016] 步骤b,判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段;令i=i+1,重复本步骤,直到i=n,所得到的l’(p)即为l(p)抽取异常线段后的结果。
[0017] 优选地,该方法还包括:对Pi与L(Pi)的关联关系中存在的错误进行修正,所述修正的方法包括:
[0018] 对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;
[0019] 判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。
[0020] 优选地,该方法还包括:
[0021] 如果更新后的L(Pi)仍不能使序列l(p)满足所述一致性条件,则依次将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第三短的线段、在所述线段序列l中与Pi的距离第四短的线段……直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。
[0022] 优选地,该方法还包括:
[0023] 判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正。
[0024] 本发明还提供了一种公交站点关联检测装置,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,该装置包括:
[0025] 初始关联关系确定单元,用于对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述给定线段序列l中与Pi的距离最短的线段;
[0026] 检测单元,用于对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;
[0027] 关联关系判断单元,用于在所述检测单元判断出满足所述一致性条件的情况下,确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。
[0028] 优选地,该装置还包括:
[0029] 错误定位单元,用于对Pi与L(Pi)的关联关系中存在的错误进行定位,所述错误定位单元包括:
[0030] 异常线段抽取子单元,用于从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件;
[0031] 错误定位子单元,用于确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及确定抽取出的异常线段与其对应站点的关联关系错误。
[0032] 优选地,所述异常线段抽取子单元包括:
[0033] 初始化模块,用于将L(P1)添加至序列l’(p)中,并且令i=2;
[0034] 遍历处理模块,用于对于i=2、3…n,遍历执行以下处理:判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段,所得到的l’(p)即为l(p)抽取异常线段后的结果。
[0035] 优选地,该装置还包括:
[0036] 错误修正单元,用于对Pi与L(Pi)的关联关系中存在的错误进行修正,所述错误修正单元具体用于:
[0037] 对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;
[0038] 判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。
[0039] 优选地,所述错误修正单元还用于:
[0040] 在更新后的L(Pi)不能使序列l(p)满足所述一致性条件的情况下,依次将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第三短的线段、在所述线段序列l中与Pi的距离第四短的线段……直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。
[0041] 优选地,所述错误修正单元还用于:
[0042] 判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正。
[0043] 本发明实施例提供的技术方案,在“最短距离法”的基础上,进一步增加了“一致性条件”的判断,从而实现对站点和线段的错误关联的自动检测,有效地降低了人力成本消耗。在本发明的改进方案中,确定存在错误关联的站点和线段后,还可以根据上述的“一致性条件”进行一定程度上的自动纠错,从而进一步降低人力成本,提高校验效率。

附图说明

[0044] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0045] 图1为依据现有关联方法得到的站点和线段的关联关系示意图;
[0046] 图2为依据图1得到的公交线路示意图;
[0047] 图3为本发明实施例提供的一种公交站点关联检测方法的一种流程图;
[0048] 图4为本发明实施例提供的一种公交站点关联检测方法的另一种流程图;
[0049] 图5为根据图4所提供的方法得到的公交线路中站点排序示意图;
[0050] 图6为对图5进行修正后得到的公交线路中站点排序示意图;
[0051] 图7为依据本发明实施例提供的公交站点关联检测方法得到的站点和线段的关联关系示意图;
[0052] 图8为依据图7得到的公交线路示意图;
[0053] 图9为本发明实施例提供的一种公交站点关联检测装置的一种结构示意图;
[0054] 图10为本发明实施例提供的一种公交站点关联检测装置的另一种结构示意图;
[0055] 图11为本发明实施例提供的一种公交站点关联检测装置的另一种结构示意图。

具体实施方式

[0056] 现有“最短距离法”关联站点和线段是指从所有线段中获取到与任意一个站点距离最短的线段,将该任意一个站点和距离最短的线段建立对应关系,如附图1所示,该附图1示出了站点和线段的一一对应的关联关系,括号内的数字表明线段在所有线段中的排列号。当公交线路经过某一线段时,该线段的停靠站点即为与其关联的站点,如在经过线段10时,关联的站点为:上地南路。
[0057] 然而在实际应用“最短距离法”关联站点和线段时,由于采集的站点或线路位置不准确,使到站顺序靠后的站点关联的线段位于到站顺序靠前的站点关联的线段的前面,如图1中站点15和站点16各自关联的线段25和线段22比站点14关联的线段44靠前,此情况与实际公交线路设计所要求的“到站顺序越靠后的站点所关联的线段不会出现在到站顺序越靠前的站点所关联的线段前面”条件不符,最终导致形成如图2所示错乱的公交线路。
[0058] 针对现有“最短距离法”关联站点和线段存在的问题,本发明实施例提供了一种公交站点关联检测方法,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,可以包括以下步骤:
[0059] 对于任意站点Pi,在所述线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述线段序列l中与Pi的距离最短的线段;
[0060] 对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l;
[0061] 如果满足所述一致性条件,则确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。
[0062] 该方法在“最短距离法”的基础上,进一步增加了“一致性条件”的判断,从而实现对站点和线段的错误关联的自动检测,有效地降低了人力成本消耗。在本发明的改进方案中,确定存在错误关联的站点和线段后,还可以根据上述的“一致性条件”进行一定程度上的自动纠错,从而进一步降低人力成本,提高校验效率。
[0063] 为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
[0064] 请参阅图3,其示出了本发明实施例提供的一种公交站点关联检测方法的流程图,该方法用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测,其中,给定站点序列是某一条公交线路上所有站点的有序集合,站点是车辆停靠,供乘客上下车及候车的地点,给定线段序列是某一条公交线路上所有线段的有序结合,线段是是将公交线路划分后得到的部分公交线路。
[0065] 本发明实施例提供的公交站点关联检测方法可以包括以下步骤:
[0066] 步骤101:对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述给定线段序列l中与Pi的距离最短的线段。
[0067] 其中,站点Pi的关联线段L(Pi)是指线段序列中与站点Pi具有对应关系的一条线段,记为L(Pi)。该关联线段L(Pi)的初始值为在所述线段序列l中与站点Pi的距离最短的线段。
[0068] 在获取站点Pi到线段的距离时,首先从站点Pi向线段所在直线做垂线,当垂线和线段相交形成垂足时,将站点Pi和垂足之间的距离作为站点Pi到线段的距离;当垂线和线段未相交时,计算站点Pi到线段的两个端点的距离,将取值较小的距离作为站点Pi到线段的距离。
[0069] 步骤102:对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l;如果是,执行步骤103,如果否,执行步骤104。
[0070] 在本实施例中,“L(Pi)不在L(Pj)之后”包括两种情况:L(Pi)在L(Pj)之前,或者L(Pi)和L(Pj)重合。具体而言:
[0071] L(Pi)对应L1,L2,L3…Lm的其中之一,设其为Lx,x取值在1和m之间;
[0072] L(Pj)同样对应L1,L2,L3…Lm的其中之一,设其为Ly,y取值在1和m之间;
[0073] 在i<j的前提下,如果有x≤y,则认为L(Pi)不在L(Pj)之后,在序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中,如果对于任选的i和j均满足上述条件,则认为序列l(p)满足一致性条件。
[0074] 步骤103:确定所有Pi与L(Pi)的关联关系正确。
[0075] 当所有站点Pi对应的关联线段L(Pi)组成的序列l(p)={L(P1),L(P2),L(P3),…,L(Pn)}满足一致性条件时,表明所有Pi与L(Pi)的关联关系正确,所有Pi各自对应到距离最短的线段L(Pi)上,形成一条正确的公交线路。
[0076] 步骤104:判断Pi与L(Pi)的关联关系中存在错误。
[0077] 当所有站点Pi对应的线段组成的序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}不满足一致性条件时,表明Pi与L(Pi)的关联关系中存在错误。
[0078] 从图1所示的流程图可以看出,本发明实施例提供的公交站点关联检测方法可以通过判断站点Pi对应的关联线段L(Pi)组成的序列l(p)={L(P1),L(P2),L(P3),…,L(Pn)}是否满足一致性条件来自动检测站点和线段的错误关联。
[0079] 请参阅图4所示,其以图3为基础示出了本发明实施例提供的一种公交站点关联检测方法的另一种流程图,阐述了判断出Pi与L(Pi)的关联关系中存在错误后,如何对Pi与L(Pi)的关联关系中存在的错误进行定位的过程。图4所示的公交站点关联检测方法可以包括以下步骤:
[0080] 步骤201至步骤204,与步骤101至步骤104相同。
[0081] 步骤205:从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件。
[0082] 其中,异常线段是指在序列l(p)中的某一条或多条线段,该线段会导致l(p)无法满足一致性条件。
[0083] 在本实施例中,从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,可以包括:步骤a,将L(P1)添加至序列l’(p)中,并且令i=2;步骤b,判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段;令i=i+1,重复本步骤,直到i=n,所得到的l’(p)即为l(p)抽取异常线段后的结果。
[0084] 以具体实施例说明上述过程,对于给定的站点序列p={P1,P2,P3…Pn}以及根据“最短距离法”所确定的线段序列l(p)={L(P1),L(P2),L(P3)…L(Pn)},通过以下步骤进行处理:
[0085] 步骤1,将站点P1关联的线段L(P1)添加到序列l’(p)中,此时L(P1)为l’(p)中当前最后一条线段;
[0086] 步骤2,获取站点P2关联的线段L(P2),将L(P2)添加到序列l’(p)中,判断L(P2)和L(P1)是否满足一致性条件,即L(P2)在给定线段序列l中的下标是否大于等于L(P1)在给定线段序列l中的下标,如果是,则L(P2)和L(P1)满足一致性条件,将L(P2)添加到序列l’(p)中,此时L(P2)为l’(p)中当前最后一条线段;否则将L(P2)确定为异常线段,l’(p)中当前最后一条线段仍为L(P1);
[0087] 对L(P3)、L(P4)……L(Pn)遍历执行与步骤2类似的处理:判断L(Pi)是否与与l’(p)中当前最后一条线段满足一致性条件,如果满足则将L(Pi)添加到序列l’(p)中,并且确定L(Pi)为l’(p)中当前最后一条线段,如果不满足则将L(Pi)确定为异常线段,不添加至序列l’(p)中。遍历完成后,得到的l’(p)即为l(p)抽取出异常线段后的结果。
[0088] 可以理解的是,抽取异常线段还可以其他具体的处理方案,例如还可以采用反向处理的方式:本发明实施例抽取异常线段的过程还可以首先将L(Pn)添加至序列l’(p)中,并且令i=n-1;其次判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段;令i=i-1,重复本步骤,直到i=1。当然另外,在抽取异常线段时,还可以同时对L(Pi-1)、L(Pi)和L(Pi+1)进行判断以确定出异常线段。总之,上述抽取异常线段的方案仅用于示意性说明,不应理解为对本发明的限制。
[0089] 下面结合附图,对抽取异常线段的方案进行说明,例如给定站点序列p={X,Y,Z,A,B,C,D},将该给定站点序列p中的每个站点与给定线段序列l中的线段按照“最短距离法”进行关联后,按照l={L1,L2,L3…Lm}的顺序进行排序得到的公交线路中站点排序,结果如图5所示。
[0090] 从图5可以看出,按照站点序列的顺序,站点B应该排列在站点A和站点C之间,但是将站点用“最短距离法”分别关联到线段之后,顺序却出现了问题:经过站点和线段的关联后站点B、站点Y和站点Z形成环路,即站点B在关联后排列在站点Y和站点Z之间,说明站点B和其关联的线段的关联关系存在错误,站点B对应的线段为异常线段。在抽取出该异常线段之后,剩余的关联线段组成的序列l’(p)满足所述一致性条件。
[0091] 步骤206:确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及确定抽取出的异常线段与其对应站点的关联关系错误。
[0092] 当抽取出该异常线段之后剩余的关联线段组成的序列l’(p)满足所述一致性条件时,剩余序列l’(p)中的线段与其对应站点的关联关系正确,并且同时可以确定抽取出的异常线段与其对应站点的关联关系错误。
[0093] 当确定抽取出的异常线段L(Pi)与其对应站点Pi的关联关系错误,本发明实施例提供的公交站点关联检测方法还可以进一步对Pi与L(Pi)的关联关系中存在的错误进行修正,实现自动修正。
[0094] 所述修正的方法可以包括:对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。
[0095] 其中距离第二短的线段是:站点Pi到给定线段序列中所有线段距离,按照数值由小到大排序后,位于第二位的数值所对应的线段。站点Pi到线段的距离可以参阅前面实施例中的说明,对此本实施例不在加以阐述。
[0096] 如果更新后的L(Pi)能使序列l(p)满足所述一致性条件,则确定该Pi与更新后的L(Pi)关联关系正确。例如将图5所示的站点B关联的线段更新为到站点B距离第二短的线段后,得到图6所示的公交线路的站点排序,则说明更新后的L(Pi)能使序列l(p)满足所述一致性条件,并且站点B与更新后的线段关联关系正确。
[0097] 在本发明的另一种实施方式中,如果更新后的L(Pi)不能使序列l(p)满足所述一致性条件,还可以进一步依次将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第三短的线段、在所述线段序列l中与Pi的距离第四短的线段……直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。
[0098] 有些情况下,站点或线段位置数据与实际偏差较大,这种情况可能导致难以自动进行纠错,因此需要对纠错的范围进行一定程度的控制,在本发明的另一种实施方式中,在对Pi与L(Pi)的关联关系中存在的错误进行修正时,可以判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正,后续可以由操作人员手动进行修正。其中阈值根据不同应用场景可以设置不同的取值,如设置为50米。
[0099] 为了便于本领域技术人员更好地了解本发明实施例提供的公交站点关联检测方法,以城铁上地站至城铁上地站这一环路公交线路为例,将其与现有关联方式得到的公交线路进行对比说明。
[0100] 通过现有关联方式得到的公交线路中站点和线段的关联关系如前述附图1所示,括号内的数字表明线段在给定线段序列中的序号,按照本实施例所定义的“一致性条件”,站点15对应的线段下标应该大于等于比站点14的线段下标大、站点16对应的线段下标应该大于等于站点15的线段下标,而图1中所示结果并不满足这个条件,因此判断图1所示的关联关系存在错误。
[0101] 进一步,可以确定当前的异常线段分别为:站点15的关联线段(25)、站点16的关联线段(22)。
[0102] 通过对站点15和16分别计算“距离第二短”的线段,得到更新后的结果:站点15的关联线段(46)、站点16的关联线段(50),判断该结果满足一致性条件,因此完成自动纠错,最终的关联结果如图7所示,映射到地图上后的结果如图8所示,可见,关联错误的情况已经完全消除。
[0103] 与上述方法实施例相对应,本发明实施例还提供一种公交站点关联检测装置,用于对给定站点序列p={P1,P2,P3…Pn}以及给定线段序列l={L1,L2,L3…Lm}的关联关系进行检测。该公交站点关联检测装置的结构示意图可以参阅图9所示,可以包括:初始关联关系确定单元11、检测单元12和关联关系判断单元13,其中:
[0104] 初始关联关系确定单元11,用于对于任意站点Pi,在所述给定线段序列l中确定其关联线段L(Pi),所述L(Pi)的初始值为:在所述给定线段序列l中与Pi的距离最短的线段。
[0105] 其中,站点Pi的关联线段L(Pi)是指线段序列中与站点Pi具有对应关系的一条线段,记为L(Pi)。该关联线段L(Pi)的初始值为在所述线段序列l中与站点Pi的距离最短的线段。
[0106] 在获取站点Pi到线段的距离时,首先从站点Pi向线段所在直线做垂线,当垂线和线段相交形成垂足时,将站点Pi和垂足之间的距离作为站点Pi到线段的距离;当垂线和线段未相交时,计算站点Pi到线段的两个端点的距离,将取值较小的距离作为站点Pi到线段的距离。
[0107] 检测单元12,用于对序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}的顺序进行检测,判断是否满足一致性条件:对于任意i和j,如果i<j,则所述线段序列l中,L(Pi)不在L(Pj)之后;其中i=1、2、3…n,j=1、2、3…n,L(Pi)∈l,L(Pj)∈l。
[0108] 在本实施例中,“L(Pi)不在L(Pj)之后”包括两种情况:L(Pi)在L(Pj)之前,或者L(Pi)和L(Pj)重合。具体而言:
[0109] L(Pi)对应L1,L2,L3…Lm的其中之一,设其为Lx,x取值在1和m之间;
[0110] L(Pj)同样对应L1,L2,L3…Lm的其中之一,设其为Ly,y取值在1和m之间;
[0111] 在i<j的前提下,如果有x≤y,则认为L(Pi)不在L(Pj)之后,在序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中,如果对于任选的i和j均满足上述条件,则认为序列l(p)满足一致性条件。
[0112] 关联关系判断单元13,用于在所述检测单元判断出满足所述一致性条件的情况下,确定所有Pi与L(Pi)的关联关系正确,否则判断Pi与L(Pi)的关联关系中存在错误。
[0113] 当序列l(p)满足一致性条件时,表明所有Pi与L(Pi)的关联关系正确,所有Pi各自对应到距离最短的线段L(Pi)上,形成一条正确的公交线路。当所有站点Pi对应的线段组成的序列l(p)不满足一致性条件时,表明Pi与L(Pi)的关联关系中存在错误。
[0114] 进一步,本发明实施例提供的公交站点关联检测装置中还可以包括:错误定位单元14,如图10所示。其中图10是以图9为基础,本发明实施例提供的公交站点关联检测装置的另一种结构示意图。
[0115] 错误定位单元14,用于对Pi与L(Pi)的关联关系中存在的错误进行定位,所述错误定位单元14包括:异常线段抽取子单元和错误定位子单元。
[0116] 异常线段抽取子单元,用于从序列l(p)={L(P1),L(P2),L(P3)…L(Pn)}中抽取出异常线段,使得剩余的序列l’(p)满足所述一致性条件。
[0117] 错误定位子单元,用于确定剩余序列l’(p)中的线段与其对应站点的关联关系正确;以及确定抽取出的异常线段与其对应站点的关联关系错误。
[0118] 在本发明实施例中,异常线段抽取子单元包括:初始化模块和遍历处理模块。其中,
[0119] 初始化模块,用于将L(P1)添加至序列l’(p)中,并且令i=2;
[0120] 遍历处理模块,用于对于i=2、3…n,遍历执行以下处理:判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段,所得到的l’(p)即为l(p)抽取异常线段后的结果。其中,异常线段是指在序列l(p)中的某一条或多条线段,该线段会导致l(p)无法满足一致性条件。
[0121] 需要说明的是:本发明实施例中初始化模块也可以将L(Pn)添加至序列l’(p)中,并且令i=n-1;再由遍历处理模块判断L(Pi)与l’(p)中当前最后一条线段是否满足所述一致性条件,如果是,则将L(Pi)添加至l’(p)中;否则将L(Pi)确定为异常线段;令i=i-1,重复本步骤,直到i=1。当然异常线段抽取子单元还可以同时对L(Pi-1)、L(Pi)和L(Pi+1)进行判断以确定出异常线段。
[0122] 在上述所有装置实施例中,本发明实施例提供的公交站点关联检测装置还可以进一步包括:错误修正单元15,如图11所示。其中图11是以图10为基础,本发明实施例提供的公交站点关联检测装置的再一种结构示意图。错误修正单元15用于对Pi与L(Pi)的关联关系中存在的错误进行修正。
[0123] 所述错误修正单元15具体用于:对于存在关联错误的Pi与L(Pi),将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第二短的线段;判断更新后的L(Pi)是否能使序列l(p)满足所述一致性条件,如果是,则确定该Pi与更新后的L(Pi)关联关系正确。
[0124] 进一步,错误修正单元15还用于:在更新后的L(Pi)不能使序列l(p)满足所述一致性条件的情况下,依次将L(Pi)的值更新为:在所述线段序列l中与Pi的距离第三短的线段、在所述线段序列l中与Pi的距离第四短的线段……直到最终更新的L(Pi)能使序列l(p)满足所述一致性条件,确定该Pi与最终更新的L(Pi)关联关系正确。
[0125] 当然错误修正单元15还可以用于:判断更新后的L(Pi)与Pi的距离是否超过预设的阈值,如果是,则放弃对Pi与L(Pi)的关联关系错误进行修正。
[0126] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0127] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0128] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0129] 以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。