一种北斗位置流数据实时空间聚合方法技术

技术编号:24708087 阅读:174 留言:0更新日期:2020-06-30 23:59
本发明专利技术提出一种北斗位置流数据实时空间聚合方法,包括如下步骤:步骤1:实时流数据接入:通过网络通信方式,将由北斗终端生成的实时位置数据以流数据的方式接入;步骤2:数据入库:将接收到实时位置数据以设备Id,即目标Id为主键更新至实时表中,表中包含geohashNum字段,存储该位置坐标对应的Geohash整形值;步骤3:聚合查询:根据输入的地理范围和聚合层级,计算出若干聚合单元父区域,针对每个聚合单元父区域,从实时表中查询geohashNum字段值处于Geohash值区间内的记录数量,作为该单元父区域的聚合结果;步骤4:聚合结果可视化:将聚合结果以<瓦片序号,数据量>列表的形式返给前端,前端根据瓦片序号计算出瓦片范围,将瓦片范围绘制到地图上,并根据数据量作为颜色填充值。

【技术实现步骤摘要】
一种北斗位置流数据实时空间聚合方法
本专利技术涉及地理信息
,具体的涉及一种基于流数据的实时空间聚合方法。
技术介绍
随着北斗卫星全球组网的提速,国内传感器产品的不断成熟、成本不断地下降,北斗终端能够在各种智能设备上大规模、高密度使用,以北斗为基础的位置服务与云计算、大数据、物联网、人工智能等技术无缝衔接,为各行业的生产和人民的生活提供了极大的便利。大规模的北斗数量,高密度的定位使用频率,导致每天有海量的北斗位置数据新增,北斗实时位置数据具备时空属性,对时效性和位置准备性都具备较高的要求。一个实时数据管理系统多则承担百万级的北斗终端量级下的数据接入和管理,时空数据可视化是时空大数据重要的应用场景,在一定区域内,如果位置点较多,会大大增加前后端的网络IO开销和客户端绘制时间,造成极差的用户体验。等边长网格聚合是一种常见的空间聚合方法,根据当前的地图比例尺,确定单元网格的粒度,将屏幕范围分为若干个大小一致的矩形网格,计算出每个内的位置点数量,前端将网格的范围和数量信息可视化,可解决前端的瓶颈。传统的实时位置数据聚合方案,将连续的数据流从时间维度划分成等长的时间窗口,每个时间窗口内的数据做网格聚合,将聚合数据存储至聚合表中,通过聚合表的不断更新,实现聚合可视化效果的不断更新。该方案需要根据业务需求,提前确定层级范围(minLevel-maxLevel)。前端根据瓦片序号计算出瓦片范围,将瓦片范围绘制到地图上,并根据数据条数作为颜色填充值。现有的流数据实时空间聚合方法实时性不高:采用固定时间窗口方式聚合,聚合结果不是实时更新,而是一个时间窗口周期批次计算,有一定时延。且层级范围固定:必须提前确定聚合层级范围,根据范围计算聚合结果,如果层级范围改变,需要修改配置或者程序结构,灵活性不够。最后,额外存储开销较大:聚合结果存储至聚合表,若数据覆盖的空间范围较大,或者聚合层级范围较大,导致聚合表中会存在大量的聚合结果数据,这个数据规模甚至不小于位置数据本身,造成极大的额外存储开销(数据膨胀最高达100%)。
技术实现思路
为了解决以上技术问题,本专利技术提出一种新型的实时位置数据聚合方法,以较低的时间复杂度和空间复杂度,实现海量北斗位置流数据的实时聚合。本专利技术提出的一种北斗位置流数据实时空间聚合方法,包括如下步骤:步骤1:实时流数据接入:通过网络通信方式,将由北斗终端生成的实时位置数据以流数据的方式接入;步骤2:数据入库:将接收到实时位置数据以设备Id,即目标Id为主键更新至实时表中,表中包含geohashNum字段,存储该位置坐标对应的geohash值;步骤3:聚合查询:根据输入的地理范围和聚合层级,计算出若干聚合单元区域,针对每个聚合单元区域,从实时表中查询geohashNum字段值处于geohash值区间内的记录数量,作为该单元区域的聚合结果;步骤4:聚合结果可视化:将聚合结果以<瓦片序号,数据量>列表的形式返给前端,前端根据瓦片序号计算出瓦片范围,将瓦片范围绘制到地图上,并根据数据量作为颜色填充值。进一步的,所述步骤2的数据入库具体包括:步骤2.1、创建实时表:在数据库中创建实时表,该表字段包括设备Id,即目标Id、位置时间、位置经度、位置纬度、geohashNum字段;其中,设备Id为主键,保证每个设备即目标在库中不会存在多条记录,为geohashNum创建索引,以方便后续查询;步骤2.2、对于每条接收到的实时位置数据,以设备id为区分更新至实时表,根据位置经度、位置纬度计算numberOfBits为41的Geohash值,以十进制长整形的格式保存至实时表的geohashNum字段中。进一步的,所述步骤3的聚合查询具体包括:步骤3.1、后端接收前端的聚合查询请求,前端传入屏幕的地理范围和瓦片层级;步骤3.2、基于EPSG4326网格集与Geohash区域的空间范围对应关系,将基于瓦片的空间聚合转换为基于Geohash区域的空间聚合,计算出该瓦片层级对应的Geohash有效长度numberOfBits,进而计算出有效长度为numberOfBits且与地理范围相交的多个Geohash区域的十进制长整形值;步骤3.3、Geohash父区域的有效长度低于子区域的有效长度,每个实时位置数据的geohashNum代表了该数据所在的有效长度最高的Geohash区域编码。对于与输入空间范围相交的所有父区域R,计算出该区域Geohash编码的长整型值A及与其同有效长度后续区域的长整型值B,若实时表中一条记录的geohashNum的值大于等于A且小于B,则说明该记录的坐标处于区域R。基于以上方法,可通过多个一维整形区间查询实现多个父Geohash区域内位置数据的查询,进一步计算每个与输入范围相交的父区域内的目标数量;步骤3.4、计算相交的父Geohash区域中对应的瓦片序号;步骤3.5、将聚合数据以<瓦片序号,目标数量>列表的形式返回给前端。所述步骤1的实时流数据接入,通过网络通信方式包括通过UDP、TCP、Kafka方式进行通信。聚合的网格空间划分规则参照EPSG4326网格集,即在不同的层级下,聚合网格单元与该网格集下的单元瓦片范围一致。numOfBits为奇数的Geohash区域范围与EPSG4326网格集的特定层级单元网格范围完全贴合,Geohash有效长度与网格集层级的换算公式为:层级level*2+1=numberOfBits。有益效果1、本专利技术采用基于Geohash的实时聚合方案,不要提前确定层级范围,也不需要分批计算聚合结果。2、提高聚合的实时性:聚合结果基于最新的位置数据实时计算得出,而不再有时延。3、任意层级范围聚合:可按照任意空间范围、层级范围聚合,不需要提前指定,因为聚合结果是实时计算的;4、附加存储开销较小:不再需要聚合表,只需在实时表中增加一个长整形字段,数据膨胀率不超过20%。经实践验证,全球范围内百万设备(目标)下,全球任意层级、任意区域的聚合请求平均相应时间在1秒以内,在保证聚合时效性、存储空间节约性的基础上,表现出了较为优秀的性能。附图说明图1:网格聚合可视化效果;图2:Geohash填充曲线示意图;图3:不同numberOfBits下Geohash区域划分示意图;图4:EPSG4326网格集范围与层次划分示意图;图5:Geohash区域与EPSG4326瓦片的关系示意图;图6:Geohash父子区域数值编码关系示意图;图7:本专利技术的方法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本专利技术的一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本本文档来自技高网
...

【技术保护点】
1.一种北斗位置流数据实时空间聚合方法,其特征在于:包括如下步骤:/n步骤1:实时流数据接入:通过网络通信方式,将由北斗终端生成的实时位置数据以流数据的方式接入;/n步骤2:数据入库:将接收到实时位置数据以设备Id,即目标Id为主键更新至实时表中,表中包含geohashNum字段,存储该位置坐标对应的geohash值;/n步骤3:聚合查询:根据输入的地理范围和聚合层级,计算出若干聚合单元父区域,针对每个聚合单元父区域,从实时表中查询geohashNum字段值处于Geohash值区间内的记录数量,作为该单元父区域的聚合结果;/n步骤4:聚合结果可视化:将聚合结果以<瓦片序号,数据量>列表的形式返给前端,前端根据瓦片序号计算出瓦片范围,将瓦片范围绘制到地图上,并根据数据量作为颜色填充值。/n

【技术特征摘要】
1.一种北斗位置流数据实时空间聚合方法,其特征在于:包括如下步骤:
步骤1:实时流数据接入:通过网络通信方式,将由北斗终端生成的实时位置数据以流数据的方式接入;
步骤2:数据入库:将接收到实时位置数据以设备Id,即目标Id为主键更新至实时表中,表中包含geohashNum字段,存储该位置坐标对应的geohash值;
步骤3:聚合查询:根据输入的地理范围和聚合层级,计算出若干聚合单元父区域,针对每个聚合单元父区域,从实时表中查询geohashNum字段值处于Geohash值区间内的记录数量,作为该单元父区域的聚合结果;
步骤4:聚合结果可视化:将聚合结果以<瓦片序号,数据量>列表的形式返给前端,前端根据瓦片序号计算出瓦片范围,将瓦片范围绘制到地图上,并根据数据量作为颜色填充值。


2.根据权利要求1所述的一种北斗位置流数据实时空间聚合方法,其特征在于:
所述步骤2的数据入库具体包括:
步骤2.1、创建实时表:在数据库中创建实时表,该表字段包括设备Id,即目标Id、位置时间、位置经度、位置纬度、geohashNum字段;其中,设备Id为主键,保证每个设备即目标在库中不会存在多条记录,为geohashNum创建索引,以方便后续查询;
步骤2.2、对于每条接收到的实时位置数据,以设备id为区分更新至实时表,根据位置经度、位置纬度计算有效长度为41的Geohash值,以十进制长整形的格式保存至实时表的geohashNum字段中。


3.根据权利要求1所述的一种北斗位置流数据实时空间聚合方法,其特征在于:
所述步骤3的聚合查询具体包括:
步骤3.1、后端接收前端的聚合查询请求,前端传入屏幕的地理范围和瓦片层级;
步骤3.2、基于EPSG4326网格集与Geohash区域的空间范围对应关系,将基于瓦片的空间聚合转换为基于Geohash区...

【专利技术属性】
技术研发人员:杨光辉曹梓崎赵普阳王焰辉
申请(专利权)人:中科星图股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1