判断不同的gps是否随同一辆车移动的方法_3

文档序号:8259817阅读:来源:国知局
移,行驶轨迹line B的点的位移)时,贝Ij判断判断GPSl与GPS2在同一辆车上的结论错误。
[0037]本实施例中,当判断GPSl与GPS2在同一辆车上时,还可以进一步包括:I1.判断结果的检验;判断各个重合段的各个点的用时之和是否大于等于V% *min(行驶轨迹lineA的点的用时,行驶轨迹line B的点的用时),其中,V大于等于75 ;若各个重合段的各个点的用时之和大于等于*min(行驶轨迹IineA的点的用时,行驶轨迹line B的点的用时)时,则判断判断GPSl与GPS2在同一辆车上的结论正确;若各个重合段的各个点的用时之和小于U% *min(行驶轨迹line A的点的用时,行驶轨迹line B的点的用时)时,贝Ij判断判断GPSl与GPS2在同一辆车上的结论错误。
[0038]实施例二
[0039]本实施例中,判断两个GPS是否在同一辆车上的算法大体上可以分为三个主要过程:重合段的判断、重合段的合并、重合段的校验,具体方案如下:
[0040]一、重合段的判断步骤:
[0041]1、获取两个GPS的移动轨迹linel,line2上采集到的各个点(点按照时间升序排列)的信息,包括时间、经玮度、车辆标识即车牌号等,以及轨迹上点的总数。
[0042]2、判断两条轨迹上点的总个数是否都大于等于2,若不满足此条件,则无需对这两条轨迹进行线路匹配,在满足条件的情况下,判断两条轨迹对应的车牌号是否相同,若相同则同样无需对这两条轨迹进行线路匹配,否则进行下面的步骤。
[0043]3、比较两条轨迹开始的先后顺序,此处为简化,假设轨迹2即line2要晚于轨迹I出现移动点,也即轨迹I先于轨迹2开始。可以想象,轨迹2先于轨迹I开始出现移动点时,同样可以采用本判断方法。
[0044]4、设置点重合次数same_times,坏点数fail point,距离和sum_dis,历史速度h_speed初始值均为0,取出轨迹2的第一个点。
[0045]5、从该点开始,在轨迹2上依次向后找出车辆开始启动的第一个点,记为当前点pl,判断当前点Pl是否为轨迹2的最后一个点,若是,则转到步骤12,否则在轨迹I中找出时间早于Pl且最接近于Pl的点,记为P2,判断P2是否为轨迹I的最后一个点,若是则同样转到步骤12,否则进行下面的步骤;依次确定轨迹2与轨迹I的对应点p3对应p4、p5对应p6......p(2n-l)对应 p(2n)。
[0046]6、计算pl与p2的时间差,取绝对值,将其与预设的时间接近阈值180S进行对比。
[0047]7、若大于该阈值(180S),则判断该点为一个坏点,fail point加1,并进一步判断判断当前重合次数samejimes是否大于等于6 (6为预设的重合次数阈值,即认为当重合次数大于等于此阈值时,才出现两条轨迹的重合段),若是(大于等于6),则输出此重合段的信息,包括轨迹1、轨迹2上的起始时间、经玮度、速度信息等,并存入结果链表result_list,重置点重合次数same_times,坏点数fail point,sum_dis (段的长度)位移和sum_dis为0,则转到步骤11,开始下一点的判断,通过步骤5确定对应点;
[0048]若小于6,同样重置点重合次数same_times,坏点数fail point,位移和sum_dis为0,则转到步骤11,开始下一点的判断,通过步骤5确定对应点。
[0049]8、若小于该阈值(180S),则计算pl、p2两点间距离dis (利用经玮度、速度、经玮度),更新历史速度(历史速度的初始值取Pl中P2中的较大速度,之后的点p3……pn判断时,将对应点的速度与历史速度进行比较,若历史速度较小,则快速增加,使其等于最大速度,否则缓慢降低,使其等于三分之一的历史速度加上三分之二的较大速度,再加上固定的偏移),)计算两点间可能的最大位移maybe_max_dis (时间差与更新过的历史速度的乘积)。
[0050]9、将dis与maybe_max_dis进行对比,若dis较大,(分段)则判断当前重合次数same_times是否大于等于6,若大于等于6,则计算点到直线平均距离av_dis,看其是否小于100m(预设的点到直线距离阈值),若是,则输出此重合段信息,并存入resultjist,重置点重合次数same_times,坏点数fail point,位移和sum_dis为0,转到步骤11,否则在结果链表中清除错误,同样重置点重合次数same_times,坏点数fail point,位移和sum_dis为0,转到步骤11。若same-times小于6,则重置点重合次数same_times,坏点数failpoint,位移和sum_dis为O,转到步骤11。
[0051]10、若dis较小,则计算pl到轨迹I的距离,若此时same_times等于0(新的重合段开始点),则更新重合段开始信息,重合段结束信息,否则只更新重合段结束信息。更新same_times,使其加 I。
[0052]11、在轨迹2中寻找pl之后且与pl时间相差120s的第一个点,记为p3,判断p3是否为轨迹2的最后一个点,若是最后一个点,则结束判断,执行步骤12,若最后一个点,则转到步骤5,确定p3的轨迹I的对应点p4。
[0053]12、判断same_times是否大于等于6,若same_times小于6,则结束判断;若same_times大于等于6,则进一步计算点到直线平均距离av_dis,判断av_dis是否小于100m,若av_dis小于100m,则输出此重合段信息,并存入result_list,否则结束,若av_dis大于等于100m,则结束判断;其中,点到直线平均距离av_dis的计算为:line 2的对应点与lineI的对应点和Iinel的对应点之前的点的连线的距离的平均值。
[0054]二、重合段的合并步骤:(间隔时间短、间隔时间长且静止)
[0055]1、取出结果链表resultjist,若其中重合段的数量小于2,则无需进行合并,结束!若大于等于2,则继续。
[0056]2、取出result_list中的第一个重合段,记为当前段si。
[0057]3、取出si的下一段s2,提取si的结束时间sl_end,s2的开始时间s2_begin,计算一■者时间差t_diff。
[0058]4、在轨迹I和2上分别找出时间晚于于sl_end以及早于s2_begin的最邻近点 linel.pllinel.p21ine2.plline2.p2,且分别统计 pl 与 p2 之间点的总个数 numlsum、num2sum,以及速度为 O 的点的总个数 numlnum2,计算 rat1l = num I/numlsum ;rat12 =num2/num2sum0
[0059]5、进行判断,若时间差t_diff小于重合段时间间隔阈值same.combo_secs,或者是rat1l以及rat12同时满足不小于0.95的条件,则将重合段si与s2合并,输出新的重合段起始信息,存入result2中,在原来的结果链表result_list中去掉si以及s2,然后将其与result2进行合并,形成新的result_list,将其排序,同时is_ok的值变为true,转到步骤1.
[0060]6、若不满足以上条件,则将s2重合段的信息赋给Si,判断Si是否是结果链表的最后一个重合段,若是,则无需进行合并,结束!若不是,则转到步骤3继续执行。
[0061]三、重合段的校验步骤:
[0062]1、取出以上过程得到的结果链表result_list。
[0063]2、判断,若链表的大小为0,则结束校验,否则进行下面的步骤。
[0064]3、分别计算result_list中的各个重合段在轨迹2和轨迹I上的位移,累计相加得到总位移sum_dis sum_disl,以及其起始时间内在轨迹I和2上的里程,累计相加得总里程sum_millsum_mil2,计算各个重合段的起始时间差,累计相加得总时间差sum_tm_diff。
[0065]4、判断,若总位移 sum_dis sum_disl,总时间差 sum_tm_diff,总里程 sum_millsum_mil2同时满足大于等于其对应阈值的条件,则可知,以上的重合段判断是正确的,两个GPS位于同一辆车上,输出各个重合段的持续位移,时间,且结束校验。若不满足,则可得出结论重合段判断
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1