本发明涉及一种多车辆GPS推断路径融合方法,针对同一条线路上的多辆公交车的多个趟次的GPS数据,通过GPS推测公交路径的方法,形成多车辆多趟次的公交路径后,将各路径进行对比,选取其中最准确的一条路径作为公交线路的方法。
背景技术:
公交线路是公交车在城市中实际行进的路线,在计算机系统中体现为导航图中从始发站所属路链到终点站所属路链的可连续跳转的路链序列,是各类公交线路查询、换乘方案查询、公交速度、客流分析等系统所用到的基础数据。以往的公交线路,大多是通过确定起终点及途经站点,由人工在地图中手动绘制出来的,存在匹配导航图不准,与实际行驶方向相反等问题。随着城市的扩张,新增公交线路、延长公交线路,调整线路走向的情况越来越多,单纯人工绘制存在错误多,时间长等问题。
为了解决上述问题,发明了通过GPS推断公交线路的方法,使用GIS和大数据技术,可快速、准确地推断出公交线路到导航路链序列,提供给其它系统使用。
技术实现要素:
针对现有技术中存在的上述问题,本发明提供一种将多车辆GPS推断出的公交路径融合为一条公交线路的方法。
为实现上述目的,本发明采用以下技术方案。
一种多车辆GPS推断路径融合的方法,对同一线路上两辆不同车辆行驶GPS推测出的路径,经过对比后分段,每一段只会有四种情况:第一条路径为空,第二条路径为空,第一条路径和第二条路径相同,第一条路径和第二条路径不同。分段结构体为CompareSegment类,包括第一条路径在此段的序列aSegment和第二条路径在此段的序列bSegment,以及对比结果CompareResult,对比结果为枚举类型,包括默认的都为空(none),及第一条路径为空(aEmpty)、第二条路径为空(bEmpty)、两条路径完全相同(equal)、两条路径不同(diff)。
该方法包括以下步骤:
步骤1:循环各车辆或各趟次推测出的路径,挑选第一条路径和第二条路径;
步骤2:生成路链序列对比矩阵(图1,图中不同字母代表不同的路链)。
初始化一个以第一条路径路链数和第二条路径路链数为大小的二维int数组,将二维int数组作为对比矩阵。
双重循环第一条路径和第二条路径的所有路链,判断第一条的当前路链与第二条的当前路链是否相同,如果相同,则将矩阵的此值设为矩阵左上角值+1;如果不同,则将矩阵此值设为左侧值和上侧值中大的一个。
步骤3:回溯获取对比序列(图2)
将当前位置定位在矩阵右下角,判断此位置的两条路径的路链是否相同,如果相同,则回溯到左上角单元格,如果不同,则按照左上角、上、左的优先级回溯到三者最大的一个单元格。
如果当前单元格已到了矩阵的第一行,则回溯至左边的单元格,如果当前单元格已到了矩阵的第一列,则回溯至上边的单元格。
在每个循环时,若回溯到左边,则将当前对比结果flag设为aEmpty,若回溯到上边,则将当前对比结果设为bEmpty,若回溯到左上角,则根据具体情况,设置为equal或diff。
如果当前对比段为空,或对比段缓存的对比结果与flag不同,则认为一个对比段结束,将此对比段中的aSegment和bSegment逆转后保存到对比序列中,新建一个对比段作为当前对比段。
将第一段的路链和第二段的路链分别添加到当前对比段的aSegment或bSegment中。
当循环结束时,将所有对比段进行逆转。
步骤4:根据对比结果融合路径
首先判断两条路径的长度比例,如果一条路径长度比条路径长度超过了1.5倍,则认为可能是同一条线路的完整路线和区间路线,融合路径的结果返回路径长度长的一条。
经过步骤3处理后,判断相同部分的路段路链总数比其中长的路径的路链总数的比例,如果低于60%,则认为两条路径相似度太低,同样只返回路径长度长的一条。
循环每一个对比段
如果有其中一条路段在对比段为空,则添加为空的路段作为结果路段;
如果两条路段相同,则添加任意一条路段作为结果路段。
如果两条路段不同,则添加路链数少的一段,如果路链数相同,则添加路链总长度短的一段。
步骤5:以步骤4生成的融合路径作为基础,融合后面的其它路径,最终形成一条路径。
与现有技术相比,本发明具有以下明显的优势:
完全自动化,无需人工查看不同车辆行驶的不同路段有何异常,即可在几秒内将多辆车多个趟次形成的几十条路径融合为一条结果路径。
附图说明
图1;对比矩阵示意图
图2:矩阵回溯示意图
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
具体实施方式以武汉市公交行业综合业务管理系统中的公交线路管理平台为例。
武汉市公交行业综合业务管理系统是武汉市公交办为管理武汉市1万余辆公交车、2万公交车司乘人员、700多条线路、近6000个站点即其它相关附属设施而专门建设的管理系统。主要的功能是显示全市公交线路、站点的分布情况,新增、修改公交线路,查看公交车的实时地理位置、按区域或公交线路、站点分析运营速度、驻站时间、准点率、兑现率、查找定位单个公交车、查看单个公交车历史轨迹、历史轨迹模糊搜索等。该系统由应用服务器、GIS服务器、数据库服务器组成。其中服务器型号为浪潮英信NF8460M4服务器,2个2.1GHz CPU,内存64G,300G存储。系统的主要数据,来源于数据中心发送的全市1万辆公交车GPS及刷卡数据。公交车GPS及刷卡数据由安装在公交车上的移动设备发出,一般一分钟发送3-4次。系统从行业数据中心接收到的GPS数据1500条左右每秒。
本发明所述的方法包括以下步骤:
循环各车辆或各趟次推测出的路径,挑选第一条和第二条路径,包括以下步骤:
步骤1.1获取第一条路径作为对比路径a。
步骤1.2获取第二条路径作为对比路径b。
生成路链序列对比矩阵,包括以下步骤:
步骤2.1初始化以第一条路径路链数和第二条路径路链数为大小的二维int数组,作为对比矩阵。
步骤2.2双重循环第一条路径和第二条路径的所有路链,判断第一条的当前路链与第二条的当前路链是否相同。
步骤2.3如果相同,则将矩阵的此值设为矩阵左上角值+1,如果不同,则将矩阵此值设为左侧值和上册值中较大的一个。
回溯获取对比序列包括以下步骤:
步骤3.1将当前位置定位在矩阵右下角。
步骤3.2判断此位置的两条路径的路链是否相同。
步骤3.3如果相同,则回溯到左上角单元格。。
步骤3.4如果不同,则按照左上角、上、左的优先级回溯到三者最大的一个单元格。
步骤3.5如果当前单元格已到了矩阵的第一行,则回溯至左边的单元格。
步骤3.6如果当前单元格已到了矩阵的第一列,则回溯至上边的单元格。
步骤3.7判断回溯的方向,若若回溯到左边,则将当前对比结果flag设为aEmpty,若回溯到上边,则将当前对比结果设为bEmpty,若回溯到左上角,则根据具体情况,设置为equal或diff。
步骤3.8如果当前对比段为空,或对比段缓存的对比结果与flag不同,则认为一个对比段结束了,将此对比段中的aSegment和bSegment逆转后保存到对比序列中,新建一个对比段作为当前对比段。
步骤3.9将第一段和第二段的路链分别添加到当前对比段的aSegment或bSegment中。
步骤3.10当循环结束时,将所有对比段进行逆转。
根据对比结果融合包括以下步骤:
步骤4.1判断两条路径的长度比例,如果长的比短的超过了1.5倍,则认为可能是同一条线路的完整路线和区间路线,融合结果返回长的一条。
步骤4.2判断步骤3.2结果相同部分的路段路链总数比其中较长的路径的路链总数的比例,如果低于60%,则认为两条路径相似度太低,同样只返回长的一条。
步骤4.3循环每一个对比段
步骤4.3.1如果有其中一条在此路段为空,则添加为空的路段作为结果路段
步骤4.3.2如果两条路段相同,则添加任意一条路段作为结果路段。
步骤4.3.3如果两条路段不同,则添加路链数较少的一段,如果路链数相同,则添加路链总长度较短的一段。
以步骤1.1-步骤4.3.3生成的融合路径作为基础,融合后面车辆或趟次生成的路径,最终形成一条路径。