本发明属于车联网领域,涉及一种经纬度分块存储和分块查询方法,实现数据分析过程中快速查询某区域内经纬度数据的需求。
背景技术:
1、如今,道路上的车辆大部分都并非孤立主体,而是车联网中的有机组成部分,车辆的行驶经纬度数据会实时按照一定频率上传至云端进行存储,随着车辆越来越多,经纬度数据也飞速增长。
2、目前,车联网大数据分析技术快速发展,数据分析需求快速增加,其中查询某个省份、某个城市、某个厂区等区域内的车辆经纬度数据需求尤为突出。而区域内车辆经纬度数据查询的传统方式是通过逐一判断车辆经纬度数据是否落入某个区域,但随着车辆经纬度数据的飞速增长,当数据达到千万级别时,逐一判断的方式需5分钟左右的时间才能查询出结果,无法满足实际的数据分析需求。因此,有必要研发一种快速查询区域内车辆经纬度数据的方法。
技术实现思路
1、(一)本发明的目的
2、本发明的目的是为了解决车辆经纬度数据达到千万级别时,查询某区域内的车辆经纬度数据时速度缓慢问题,提出一种车辆经纬度数据分区域存储与快速查询方法。
3、(二)本发明的方案
4、一种车辆经纬度数据分区域存储与快速查询方法,该方法包括以下步骤:
5、一、前置准备
6、第1.1步:确定车辆运行范围,绘制车辆运行的全局矩形边界;
7、第1.2步:将全局矩形边界长宽等分为多个局部矩形;
8、第1.3步:储存每个局部矩形区域编号及四个顶点的经纬度坐标;
9、二、数据存储
10、第2.1步:绑定需存储的车辆经纬度数据和该经纬度落入某个局部矩形区域的编号;
11、第2.2步:将局部矩形区域框的编号与落入该区域内的车辆经纬度数据内存地址建立映射;
12、三、快速查询;
13、第3.1步:确定查询区域;
14、第3.2步:确定与第3.1步中查询区域重合的多个局部矩形区域框;
15、第3.3步:获取过滤后的车辆经纬度数据;
16、第3.4步:逐一遍历判断第3.3步中过滤后的多条车辆经纬度数据是否落入查询区域中,若落入查询区域,则将该车辆经纬度点进行记录,记录的经纬度数据即为查询区域内的车辆经纬度点数据。
17、进一步地,所述步骤一中,车辆运行范围的矩形区域四个顶点分别为用西北角顶点、东北角顶点、西南角顶点、东南角顶点经纬度坐标表示。
18、进一步地,所述步骤一中,将全局矩形边界长宽等分为多个局部矩形区域的方法包括:
19、将全局矩形区域框进行长n宽m等分,n=全局矩形框长/3000,m=全局矩形框宽/2000,等分后形成n*m个局部矩形区域框。
20、进一步地,所述步骤一中,以x-y形式对n*m个局部矩形区域框进行编号,x表示为第几行、y表示为第几列,并分别存储每个局部矩形区域框的编号及四个顶点的经纬度坐标。
21、进一步地,所述步骤2.1进一步包括:将需存储的车辆经纬度数据逐一与n*m个局部矩形区域框四个顶点的经纬度坐标遍历对比,获取该车辆经纬度数据落入某个局部矩形区域框的编号。
22、进一步地,所述步骤2.1进一步包括:如果“局部矩形区域框西南角顶点纬度数值<车辆纬度数值<局部矩形区域西北角顶底纬度数值”,并且“局部矩形区域西南角顶点经度数值<车辆经度数值<矩形区域东南顶点经度数值”,则判定需存储的车辆经纬度落入该局部矩形框中,记录该局部矩形区域框的编号。
23、进一步地,所述步骤2.2进一步包括:通过hash算法将局部矩形区域框的编号与落入该区域内的车辆经纬度数据内存地址建立映射。
24、进一步地,所述步骤3.2进一步包括:通过逐一遍历判断局部矩形区域框的边与查询区域的边是否相交,如果相交则该局部矩形框与查询区域重合,将该矩形区域框编号进行记录。
25、进一步地,所述步骤3.3进一步包括:将第3.2步重合的局部矩形区域编号通过步骤2.2中建立的映射关系,查询出该区域内的车辆经纬度数据内存地址,并读取内存地址中的车辆经纬度数据集合。
26、本发明的有益效果:
27、车联网经纬度数据由于时间的连续性和无限递增性导致增长速度非常快,随着数据的增长,传统查询方式的耗时无法满足日常生产过程中的需求,本发明基于分区域存储,通过牺牲写入速度来换取查询速度,将耗时均匀分布在每次写入操作,后续通过快速定位经纬度空间位置的方法,实现在千万级数据中20s内快速查询出某一区域内的数据。
1.一种车辆经纬度数据分区域存储与快速查询方法,其特征在于,该方法包括以下步骤:
2.如权利要求1所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤一中,车辆运行范围的矩形区域四个顶点分别为用西北角顶点、东北角顶点、西南角顶点、东南角顶点经纬度坐标表示。
3.如权利要求1所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤一中,将全局矩形边界长宽等分为多个局部矩形区域的方法包括:
4.如权利要求3所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤一中,以x-y形式对n*m个局部矩形区域框进行编号,x表示为第几行、y表示为第几列,并分别存储每个局部矩形区域框的编号及四个顶点的经纬度坐标。
5.如权利要求4所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤2.1进一步包括:将需存储的车辆经纬度数据逐一与n*m个局部矩形区域框四个顶点的经纬度坐标遍历对比,获取该车辆经纬度数据落入某个局部矩形区域框的编号。
6.如权利要求5所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤2.1进一步包括:如果“局部矩形区域框西南角顶点纬度数值<车辆纬度数值<局部矩形区域西北角顶底纬度数值”,并且“局部矩形区域西南角顶点经度数值<车辆经度数值<矩形区域东南顶点经度数值”,则判定需存储的车辆经纬度落入该局部矩形框中,记录该局部矩形区域框的编号。
7.如权利要求6所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤2.2进一步包括:通过hash算法将局部矩形区域框的编号与落入该区域内的车辆经纬度数据内存地址建立映射。
8.如权利要求7所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤3.2进一步包括:通过逐一遍历判断局部矩形区域框的边与查询区域的边是否相交,如果相交则该局部矩形框与查询区域重合,将该矩形区域框编号进行记录。
9.如权利要求8所述的车辆经纬度数据分区域存储与快速查询方法,其特征在于,所述步骤3.3进一步包括:将第3.2步重合的局部矩形区域编号通过步骤2.2中建立的映射关系,查询出该区域内的车辆经纬度数据内存地址,并读取内存地址中的车辆经纬度数据集合。