发明内容
本发明实施例所要解决的技术问题是提供一种车辆历史行驶轨迹的回放方法和系统,以解决目前的车辆历史行驶轨迹回放方法计算和渲染行驶轨迹的时间较长,并且得到的行驶轨迹不准确的问题。
为了解决上述问题,本发明公开了一种车辆历史行驶轨迹的回放方法,其特征在于,包括:
服务器接收针对历史行驶数据的获取请求,所述获取请求包括行驶条件;
服务器获取满足所述行驶条件的行驶数据,所述行驶数据包括轨迹数据和事件数据;
服务器判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段;
服务器将分段后的轨迹数据和所述事件数据返回给客户端;
客户端缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹;
客户端播放所述车辆历史行驶轨迹。
可选地,所述轨迹数据包括多个轨迹点、每个轨迹点的上报时间和每个轨迹点的里程值,其中,所述轨迹点按照上报时间排序,
所述服务器判断所述轨迹数据中是否存在错误数据,包括:
从第一个轨迹点开始,依次计算相邻的两个轨迹点的里程值的差值,得到两个轨迹点之间的距离间隔s1;
计算所述相邻的两个轨迹点的上报时间的时间间隔t1;
将所述时间间隔t1与预设的车速阈值相乘,得到行驶距离s2;
计算所述距离间隔s1和所述行驶距离s2的差值;
当所述差值大于预设的距离阈值时,确定所述轨迹数据中存在错误数据,并将满足所述差值大于预设的距离阈值的两个轨迹点作为错误数据。
可选地,所述轨迹数据包括多个轨迹点和每个轨迹点的位置信息,所述事件数据包括事件发生的位置信息,
所述客户端缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹,包括:
根据分段后的轨迹数据中每个轨迹点的位置信息在地图上分段渲染车辆历史行驶轨迹;
将所述事件数据渲染为事件列表,所述事件列表中包括一个或多个事件数据;
针对事件列表中的每个事件数据,按照事件发生的位置信息将所述事件数据显示在所述车辆历史行驶轨迹上。
可选地,所述播放所述车辆历史行驶轨迹,包括:
在所述车辆历史行驶轨迹上定位车辆图标,并以预设的时间间隔更新车辆图标在所述车辆历史行驶轨迹上的位置。
可选地,所述方法还包括:
客户端当接收到播放控制指令时,依据所述播放控制指令播放所述车辆历史行驶轨迹;
其中,所述播放控制指令包括以下任意一种:暂停、停止、加速和减速。
另一方面,本发明还公开了一种车辆历史行驶轨迹的回放系统,其特征在于,包括:客户端和服务器,其中,
服务器包括:
接收模块,用于接收针对历史行驶数据的获取请求,所述获取请求包括行驶条件;
获取模块,用于获取满足所述行驶条件的行驶数据,所述行驶数据包括轨迹数据和事件数据;
分段模块,用于判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段;
返回模块,用于将分段后的轨迹数据和所述事件数据返回给客户端;
客户端包括:
生成模块,用于缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹;
播放模块,用于播放所述车辆历史行驶轨迹。
可选地,所述轨迹数据包括多个轨迹点、每个轨迹点的上报时间和每个轨迹点的里程值,其中,所述轨迹点按照上报时间排序,
所述分段模块包括:
距离计算子模块,用于从第一个轨迹点开始,依次计算相邻的两个轨迹点的里程值的差值,得到两个轨迹点之间的距离间隔s1;
时间计算子模块,用于计算所述相邻的两个轨迹点的上报时间的时间间隔t1;
相乘子模块,用于将所述时间间隔t1与预设的车速阈值相乘,得到行驶距离s2;
差值计算子模块,用于计算所述距离间隔s1和所述行驶距离s2的差值;
确定子模块,用于当所述差值大于预设的距离阈值时,确定所述轨迹数据中存在错误数据,并将满足所述差值大于预设的距离阈值的两个轨迹点作为错误数据。
可选地,所述轨迹数据包括多个轨迹点和每个轨迹点的位置信息,所述事件数据包括事件发生的位置信息,
所述生成模块包括:
轨迹渲染子模块,用于根据分段后的轨迹数据中每个轨迹点的位置信息在地图上分段渲染车辆历史行驶轨迹;
事件渲染子模块,用于将所述事件数据渲染为事件列表,所述事件列表中包括一个或多个事件数据;
显示子模块,用于针对事件列表中的每个事件数据,按照事件发生的位置信息将所述事件数据显示在所述车辆历史行驶轨迹上。
可选地,所述播放模块在所述车辆历史行驶轨迹上定位车辆图标,并以预设的时间间隔更新车辆图标在所述车辆历史行驶轨迹上的位置。
可选地,所述客户端还包括:
控制模块,用于当接收到播放控制指令时,依据所述播放控制指令播放所述车辆历史行驶轨迹;
其中,所述播放控制指令包括以下任意一种:暂停、停止、加速和减速。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中服务器在接收到针对历史行驶数据的获取请求之后,获取满足所述行驶条件的行驶数据,并且进一步判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段,最后将分段后的轨迹数据和所述事件数据返回给客户端,客户端即可缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹,并播放所述车辆历史行驶轨迹。
本发明实施例中服务器并不是将所有轨迹数据都返回给客户端,而是通过服务器对轨迹数据进行分段,删除其中的错误数据,从而保证将正确的数据返回给客户端,因此,根据这些数据生成的行驶轨迹更加准确;并且返回的数据量较小,从而可以节省客户端计算和渲染行驶轨迹的时间。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一:
参照图1,示出了本发明实施例一所述的一种车辆历史行驶轨迹的回放方法的流程图,所述方法可以包括:
步骤100,服务器接收针对历史行驶轨迹数据的获取请求,所述获取请求包括行驶条件。
本发明实施例中,可以通过车辆行驶记录仪记录车辆在行驶过程中的行驶速度、时间、里程,以及有关车辆行驶的其他状态信息,车辆行驶记录仪可以将这些信息作为车辆历史行驶数据上报至服务器。
当客户端向服务器发起针对历史行驶轨迹数据的获取请求之后,服务器即可依据所述获取请求获取对应的行驶数据。
本发明实施例中,所述获取请求可以包括行驶条件,当希望查看车辆的历史行驶轨迹时,可以在客户端输入行驶条件,然后客户端根据该行驶条件向服务器发起获取请求。
在所述行驶数据中包括了车辆的行驶时间信息,因此,在本发明实施例中所述行驶条件可以为起止时间,即希望查看哪个时间段中的历史行驶轨迹,例如所述行驶条件可以为2012/12/26 12:00:00-2012/12/27 12:00:00。当然,所述行驶条件还可以为其他信息,例如起止地点,本发明实施例对此并不加以限制。
步骤102,服务器获取满足所述行驶条件的行驶数据,所述行驶数据包括轨迹数据和事件数据。
服务器在接收到客户端发起的获取请求之后,即可依据所述获取请求中的行驶条件从车辆行驶记录仪上报的行驶数据中获取满足所述行驶条件的行驶数据。
例如,如果所述行驶条件为起止时间(例如2012/12/2612:00:00-2012/12/27 12:00:00),则服务器即可从车辆行驶记录仪上报的行驶数据中获取2012/12/26 12:00:00-2012/12/27 12:00:00这一天内的行驶数据。
本发明实施例中,所述行驶数据可以包括轨迹数据和事件数据,依据所述轨迹数据可以得到车辆的历史行驶轨迹,依据所述事件数据可以得知车辆历史行驶过程中所发生的事件。
其中,所述轨迹数据可以包括:多个轨迹点、每个轨迹点的上报时间、每个轨迹点的里程值、每个轨迹点的位置信息,以及每个轨迹点对应的车速、方向、转速,等等。
所述事件数据可以包括:事件发生的位置信息(例如经纬度信息)、事件类型(如停车、告警、熄火、启动等)、事件发生的时间、事件的处理级别(处理级别可以依据事件的特性设定的,比如把告警设定为比较高的级别,则该类事件在显示时会使用更为醒目的图标),等等。
步骤104,服务器判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段。
服务器在获取到满足所述行驶条件的行驶数据之后,并不是直接将所有的行驶数据返回给客户端,而是可以进一步对其中的轨迹数据进行处理,判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段。
本发明实施例中,所述轨迹数据中的轨迹点可以按照上报时间排序,例如,可以将上报时间早的轨迹点排在前面,将上报时间晚的轨迹点排在后面。
该步骤104中所述服务器判断所述轨迹数据中是否存在错误数据的过程可以包括:
a1,从第一个轨迹点开始,依次计算相邻的两个轨迹点的里程值的差值,得到两个轨迹点之间的距离间隔s1。
该过程中可以用相邻的两个轨迹点中后一个轨迹点的里程值减去前一个轨迹点的里程值,得到两点间的距离间隔s1。
a2,计算所述相邻的两个轨迹点的上报时间的时间间隔t1。
该过程中可以用相邻的两个轨迹点中后一个轨迹点的上报时间减去前一个轨迹点的上报时间,得到两点间的时间间隔t1。
a3,将所述时间间隔t1与预设的车速阈值相乘,得到行驶距离s2。
本发明实施例中,可以设置一个车速阈值,该车速阈值可以为理论上的最大车速,然后将所述时间间隔t1与所述车速阈值相乘之后,得到的行驶距离s2即可认为是理论上在时间t1内可能行驶的最大距离。
对于上述的车速阈值,本领域技术人员根据实际经验进行相关处理即可,例如可以设置为120km/h,本发明实施例对此并不加以限制。
a4,计算所述距离间隔s1和所述行驶距离s2的差值。
a5,当所述差值大于预设的距离阈值时,确定所述轨迹数据中存在错误数据,并将满足所述差值大于预设的距离阈值的两个轨迹点作为错误数据。
本发明实施例中,还可以设置一个距离阈值,该距离阈值可以为所述距离间隔s1和所述行驶距离s2之间的一个误差范围,如果超出了该误差范围,则可以认为其不符合实际。
对于上述的距离阈值,本领域技术人员根据实际经验进行相关处理即可,本发明实施例对此并不加以限制。
因此,本发明实施例中当所述距离间隔s1和所述行驶距离s2的差值小于或等于预设的距离阈值时,则可以认为对应的轨迹点为可信数据;当所述差值大于预设的距离阈值时,则可以确定所述轨迹数据中存在错误数据,并可以将满足所述差值大于预设的距离阈值的两个轨迹点作为错误数据。
本发明实施例中,为了使最后得到的车辆历史行驶轨迹更加准确,当所述轨迹数据中存在错误数据时,可以删除所述错误数据,对所述轨迹数据进行分段。
上述错误数据有可能是因为一段时间内车辆行驶记录仪故障而导致没有上报数据,这样的数据如果不删除,即不进行分段,在客户端展示时就会出现两个相聚较远的点突兀的有连线,车辆不是行驶在路上(比如直接跨域一片楼房)。分段的作用就是在两个轨迹点之间的数据没有上报或误差较大时,合理的分割,从而消除上报数据的一些误差和跳点(跳点可以指上报数据的位置信息相隔较大,在合理时间和车速条件下不可能行驶那么大的距离),以便客户端展示的更合理。
步骤106,服务器将分段后的轨迹数据和所述事件数据返回给客户端。
服务器在经过上述步骤104对轨迹数据进行分段之后,即可以将分段后的轨迹数据和所述事件数据返回给客户端。
由于分段后的轨迹数据中删除了错误数据,从而分段后的轨迹数据可以更加准确地描述车辆的行驶轨迹;并且,删除了错误数据之后的轨迹数据的数据量较小,因此可以降低客户端计算和渲染行驶轨迹的时间。
步骤108,客户端缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹。
本发明实施例中,客户端在接收到服务器返回的分段后的轨迹数据和事件数据之后,即可缓存分段后的轨迹数据和事件数据,并且依据所述轨迹数据和事件数据生成车辆历史行驶轨迹。
该步骤108可以包括:
b1,根据分段后的轨迹数据中每个轨迹点的位置信息在地图上分段渲染车辆历史行驶轨迹。
本发明实施例中可以用不同的颜色在地图上分段渲染车辆历史行驶轨迹。
b2,将所述事件数据渲染为事件列表,所述事件列表中包括一个或多个事件数据。
客户端对所述事件数据进行分析,可以将所述事件数据渲染为事件列表,所述事件列表中可以包括一个或多个事件数据,记录了事件发生的位置信息、事件类型、事件发生的时间、事件的处理级别等信息。
b3,针对事件列表中的每个事件数据,按照事件发生的位置信息将所述事件数据显示在所述车辆历史行驶轨迹上。
针对事件列表中的每个事件数据,可以按照事件发生的位置信息(经纬度信息)将所述事件数据显示在所述车辆历史行驶轨迹上。例如可以利用图标在车辆历史行驶轨迹上标绘发生事件的位置,并且还可以将事件对应的描述信息(事件类型、事件发生的时间、事件的处理级别等)显示在车辆历史行驶轨迹对应的部分。
对于事件数据,目前主要是通过在播放过程中对发生事件的时间段内的所有数据进行分析后得到结论,每次分析的运算量较大,因此,本发明实施例中设计了一次分析多次返回机制,即通过客户端对所述事件数据进行分析,然后将分析后的事件数据通过缓存技术缓存整体计算结果,并分段显示,从而保证了数据播放的流畅性。
步骤110,客户端播放所述车辆历史行驶轨迹。
本发明实施例中,当用户点击播放按钮时,客户端即可播放所述车辆历史行驶轨迹。
具体的,该步骤110在播放时可以包括:
在所述车辆历史行驶轨迹上定位车辆图标,并以预设的时间间隔更新车辆图标在所述车辆历史行驶轨迹上的位置。
本发明实施例中,客户端可以依据轨迹数据中轨迹点的位置信息自动在所述车辆历史行驶轨迹上定位车辆图标。在播放过程中,还可以同步显示轨迹数据对应的车辆行驶状态(例如车速、方向等)。
对于上述的时间阈值,本领域技术人员根据实际经验进行相关处理即可,本发明实施例对此并不加以限制。
步骤112,客户端当接收到播放控制指令时,依据所述播放控制指令播放所述车辆历史行驶轨迹。
在播放过程中,如果想要对播放过程进行控制,即可以发起播放控制指令,客户端即可依据所述播放控制指令播放所述车辆历史行驶轨迹。
其中,所述播放控制指令可以包括以下任意一种:暂停、停止、加速和减速。
如图2所示,为车辆历史行驶轨迹的播放示意图,针对该图可以执行以下操作:
1、在输入框中输入行驶条件(即起止时间),生成对应的车辆历史行驶轨迹。
图2中为2012/12/20 14:02:18-2012/12/21 14:02:18,即需要查看这一天的车辆历史行驶轨迹。
2、点击播放按钮,开始进行播放。
在行驶轨迹上标绘车辆图标,以一定的时间间隔重绘车辆图标在行驶轨迹上的位置,并在车辆状态区同步更新车辆的行驶状态(例如图2中的时间、车速、瞬时耗油、方向、转速、轨迹点、轨迹里程数等)。
3、点击暂停按钮,暂停车辆历史行驶轨迹的播放。
4、点击停止按钮,停止车辆历史行驶轨迹的播放,并将播放进度条和车辆图标还原到最初位置。
5、点击加速按钮,加快播放速度。
6、点击减速按钮,减慢播放速度。
本发明实施例中,可以设置速度的档位,例如可以设置1x、5x、10x、20x和50x这5个速度档,本发明实施例对此并不加以限制。
如图3所示,为车辆历史行驶轨迹中事件的示意图。从图3可以看出发生的事件在车辆历史行驶轨迹中位置(即轨迹上标有警告图标的位置),并且还包括有该事件的一些描述信息,例如事件类型为油压报警,事件时间等等,本发明实施例在此不再详细论述。
在具体的应用中,例如一辆大巴车在2012.12.20从车站出发前往目的地,全程行驶了4个小时。过了几天大巴公司的管理人员想查看该车在那一天的行驶情况,于是可以回放车辆轨迹,输入想要查看的时间,点击查询,便得到了该车在2012.12.20这一天的行驶记录。通过点击其中的按钮,管理员可以快速地查看车辆的行驶状态,如果在某个时间段,管理员发现车辆在一个位置没有动,便可根据这一现象去了解当时该车的情况(例如,线上可以进入车辆管理,线路管理等模块,查看该车的线路运行设置情况,线下则可以自行询问相关车辆管理单位)。
本发明实施例所述的车辆历史行驶轨迹的回放方法主要可以包括以下优点:
展现上:模拟多媒体播放器,可视化动态播放车辆行驶轨迹,可以任意加快、减慢播放速度,任意拖拽播放进度条查看车辆行驶中各个时间点状态。
数据处理上:智能处理行驶记录仪上报的车辆位置数据的误差,以及由于行驶记录仪开、关状态导致的轨迹中断问题。高效分析轨迹数据,在大数据量的情况下,以不影响展现为条件,通过对轨迹点的数据量进行精减,加快了客户端渲染行驶轨迹的速度,加快了客户端对查询行驶轨迹这一操作的响应速度;
对于相关的事件点(例如停靠点、告警点等),设计了一次分析多次返回机制,通过后台缓存技术缓存整体计算结果,分段展示前台,保证前台数据展现流畅。
实施例二:
参照图4,示出了本发明实施例二所述的一种车辆历史行驶轨迹的回放系统的结构框图,所述系统可以包括客户端40和服务器42。
其中,所述服务器40可以包括:接收模块401、获取模块402、分段模块403和返回模块404。
接收模块401,用于接收针对历史行驶数据的获取请求,所述获取请求包括行驶条件;
获取模块402,用于获取满足所述行驶条件的行驶数据,所述行驶数据包括轨迹数据和事件数据;
其中,所述轨迹数据可以包括:多个轨迹点、每个轨迹点的上报时间、每个轨迹点的里程值、每个轨迹点的位置信息,以及每个轨迹点对应的车速、方向、转速,等等。
所述事件数据可以包括:事件发生的位置信息(例如经纬度信息)、事件类型(如停车、告警、熄火、启动等)、事件发生的时间、事件的处理级别(处理级别可以依据事件的特性设定的,比如把告警设定为比较高的级别,则该类事件在显示时会使用更为醒目的图标),等等。
分段模块403,用于判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段;
本发明实施例中,所述轨迹点可以按照上报时间排序,所述分段模块403可以包括:
距离计算子模块,用于从第一个轨迹点开始,依次计算相邻的两个轨迹点的里程值的差值,得到两个轨迹点之间的距离间隔s1;
时间计算子模块,用于计算所述相邻的两个轨迹点的上报时间的时间间隔t1;
相乘子模块,用于将所述时间间隔t1与预设的车速阈值相乘,得到行驶距离s2;
差值计算子模块,用于计算所述距离间隔s1和所述行驶距离s2的差值;
确定子模块,用于当所述差值大于预设的距离阈值时,确定所述轨迹数据中存在错误数据,并将满足所述差值大于预设的距离阈值的两个轨迹点作为错误数据。
返回模块404,用于将分段后的轨迹数据和所述事件数据返回给客户端;
所述客户端42可以包括:生成模块421、播放模块422和控制模块423。
生成模块421,用于缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹;
所述生成模块421可以包括:
轨迹渲染子模块,用于根据分段后的轨迹数据中每个轨迹点的位置信息在地图上分段渲染车辆历史行驶轨迹;
事件渲染子模块,用于将所述事件数据渲染为事件列表,所述事件列表中包括一个或多个事件数据;
显示子模块,用于针对事件列表中的每个事件数据,按照事件发生的位置信息将所述事件数据显示在所述车辆历史行驶轨迹上。
播放模块422,用于播放所述车辆历史行驶轨迹;
所述播放模块可以在所述车辆历史行驶轨迹上定位车辆图标,并以预设的时间间隔更新车辆图标在所述车辆历史行驶轨迹上的位置。
控制模块423,用于当接收到播放控制指令时,依据所述播放控制指令播放所述车辆历史行驶轨迹;
其中,所述播放控制指令可以包括以下任意一种:暂停、停止、加速和减速。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例中服务器在接收到针对历史行驶数据的获取请求之后,获取满足所述行驶条件的行驶数据,并且进一步判断所述轨迹数据中是否存在错误数据,当存在错误数据时,删除所述错误数据,对所述轨迹数据进行分段,最后将分段后的轨迹数据和所述事件数据返回给客户端,客户端即可缓存分段后的轨迹数据和事件数据,生成车辆历史行驶轨迹,并播放所述车辆历史行驶轨迹。
本发明实施例中服务器并不是将所有轨迹数据都返回给客户端,而是通过服务器对轨迹数据进行分段,删除其中的错误数据,从而保证将正确的数据返回给客户端,因此,根据这些数据生成的行驶轨迹更加准确;并且返回的数据量较小,从而可以节省客户端计算和渲染行驶轨迹的时间。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种车辆历史行驶轨迹的回放方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。