移动车辆分布式聚合方法

xiaoxiao2021-2-23  114

移动车辆分布式聚合方法
【技术领域】
[0001] 本发明实施例设及互联网技术,尤其设及一种移动车辆分布式聚合方法。
【背景技术】
[0002] 实时车辆位置监控系统可W对车辆进行有效的监管和调度,并通过电子地图在终 端展示实时车况。具体的展示方式包括在低级别视图(缩放比例小的视图)下的车辆分布情 况的展示和高级别视图(缩放比例大的视图)下的车辆具体位置的展示。由此可知,需要对 大规模车辆的实时位置进行聚合,W用来支持不同缩放比例的电子地图在终端展示车况及 用户调用终端的电子地图查询实时车况。
[0003] 现有的电子地图通常是通过网格法对车辆做点聚合,地图应用服务器获取各车辆 的GI^数据来做聚合计算,然后将计算结果反馈给实时车辆位置监控系统,由实时车辆位置 监控系统将聚合结果绘制在电子地图上,然后将电子地图发送到终端进行车况展示,并使 用户调用终端的电子地图查询实时车况。
[0004] 但是大规模的车辆无时无刻不在移动,每辆车每隔2~3秒就会向地图应用服务器 推送来实时GI^数据,地图应用服务器每隔几秒就会根据所有车辆的实时GI^数据重新进行 一次大规模点聚合计算,造成该点聚合的计算延迟比较大,从而地图应用服务器向车辆监 控系统反馈时间长,导致车辆监控系统无法及时地将实时的聚合结果绘制在电子地图上, 最终造成用户通过终端的电子地图查询实时车况时,电子地图反馈时间长。

【发明内容】

[0005] 本发明提供一种移动车辆分布式聚合方法,W克服现有技术中通过点聚合对移动 车辆的GPS数据进行聚合处理造成的用户通过终端的电子地图查询实时车况时,电子地图 反馈时间长的技术问题。
[0006] 本发明提供一种移动车辆分布式聚合方法,包括:
[0007] 获取车辆的GPS定位系统发送的所述车辆的当前GPS数据,所述当前GPS数据包括 所述车辆的经度值和缔度值;
[000引根据所述当前GPS数据的经度值和缔度值获取所述车辆当前所处的地理区域;其 中,所述地理区域为对电子地图进行划分得到的地理区域;
[0009] 根据所述车辆当前所处的地理区域的历史车辆信息,W及所述车辆的GI^数据,进 行聚合处理,得到所述车辆当前所处的地理区域对应的聚合处理结果;所述车辆信息包括 所述车辆当前所处的地理区域内的车辆总数、所有车辆的经度和W及缔度和,所述聚合处 理结果包括聚合质屯、和所述车辆当前所处的地理区域内的车辆总数;
[0010] 通过所述电子地图显示所述车辆当前所处的地理区域对应的聚合处理结果。
[0011] 本发明通过根据车辆当前所处的地理区域的历史车辆信息,W及车辆的当前GPS 数据,进行聚合处理,得到车辆当前所处的地理区域对应的聚合处理结果,即每处理一个 GPS数据都在历史车辆信息的基础上进行更新然后聚合处理,解决了现有技术中每次聚合 周期中处理获取的GI^数据时,都需要用所有车辆的GPS数据重新进行点聚合计算造成的计 算延迟比较大,从而地图应用服务器向车辆监控系统反馈时间长,导致车辆监控系统无法 及时地将实时的聚合结果绘制在电子地图上,最终造成用户通过终端的电子地图查询实时 车况时,电子地图反馈时间长的技术问题。
【附图说明】
[0012]图1为本发明移动车辆分布式聚合方法流程示意图一;
[0013 ]图2为本发明移动车辆分布式聚合方法流程示意图二;
[0014] 图3为采用网格划分法对电子地图进行区域划分的示意图;
[0015] 图4为在判断车辆当前所处的地理区域的过程中,对电子地图内的各网格进行标 注的示意图;
[0016] 图5为本发明移动车辆分布式聚合方法流程示意图Ξ;
[0017] 图6为本发明移动车辆分布式聚合方法的车辆实时GPS流数据处理拓扑结构示意 图一;
[0018] 图7为本发明移动车辆分布式聚合方法的车辆实时GPS流数据处理拓扑结构示意 图二。
【具体实施方式】
[0019] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020] 随着车辆数量的剧增,人们需要查询实时车况,W方便出行,地图应用服务器可W 根据车辆的GI^定位系统发送过来的实时GI^数据对车辆进行处理,最终通过终端的电子地 图显示实时车况,本发明基于当用户需要查询实时车况时,电子地图可W实时反馈,提出了 一种移动车辆分布式聚合方法,具体通过W下实施例进行说明。
[0021] 图1为本发明移动车辆分布式聚合方法流程示意图一,该方法的执行主体为地图 应用服务器,该地图应用服务器可W通过软件和/或硬件实现,如图1所示,本实施例的方法 可W包括:
[0022] S101、获取车辆的GI^定位系统发送的车辆的当前GI^数据,当前GPS数据包括车辆 的经度值和缔度值;
[0023] S102、根据当前GPS数据的经度值和缔度值获取车辆当前所处的地理区域;其中, 地理区域为对电子地图进行划分得到的地理区域;
[0024] S103、根据车辆当前所处的地理区域的历史车辆信息,W及车辆的当前GPS数据, 进行聚合处理,得到车辆当前所处的地理区域对应的聚合处理结果;车辆信息包括地理区 域内的车辆总数、所有车辆的经度和W及缔度和,聚合处理结果包括聚合质屯、和地理区域 内的车辆总数;
[00巧]S104、通过电子地图显示车辆当前所处的地理区域对应的聚合处理结果。
[0026]在本实施例的具体应用过程中,由于车辆是经常移动的,地图应用服务器获取各 车辆上的GPS定位系统发送的自己最新的GI^数据,获取GI^数据流之后,逐个处理每个当前 GPS数据,针对任一当前GI^数据,根据当前GPS数据的经度值和缔度值获取车辆当前所处的 地理区域;其中,地理区域为对电子地图进行划分得到的地理区域。举例详细说明如下:电 子地图具有不同的缩放比例,不同的缩放比例下电子地图具有不同的区域划分,比如,当缩 放比例最小时对应的电子地图的显示范围为中国时,那么在该缩放比例下划分的地理区域 较少一些,当缩放比例变大后对应的电子地图的显示范围为北京市时,那么在该缩放比例 下的划分的地理区域会较多一些。由此可知,在本实施例中,车辆当前所处的地理区域不唯 一,针对每一缩放比例,该车辆都对应一个地理区域。在本实施例中,针对任一地理区域而 言,地图应用服务器的处理方式均相同。
[0027] 地图应用服务器在获取该车辆当前所处的地理区域之后,从地图应用服务器内存 中直接获取车辆当前所处的地理区域的历史车辆信息。其中,该信息是指在处理该车辆当 前GPS数据前得到的该车辆当前所处的地理区域的车辆总数、所有车辆的经度和W及缔度 和。
[0028] 地图应用服务器根据该车辆的当前GI^数据,在历史车辆信息的基础上,对车辆当 前处的地理区域的车辆总数、所有车辆的经度和W及缔度和进行相应地更新,在更新完成 后,进行聚合处理,得到不同缩放比例的电子地图中各车辆当前所处地理区域对应的聚合 处理结果。本领域技术人员可W理解,可W在通过车辆的当前GPS数据对历史车辆信息更新 完成后,进行聚合处理,也可W根据聚合周期,即将该聚合周期中得到的至少一个车辆的当 前GI^数据对历史车辆信息进行更新处理,更新完成后,进行聚合处理。
[0029] 其中,聚合处理结果中的聚合质屯、的计算方法为:聚合质屯、的经度值为地理区域 内所有车辆的经度和除W该地理区域内的车辆总数,聚合质屯、的缔度值为地理区域内所有 车辆的缔度和除W该地理区域内的车辆总数。
[0030] 本领域技术人员可W理解,该车辆所位于的不同缩放比例下的电子地图对应的各 地理区域,在聚合处理时所采用的均为该车辆的GI^数据,对不同缩放比例下的电子地图采 用上述相同的方法各自独立进行聚合处理。
[0031] 本实施例提供的移动车辆分布式聚合方法,通过根据车辆当前所处的地理区域的 历史车辆信息,W及车辆的当前GPS数据,进行聚合处理,得到车辆当前所处的地理区域对 应的聚合处理结果,即每处理一个GPS数据都在历史车辆信息的基础上进行更新然后聚合 处理,解决了现有技术中需要用所有车辆的GPS数据重新进行点聚合计算造成的计算延迟 比较大,从而地图应用服务器向车辆监控系统反馈时间长,导致车辆监控系统无法及时地 将实时的聚合结果绘制在电子地图上,最终造成用户通过终端的电子地图查询实时车况 时,电子地图反馈时间长的技术问题。
[0032] 由于车辆的移动性往往比较大,车辆当前所在的区域有可能与过去所在的地理区 域不同,为了得到完整地理区域的车辆聚合结果,还需要对车辆过去所在的地理区域进行 聚合结果处理,此外,当 得到电子地图各地理区域的聚合质屯、后,由于一些聚合结果的质屯、 靠的非常近,导致通过电子地图显示聚合结果时存在严重重叠的现象,影响效果,所W还需 要对聚合质屯、进行合并,具体见本发明提供的图2所对应的实施例。
[0033] 图2为本发明移动车辆分布式聚合方法流程示意图二,该方法的执行主体为地图 应用服务器,如图2所示,本实施例的方法可W包括:
[0034] S201、获取车辆的GI^定位系统发送的车辆的当前GI^数据,GPS数据中包括车辆的 经度值和缔度值;
[0035] S202、获取根据不同的缩放比例对电子地图进行网格划分或不规则划分得到的各 缩放比例对应的电子地图中的各地理区域;
[0036] S203、根据当前GI^数据的经度值和缔度值获取车辆当前所处的地理区域;
[0037] S204、获取车辆上一次发送历史GPS数据时、车辆过去所处的地理区域;
[0038] S205、判断车辆当前所处的地理区域是否在电子地图的划分区域中;
[0039] 若是,执行步骤S206;若否,执行步骤S210;
[0040] S206、判断车辆过去所处的地理区域是否在电子地图的划分区域中;
[0041 ]若是,执行步骤S207,若否,直接执行S208;
[0042] S207,判断车辆过去所处的地理区域和车辆当前所处的地理区域是否相同,若是, 执行步骤S208,若否,执行步骤209;
[0043] S208、根据车辆当前所处的地理区域的历史车辆信息,W及车辆的当前GPS数据, 进行聚合处理,得到车辆当前所处的地理区域对应的聚合处理结果;
[0044] S209、根据车辆当前所处的地理区域的历史车辆信息、车辆过去所处的地理区域 的历史车辆信息、W及车辆的当前GPS数据,进行聚合处理,得到车辆当前所处的地理区域 和车辆过去所处的地理区域对应的聚合处理结果;
[0045] S210、判断车辆过去所处的地理区域是否在电子地图的划分区域中;
[0046] 若是,执行步骤S211,若否,结束;
[0047] S211、根据车辆过去所处的地理区域的历史车辆信息、W及车辆的当前GPS数据, 进行聚合处理,得到车辆过去所处的地理区域对应的聚合处理结果;
[004引S212、合并聚合质屯、,根据合并处理后的结果,进行聚合处理,得到各地理区域对 应的新的聚合处理结果;
[0049] S213、通过电子地图显示各地理区域对应的新的聚合处理结果。
[0050] 下面结合图3W及图4,对图2所示的实施例进行详细说明。
[0051] 其中,步骤S201与步骤S101-致,此处不再寶述。图3为采用网格划分法对电子地 图进行区域划分的示意图;图4为在判断车辆当前所处的地理区域的过程中,对电子地图内 的各网格进行标注的示意图。
[0052] 在步骤S202中,某些情况下用户并不关屯、具体行政区域的车辆的相关信息,只关 屯、空间上车辆的相关信息,则可W对电子地图建立规则的电子围栏进行网格划分,即将每 个缩放比例下的电子地图分别划分为若干个大小相同的正方形网格,每一个网格为一个地 理区域,划分示意图参见图3,每一层网格对应一定缩放比例范围下的电子地图的区域划 分。
[0053] 但在其它一些情况下用户需要查询具体行政区域的车辆的相关信息,如北京市现 在所包含的车辆总数,某辆车所在的省市,某辆车是否发生了跨具体行政区域的移动,运些 需求是规则的网格划分所不能满足的,需要根据具体行政区域建立不规则的电子围栏对电 子地图进行不规则划分,比如当某一缩放比例下的电子地图对应的显示范围为中国时,可 W将各省作为该缩放比例下的各地理区域,当另一缩放比例下的电子地图对应的显示范围 为北京时,可W将北京市的各区作为该缩放比例下的各地理区域。
[0054] 将进行网格划分或不规则划分得到的各地理区域的电子围栏数据存储在地图应 用服务器中,供地图服务器对车辆进行聚合处理时调用。
[0055] 在步骤S203中,针对电子地图为网格划分或不规则划分时,如何判断车辆当前所 处的地理区域进行说明。
[0056] 当电子地图为网格划分时,实现方式如下:
[0057] 根据当前GI^数据的经度值和维度值,计算车辆的纵坐标和横坐标,根据车辆的纵 坐标和横坐标,W及各网格的横坐标和纵坐标,判断车辆当前所处的地理区域。
[0058] 具体地,根据当前GI^数据的经度值和维度值,通过如下公式一计算所述车辆的纵 坐标和横坐标:
[0061] 其中,X为车辆的横坐标,y为车辆的纵坐标,In曲为地理区域所跨的经度,latD为 地理区域所跨的缔度,swPoint.lat为电子地图的西南点的缔度值,nePoint.lng为电子地 图的东北点的经度值。
[0062] 在判断车辆当前所处的地理区域的过程中,对电子地图内的各网格进行标注,W 将某一缩放比例下的电子地图划分为9个正方形网格为例,示意图参见图4,即使每个正方 形网格的边长为1,W左上角网格的左上角的顶点为坐标原点(0,0),该网格的右侧方向为X 正半轴,该网格的正下方方向为Y正半轴,运样可W得到各网格所覆盖的坐标点。若通过公 式(1)计算的车辆的坐标为(〇,1),则可知该车辆当前所处的地理区域为第4个网格对应的 地理区域,若计算得到的车辆的坐标为(1,2),则可知该车辆当前所处的地理区域为第8个 网格对应的地理区域。公式(1)是对车辆的坐标进行了向下取整运算的,若车辆的坐标在取 整前的坐标恰好为整数,即车辆在各网格交点处,此时,则可W根据实际需要将其划分至该 交点所处的任一个网格内,本发明不作具体地限定。
[0063] 当电子地图为不规则划分时,实现方式如下:
[0064] 在电子地图上进行网格划分;获取网格覆盖行政区域的覆盖关系;根据当前GPS数 据的经度值和缔度值,得到与网格对应的车辆当前所处的地理区域;根据网格覆盖行政区 域的覆盖关系,W及与网格对应的车辆当前所处的地理区域,确定车辆当前所处的与行政 区域对应的地理区域。
[0065] 具体为:在电子地图根据行政区域进行不规则划分的基础上再次进行规则的网格 划分,计算各网格所覆盖的行政区域,然后根据当前GPS数据的经度值和缔度值,采用上述 网格划分方法的车辆地理区域的判断方法,得到车辆当前所处的网格对应的地理区域,再 根据计算的各网格所覆盖的行政区域,将所覆盖的行政区域作为该车辆所在的候选行政区 域,最后依次判断该车辆处在哪个候选的行政区域中。
[0066] 其中,计算各网格所覆盖的行政区域采用采样法进行计算,即在各网格中随机选 取一定数量的点,计算各点分别落在哪个行政区域内,所落的行政区域即为各网格所覆盖 的行政区域;计算各点分别落在哪个行政区域内及依次判断该车辆处在哪个候选的行政区 域中所采用的算法为文献"李基拓,陆国栋,冯星.基于单调性与相关边的多边形内外点判 断算法中所记载的算法[J],中国图像图形学报,2002,7(6) :596-600.",因其为现有算法, 在本发明中不做寶述。
[0067] 得到车辆当前所在的地理区域后,还需要获取车辆上一次发送历史GI^数据时、车 辆过去所处的地理区域,接着判断车辆当前所处的地理区域和过去所在的地理区域是否在 电子地图的划分区域中,W及车辆过去所处的地理区域和车辆当前所处的地理区域是否相 同。
[0068] 当判断结果为车辆当前所在的地理区域和过去所在的地理区域均在电子地图的 划分区域内且车辆当前所在的地理区域和过去所在的地理区域相同,或车辆过去所在的地 理区域不在电子地图的划分区域内且车辆当前所在的地理区域在电子地图的的划分区域 内,则按照S208进行聚合结果处理,具体地,在步骤S208中,
[0069] 若车辆过去所在的区域在电子地图的划分区域内,则车辆信息中还包括车辆过去 的经度值和缔度值,则获取车辆的当前GPS数据中的经度值与车辆过去的经度值的经度差 值,车辆的当前GPS数据中的缔度值与车辆过去的缔度值的缔度差值,则根据经度差值和维 度差值,对车辆当前所处的地理区域的车辆信息中的所有车辆的经度和W及缔度和进行增 加或减少处理,根据增加或减少处理后的车辆信息进行聚合处理,得到车辆当前所处的地 理区域对应的聚合处理结果。
[0070] 若车辆过去所在的区域不在电子地图的划分区域内,则根据车辆当前GPS数据中 的经度值和缔度值,对车辆当前所处的地理区域的车辆信息中的所有车辆的经度和W及缔 度和进行增加处理,根据增加处理后的车辆信息进行聚合处理,得到车辆当前所处的地理 区域对应的聚合处理结果。
[0071] 当判断结果为车辆当前所在的地理区域和过去所在的地理区域均在电子地图的 划分区域内且车辆当前所在的地理区域和过去所在的地理区域不相同,则按照步骤S209执 行,具体地,在步骤S209中,首先根据车辆的当前GPS数据对车辆当前所处的地理 区域的车 辆信息中的车辆总数、所有车辆的经度和W及缔度和进行增加处理,根据增加处理后的车 辆信息进行聚合处理,得到所述车辆当前所处的地理区域对应的聚合处理结果;然后根据 车辆的当前GPS数据对车辆过去所处的地理区域的车辆信息中的车辆总数、所有车辆的经 度和W及缔度和进行减少处理,根据减少处理后的车辆信息进行聚合处理,得到车辆过去 所处的地理区域对应的聚合处理结果。
[0072] 当判断结果为车辆当前所在的地理区域不在电子地图的划分区域内,车辆过去所 在的地理区域在电子地图的划分区域内,则按照步骤S211执行,具体地,在步骤S211中,得 到车辆过去所处的地理区域对应的聚合处理结果,具体为:根据车辆的当前GPS数据对车辆 过去所处的地理区域的车辆信息中的车辆总数、所有车辆的经度和W及缔度和进行减少处 理,根据减少处理后的车辆信息进行聚合处理,得到车辆过去所处的地理区域对应的聚合 处理结果。
[0073] 在根据上述聚合处理结果得到各地理区域内的聚合质屯、后,需要对严重重叠的聚 合质屯、进行合并。具体地,在步骤S212中,获取电子地图中各地理区域内的聚合质屯、,计算 各聚合质屯、之间的距离;将距离小于预设距离的两个聚合质屯、对应的车辆总数、经度和、缔 度和进行合并处理,得到合并处理结果;根据合并处理后的结果,进行聚合处理,得到的新 的聚合处理结果。
[0074] 预设距离根据实际需要设定,如根据电子地图的缩放比例、展示效果等。优选地, 若为网格划分时,可将预设距离设为Ξ分之一的网格边长。
[0075] 更为具体地,将距离小于预设距离的两个聚合质屯、对应的车辆总数、经度和、缔度 和进行合并处理,具体如下:选择一个聚合质屯、a,采用遍历数据的方式,计算其它聚合质屯、 与聚合质屯、a之间的距离,若聚合质屯、a和聚合质屯、b之间的距离小于预设距离,则将聚合质 屯、a和聚合质屯、b对应地理区域内的车辆总数、经度和、缔度和相加,进行新的聚合质屯、的计 算,得到新的聚合质屯、C,并将聚合质屯、a和聚合质屯、b删除,然后采用上述相同的方法,对剩 余的原有聚合质屯、和合并后的得到的新的聚合质屯、进行合并,直至遍历完所有的聚合质 屯、。
[0076] 最终根据新的聚合质屯、通过电子地图显示车辆各地理区域对应的聚合处理结果。
[0077] 本实施例通过增加对聚合处理结果中聚合质屯、的合并的步骤,去掉了严重重叠的 聚合质屯、,使通过电子地图对车辆的分布情况的显示更加清楚、明了,提高了用户体验。
[0078] 更为具体地,一种实现步骤S201~步骤S211的具体示例如下:
[0079] 首先设计如下Ξ张哈希表:
[0080] (1 )carRegionMap:维护每辆车和其所在的地理区域,哈希表中每个数据项的键为 车辆唯一标识符,值为网格区域名。
[0081 ] (2)carGPSMap:维护每辆车和其当前的GPS坐标(经度值和缔度值),哈希表中每个 数据项的键为车辆唯一标识符,值为其当前的GI^坐标。
[0082] (3)regionInfoMap:维护每个区域和其对应的地理区域信息,哈希表中每个数据 项的键为网格区域名,值为区域信息。
[0083] 其中,车辆唯一标识符和地理区域名皆为字符串类型。GPS坐标为自定义的 GPSPoint类型,包含经度(longitude)和缔度(latitude)两个属性W及相应的get和set方 法。区域信息为自定义的Regioninfo类型,具有车辆总数(num)、所有车辆的经度和 (longitudeSum) W及所有车辆的缔度和(latitudeSum)运Ξ个属性,包含所有属性相关的 get/set方法W及快捷更改方法。
[0084] 当GI^数据流不间断地到达时,逐个处理每个GPS数据,具体步骤如下:
[0085] (1)读取GPS数据中的车辆唯一标识符、经度值和缔度值,分别记为vehichleld, newLng,newLat;
[0086] (2)从。日诚日旨;[0]11日9中读取该¥日11;[(31日1(1过去所在的地理区域,记为01(11?日旨;[0]1,若 哈希表里无该key(即车辆过去所处的地理区域不在电子地图的划分区域中),则返回null;
[0087] (3)根据newLng和newLat计算得到该车辆当前所在的地理区域,记为newRegion, 若不在电子地图的划分区域中,则返回"out";
[008引 (4)从carGPSMap中读取该vehicleld过去的GPS坐标,记为oldGps化int,若哈希表 里无该key(即车辆过去所处的地理区域不在电子地图的划分区域中),则返回null;
[0089] (5)如果该车的当前所处的地理区域在电子地图的划分区域中,执行步骤(6),否 则执行步骤(10);
[0090] (6)若oldRegion等于null,执行步骤7);若oldRegion等于newRegion,执行步骤 8);若oldRegion不等于newRegion,执行步骤9);
[0091 ] (7)在carRegionMap和carGPSMap中新增该车的相应信息,并更新regionInfoMap, 包括增加该车辆当前所处地理区域信息内的车辆总和、经度值总和W及缔度值总和,结束;
[OOW] ( 8 )将该车辆在当前地理区域内的GP S坐标变化更新到c ar GP SMap、 regionInfoMap,由于该车辆在当前所处的地理区域内可能发生移动,需要更新该车辆在当 前所处的地理区域内的经度值总和W及缔度值总和,结束;
[0093] (9)更新car Re g i onMap和carGP SMap中该车辆的相应信息,并将设及到的两个地理 区域的信息变化更新到regionInfoMap,包括当前所处地理区域和过去所处地理区域车辆 总数、经度值总和W及缔度值总和的更新,结束;
[0094] (10)若oldRegion不等于null,则将carRegionMap和carGPSMap中与该车量的相关 信息移除,并将该车辆过去所处的地理区域内的相关信息变化更新到regionInfoMap,包括 减少相应区域信息内的车辆总和、经度值总和W及缔度值总和,结束。
[00M]不断执行上述过程,直至该聚合周期内的GPS数据处理完毕,通过实时GPS数据维 护各地理区域的信息,然后进行聚合处理,得到聚合质屯、。
[0096] 上述各哈希表的数据是不断更新的,更新后的regionInfoMap哈希表内的数据可 按聚合周期定期输出到分布式缓存中,供地图应用服务器调用。
[0097] 上述实施例通过对移动车辆进行聚合处理得到了不同缩放比例下电子地图的车 辆分布情况,但是对于缩放比例大于一定值下的电子地图,需要显示车辆的具体分布情况, 因此,本发明采用图5对应的实施例,在上述实施例的基础上进行了优化,得到了电子地图 在缩放比例大于一定值下的车辆的具体分布情况。
[0098] 图5为本发明移动车辆分布式聚合方法流程示意图Ξ,该方法的执行主体为地图 应用服务器;如图5所示,本实施例的方法可W包括:
[0099] S501、获取车辆的GI^定位系统发送的车辆的当前GI^数据,当前GPS数据中包括车 辆的标识符、经度值和缔度值;
[0100] S502、根据当前GI^数据的经度值和缔度值获取车辆当前所处的地理区域;
[0101] S503、获取车辆上一次发送历史GPS数据时车辆过去所处的地理区域;
[0102] S504、判断车辆当前所处的地理区域是否在电子地图的划分区域内,若是,执行步 骤S505,若否,执行步骤S509,
[0103] S505、判断车辆过去所处的地理区域是否在电子地图的划分区域内,若否,执行步 骤S506,若是,执行步骤S507;
[0104] S506、根据GPS数据中的车辆的标识符,更新车辆当前所处的地理区域对应的车辆 标识符列表信息;
[0105] S507、判断车辆过去所处的地理区域和当前所处的地理区域是否相同,若是,结 束,若否,执行步骤S508;
[0106] S508、根据GPS数据中的车辆的标识符,更新车辆当前所处的地理区域对应的车辆 标识符列表信息W及车辆过去所处的地理区域对应的车辆标识符列表信息;
[0107] S509、判断车辆过去所处的地理区域是否在电子地图的划分区域内,若是,执行步 骤S510;若否,结束;
[0108] S510、根据GPS数据中的车辆的标识符,更新车辆过去所处的地理区域对应的车辆 标识符列表信息;
[0109] S511、在缩放比例大于预设比例时,根据车辆标识符列表信息,通过电子地图显示 各车辆的分布信息。
[0110] 在图5所对应的实施例中,本领域技术人员可w理解的是步骤S504之前还包括若 车辆过去所处的地理区域不在电子地图的划分区域内且车辆当前所处的地理区域在电子 地图的划分区域中,则直接获取车辆当前所处的地理区域的历史车辆标识符信息;若车辆 过去所处的地理区域和车辆当前所处的地理区域都在电子地图的划分区域内,则获取车辆 过去所处的地理区域的历史车辆标识符信息和车辆当前所处的地理区域的历史车辆标识 符信息;若车辆过去所处的地理区域在电子地图的划分区域内且车辆当前所处的地理区域 不在电子地图的划分区域中,则直接获取车辆过去所处的地理区域的历史车辆标识符信 息。
[0111] 当需要显示各车辆的分布信息时,在一个聚合周期内所有的GPS数据处理完毕后 或每处理完一个GPS数据后,车辆监控系统根据最终的各地理区域的车辆标识符信息调用 地图应用服务器中的各车辆的实时GPS数据,W恰当的方式通过电子地图在终端显示车辆 的具体分布情况。
[0112] 具体地,实现步骤S501~S510的一种具体示例为:
[0113] 首先设计如下两张哈希表:
[0114] (l)carRegionMap:维护每辆车和其所在的地理区域,哈希表中每个数据项的键为 车辆唯一标识符,值为网格区域名。
[0115] (2)regionS化Map:维护每个网格区域和其对应地理区域内的车辆列表,哈希表中 每个数据项的键为地理区域名,值为车辆唯一标识符列表。
[0116] 其中,车辆唯一标识符和网格区域名皆为字符串类型。车辆唯一标识符列表是一 个化shSet集合。
[0117] 当GPS数据流不间断地到达时,我们逐个处理每个GPS数据,具体步骤如下:
[0118] (1)读取GPS数据中的车辆唯一标识符、经度值和缔度值,分别记为vehichleld, newLng,newLat;
[0119] (2)从。日诚日旨;[0]11日9中读取该¥日11;[(31日1(1过去所在的地理区域,记为01(11?日旨;[0]1,若 哈希表里无该key(即车辆过去所处的地理区域不在电子地图的划分区域中),则返回null;
[0120] (3)根据newLng和newLat计算得到该车当前所在的地理区域,记为newRegion,若 该车当前所在的地理区域不在电子地图的划分区域中,则返回"out";
[0121] (4)如果该车的新位置在电子地图的划分区域中,执行步骤(5),否则执行步骤 (8);
[0122] (5)若oldRegion等于null,执行步骤6);若oldRegion等于newRegion,结束;若 oldRegion不等于newRegion,执行步骤7);
[0123] (6)在carRegionMap中新增该车的相关信息,并将该地理区域内发生变化的信息 更新到regionSNsMap,将相应车辆的vehichleld添加到该区域的车辆列表中,结束;
[0124] (7)更新carRegionMap,并将设及到的两个地理区域的信息变化更新到 regionSNsMap,包括将相应车辆的vehichleld从过去地理区域的车辆列表中移除,并添加 到当前地理区域的车辆列表中,结束;
[01巧](8)若oldRegion不等于null,则将carRegionMap中与该车的相关信息移除,并将 该网格区域内的相关信息变化更新到regionSNsMap,将相应车辆的vehichleld从过去地理 区域的车辆列表中移除,结束;
[0126] 不断执行上述过程,即可不间断地通过实时GPS数据维护各个区域的车辆唯一标 识符列表,即各地理区域内所含车辆具体数据项的索引表。
[0127] 本实施例通过在各地理区域的历史车辆标识符列表信息中的基础上更新,得到实 时的各地理区域的车辆标识符列表信息,然后当需要显示各车辆的实时分布信息时,车辆 监控系统根据最终的各地理区域的车辆标识符信息调用地图应用服务器中的各车辆的GPS 数据,W恰当的方式通过电子地图在终端显示车辆的具体分布情况,处理过程块,方便了用 户对大缩放比例下车辆具体分布信息的查询。
[0128] 下面,对上述各实施例移动车辆分布式聚合方法的具体实现做详细的说明。
[0129] 1、车辆实时位置聚合处理的实现
[0130] 图6为本发明移动车辆分布式聚合方法的车辆实时GPS流数据处理拓扑结构示意 图一,参见图6,该结构为分布式处理结构。包括消息源及多个处理器。在本实施例中,每两 个处理器协同处理GPS数据,即每一层网格划分或不规则划分的数据处理都由上下游两个 处理器组成。例如,处理器〇1(上游处理器)和处理器〇2(下游处理器)协同处理GPS数据,处 理器11和处理器12协同处理GPS数据,处理器nl和处理器n2协同处理GPS数据,其中,处理器 01和处理器02可用W第一层网格划分的数据处理。经上述协同的处理器处理后的数据(聚 合处理结果)发送至分布式缓存(Memcached)中。
[0131] 在该拓扑结构中,每个组件(消息源、处理器)都开有多个任务(Task),加强并行处 理能力。首先,消息源从Kafka消息队列里读取GPS数据流后,解析并组成Tuple (vehichleld, longitude , lati1:ude),通过nextTuple方法不断发送给各个上游处理器。运 一层的分发采用Fields Grouping策略,按照vehichleld字段,将同一辆车的GF*S数据发往 上游处理器内的同一个化sk,运样做有利于化sk中carRegionMap和carGPSMap的维护。假设 我们在处理器01内开了两个化sk,分别记为化ski和化sk2。化ski和化sk2分别维护着各自 的carRegionMap和carGPSMap。如果某辆车的GI^数据有时发给化skl,有时发给化sk2,则它 们的carRegionMap中维护的运辆车所在的地理区域可能会出现不一致的情况。同理, carGPSMap中维护的运辆车的GI^坐标也会出现不一致的情况。可想而知运种不一致会造成 地理区域内的聚合结果无法被正确计算。
[0132] 因为消息源按照veMchleld字段,将同一辆车的GPS数据发往上游处理器内的同 一个化sk,所W每个化sk的carRegionMap和carGPSMap都只包含部分车辆的数据。因此,每 个化sk都无法凭借自己的carRegionMap和carGPSMap得出聚合结果,于是设计了下游处理 器来做运项工作。上游处理器到下游处理器的数据流分配也采用Fields Grouping的策略, 将同一个地理区域的车辆相关信息的变更发往下游处理器内的同一个化sk,下游处理器中 的每个化sk都维护着一个regionInfoMap,包含部分地理区域的聚合结果。为了将得到的聚 合结果输出,我们另起了一个线程,定时(优选每隔3秒)遍历运个regionInfoMap,并按格式 输出到Memcached中,得到包含所有地理区域的聚合处理结果。如果存在地理区域在 Memcached中没有对应的键值对,则为其新建一个数据项,否则覆盖上一次的结果。
[0133] 2、合并聚合质屯、的实现
[0134] 图7为本发明移动车辆分布式聚合方法的车辆实时GPS流数据处理拓扑结构示意 图二,图7在图6的基础上,体现了聚合质屯、的合并,参见图7,对于聚合质屯、存在重叠情况的 层次,在其下游处理器后面再加一个聚合质屯、合并处理器做质屯、合并,然后再将结果输出 質iMemcached。
[0135] 虽然下游处理器是一个多化sk设计,但是每个化sk内都只包含部分地理区域的聚 合处理结果,但是需要知道所有的聚合处理结果才能进行质屯、合并。所W,下游处理器内的 每个化sk都必须在一个地理区域的聚合处理结果被更新过后,将其发送给聚合质屯、合并处 理器。因为聚合质屯、合并处理器是个单化sk结构,所W它可W接收到所有地理区域的聚合 处理结果,并将其维护成一个类似于regionInfoMap的哈希表。由于聚合质屯、合并处理器只 做简单的哈希表维护,不设及任何其他的计算和处理,故单化sk足矣。
[0136] 在聚合质屯、合并处理器中,另外起了一个线程,定期(优选每隔5秒)根据上述哈希 表,剥离划分区域的概念,构建一个聚合质屯、点的列表,并按照说上述实施例中的方法进行 质屯、合并,然后按格式输出到Memcached。
[0137] 3、大于一定缩放比例下,车辆列表信息实时维护的实现
[013引同样的,消息源从Kafka消息队列中拉取GPS数据流后,解析并组成化ple,然后将 同一辆车的GPS数据发往上游处理器内的同一个化sk。
[0139] 因为消息源按照veMchleld字段,将同一辆车的GPS数据发往上游处理器内的同 一个化sk,所W每个化sk的carRegionMap都只包含部分车辆的数据。因此,每个化sk都无法 凭借自己的carRegionMap得出地理区域内的车辆列表信息,于是我们设计了下游处理器来 做运项工作。上游处理器将同一个地理区域的车辆的相关信息变化发往下游处理器内的同 一个化sk。下游处理器中的每个化sk都维护着一个regionSNsMap,包含部分地理区域的车 辆标识符列表信息。为了将车辆标识符列表信息输出,另起一个线程,定时(优选每隔3秒) 遍历运个regionSNsMap,并按格式输出到Memcached。如果存在地理区域在Memcached中没 有对应的键值对,则为其新建一个数据项,否则覆盖上一次的结果。
[0140] 本领域普通技术人员可W理解:实现上述各方法实施例的全部或部分步骤可W通 过程序指令相关的硬件来完成。前述的程序可W存储于一计算机可读取存储介质中。该程 序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R〇M、RAM、磁碟或 者光盘等各种可W存储程序代码的介质。
[0141] 最后应说明的是:W上各实施例仅用W说明本发明的技术方案,而非对其限制;尽 管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依 然可W对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而运些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种移动车辆分布式聚合方法,其特征在于,包括: 获取车辆的GPS定位系统发送的所述车辆的当前GPS数据,所述当前GPS数据包括所述 车辆的经度值和炜度值; 根据所述当前GPS数据的经度值和炜度值获取所述车辆当前所处的地理区域;其中,所 述地理区域为对电子地图进行划分得到的地理区域; 根据所述车辆当前所处的地理区域的历史车辆信息,以及所述车辆当前的GPS数据,进 行聚合处理,得到所述车辆当前所处的地理区域对应的聚合处理结果;所述车辆信息包括 地理区域内的车辆总数、所有车辆的经度和以及炜度和,所述聚合处理结果包括聚合质心 和地理区域内的车辆总数; 通过所述电子地图显示所述车辆当前所处的地理区域对应的聚合处理结果。2. 根据权利要求1所述的方法,其特征在于,所述根据所述车辆当前所处的地理区域的 历史车辆信息,以及所述车辆的GPS数据,进行聚合处理,得到所述车辆当前所处的地理区 域对应的聚合处理结果之前,还包括: 获取所述车辆上一次发送历史GPS数据时、所述车辆过去所处的地理区域; 所述根据所述车辆当前所处的地理区域的历史车辆信息,以及所述车辆的GPS数据,进 行聚合处理,得到所述车辆当前所处的地理区域对应的聚合处理结果,包括: 所述车辆过去所处的地理区域与所述车辆当前所处的地理区域不相同且所述车辆当 前所在的地理区域在所述电子地图的划分区域中,则根据所述车辆的当前GPS数据对所述 车辆当前所处的地理区域的车辆信息中的车辆总数、所有车辆的经度和以及炜度和进行增 加处理,根据增加处理后的车辆信息进行聚合处理,得到所述车辆当前所处的地理区域对 应的聚合处理结果;或者 若所述车辆过去所处的地理区域与所述车辆当前所处的地理区域相同,所述车辆信息 中还包括所述车辆过去的经度值和炜度值,则获取所述车辆的当前GPS数据中的经度值与 所述车辆过去的经度值的经度差值,所述车辆的当前GPS数据中的炜度值与所述车辆过去 的维度值的维度差值,则根据所述经度差值和维度差值,对所述车辆当前所处的地理区域 的车辆信息中的所有车辆的经度和以及炜度和进行增加或减少处理,根据增加或减少处理 后的车辆信息进行聚合处理,得到所述车辆当前所处的地理区域对应的聚合处理结果。3. 根据权利要求2所述的方法,其特征在于,若所述车辆过去所处的地理区域与所述车 辆当前所处的地理区域不相同且所述车辆过去所在的地理区域在所述电子地图的划分区 域中,所述方法还包括: 根据所述车辆的当前GPS数据对所述车辆过去所处的地理区域的车辆信息中的车辆总 数、所有车辆的经度和以及炜度和进行减少处理,根据减少处理后的车辆信息进行聚合处 理,得到所述车辆过去所处的地理区域对应的聚合处理结果; 通过所述电子地图显示所述车辆过去所处的地理区域对应的聚合处理结果。4. 根据权利要求3所述的方法,其特征在于,所述方法还包括: 获取所述电子地图各地理区域的有聚合质心,计算各所述聚合质心之间的距离; 将所述距离小于预设距离的两个聚合质心对应的车辆总数、经度和、炜度和进行合并 处理,得到合并处理结果; 根据合并处理后的结果,进行聚合处理,得到所各地理区域对应的新的聚合处理结果。5. 根据权利要求3所述的方法,其特征在于,所述GPS数据中还包括所述车辆的标识符, 获取所述车辆上一次发送历史GPS数据时、所述车辆过去所处的地理区域之后,还包括: 若所述车辆过去所在的地理区域不在所述电子地图的划分区域且所述车辆过去所在 的地理区域不在所述电子地图的划分区域,则根据所述GPS数据中的所述车辆的标识符,更 新所述车辆当前所处地理区域对应的车辆标识符列表信息;或者 若所述车辆过去所在的地理区域和所述车辆当前所处的地理区域均在所述电子地图 的划分区域中且所述车辆过去所处的地理区域与所述车辆当前所处的地理区域不相同,则 根据所述GPS数据中的所述车辆的标识符,更新所述车辆当前所处地理区域对应的车辆标 识符列表信息以及所述车辆过去所处地理区域对应的车辆标识符列表信息; 若所述车辆过去所在的地理区域在所述电子地图的划分区域且所述车辆当前所处的 地理区域不在所述电子地图的划分区域内,则根据所述GPS数据中的所述车辆的标识符,更 新所述车辆过去所处地理区域对应的车辆标识符列表信息; 在缩放比例大于预设比例时,根据所述车辆标识符列表信息,通过所述电子地图还显 示各所述车辆的分布信息。6. 根据权利要求5所述的方法,其特征在于,所述根据所述当前GPS数据的经度值和炜 度值获取所述车辆当前所处的地理区域之前,还包括: 获取根据不同的缩放比例对所述电子地图进行网格划分或不规则划分得到的各缩放 比例对应的电子地图中的各地理区域;所述不规则划分是指根据行政区域进行的划分。7. 根据权利要求6所述的方法,其特征在于,当所述电子地图为网格划分时,所述根据 所述当前GPS数据的经度值和炜度值获取所述车辆当前所处的地理区域,包括: 根据所述当前GPS数据的经度值和维度值,计算所述车辆的纵坐标和横坐标,根据所述 车辆的纵坐标和横坐标,以及各网格的横坐标和纵坐标,判断所述车辆当前所处的地理区 域。8. 根据权利要求7所述的方法,其特征在于,所述根据所述当前GPS数据的经度值和维 度值,计算所述车辆的纵坐标和横坐标,包括: 通过如下公式一计算所述车辆的纵坐标和横坐标:其中,X为车辆的横坐标,y为车辆的纵坐标,In gD为地理区域所跨的经度,IatD为地理 区域所跨的炜度,swPo int.lat为电子地图的西南点的炜度值,nePo int.ln g为电子地图 的东北点的经度值。9. 根据权利要求6所述的方法,其特征在于,当所述电子地图为不规则划分时,所述根 据所述当前GPS数据的经度值和炜度值获取所述车辆当前所处的地理区域,包括: 在所述电子地图上进行网格划分; 获取各网格覆盖行政区域的覆盖关系; 根据所述当前GPS数据的经度值和炜度值,获取与网格对应的所述车辆当前所处的地 理区域; 根据所述网格覆盖行政区域的覆盖关系,以及与网格对应的所述车辆当前所处的地理 区域,确定所述车辆当前所处的与行政区域对应的地理区域。10.根据权利要求4所述的方法,其特征在于,所述根据所述车辆当前所处的地理区域 的车辆信息,以及所述车辆的GPS数据,进行聚合处理,得到所述车辆当前所处的地理区域 对应的聚合处理结果,还包括: 根据所述车辆当前所处的地理区域的历史车辆信息,以及所述车辆的GPS数据,对所述 车辆当前所处的地理区域的车辆信息进行更新,得到所述车辆当前所处的地理区域的更新 后的车辆信息; 根据所述更新后的车辆信息,进行聚合处理,得到所述车辆当前所处的地理区域对应 的聚合处理结果。
【专利摘要】本发明提供一种移动车辆分布式聚合方法,包括:获取车辆的GPS定位系统发送的车辆当前GPS数据,当前GPS数据包括车辆的经度值和纬度值;根据当前GPS数据的经度值和纬度值获取车辆当前所处的地理区域;根据车辆当前所处的地理区域的历史车辆信息,以及车辆的当前GPS数据,进行聚合处理,得到车辆当前所处的地理区域对应的聚合处理结果;车辆信息包括地理区域内的车辆总数、所有车辆的经度和以及纬度和,聚合处理结果包括聚合质心和地理区域内的车辆总数;通过电子地图显示车辆当前所处的地理区域对应的聚合处理结果。本发明提供的移动车辆分布式聚合方法解决了用户通过终端的电子地图查询实时车况时,电子地图反馈时间长的技术问题。
【IPC分类】H04W4/04, H04W4/02, H04L29/08
【公开号】CN105491124
【申请号】CN201510882786
【发明人】沃天宇, 张恿, 王家兴, 张明明, 张绍铭
【申请人】北京航空航天大学
【公开日】2016年4月13日
【申请日】2015年12月3日

最新回复(0)