基于空间索引、KMeans聚合算法的要素聚合方法、系统、介质及设备技术方案

技术编号:35135039 阅读:34 留言:0更新日期:2022-10-05 10:09
本发明专利技术提供了一种基于空间索引、KMeans聚合算法的要素聚合方法、系统、介质及设备,包括:步骤S1:使用RBush空间索引算法为渲染的点数据建立空间索引;步骤S2:获取当前地图帧状态对象,基于空间索引,根据当前地图范围、缩放层级查询过滤当前地图范围中的要素;步骤S3:过滤后的要素执行Kmeans聚合运算;步骤S4:缓存帧聚合要素的状态,执行缓动函数,实现聚合动画,进行地图渲染;当地图范围发生变化时,则重复触发步骤S2至步骤S4。重复触发步骤S2至步骤S4。重复触发步骤S2至步骤S4。

【技术实现步骤摘要】
基于空间索引、KMeans聚合算法的要素聚合方法、系统、介质及设备


[0001]本专利技术涉及,具体地,涉及基于空间索引、KMeans聚合算法的要素聚合方法、系统、介质及设备,更为具体地,涉及基于RBush空间索引以及KMeans聚合算法的要素聚合方法、系统、介质及设备,一种百万级空间数据量的,面向前端的,基于RBush索引算法的聚合算法即超聚合算法,超聚合算法是一个非常高效的JavaScript库,用于浏览器端地理空间点的聚合。

技术介绍

[0002]在项目应用中,前端WEBGIS经常有在浏览器端呈现几十万级甚至百万级点位的需求,通常二维GIS底层是使用canvas绘制来渲染点位的,渲染不到十万个点的数量,性能尚可,一旦数据量达到几十万甚至百万,则性能明显下降,甚至导致浏览器卡死,带来不好的用户体验。
[0003]目前主流GIS的WEB客户端都是在地图每一帧的渲染,每当地图的可视范围、缩放级别发生变化,再通过坐标转换、聚合算法来进行聚合计算的,如图1所示。地图可视范围用来过滤图层要素,减少渲染的要素数量,坐标转换函数通常用来将经纬度坐标转换为像素坐标,然后根据聚合像素距离,计算在该半径范围内的所有要素,并将要素进行归类并认为是一类聚合要素,再根据每一类要素计算一个聚合要素的中心点坐标,并将这一类要素作为属性添加到聚合要素中,前端只展示聚合的要素,通过过滤筛选、聚合,前端需要呈现的数据量就会大大减少,性能就会提升。
[0004]传统聚合存在弊端,未能给数据建立空间索引,如果数据量过于庞大,遍历数据进行聚合的运算会比较耗时,影响性能。
[0005]超聚合的优势,在于使用了RBush空间索引算法,不再对这个数据进行遍历,而是对空间数据建立空间索引,大大减少了数据的访问量。空间索引是一种用于点和矩形的特殊数据结构,非常高效地执行边界框中的所有要素的查询,比在所有要素上循环快数百倍。它最常用于地图和数据可视化。这样聚合计算耗时就会减少很多,提升了聚合运算的性能。
[0006]专利文献CN114282534A(申请号:202111651925.9)公开了一种基于要素信息抽取的气象灾害事件聚合方法。本专利技术通过分析气象灾害事件信息在自然语言与气象灾害事件信息系统中表达机制差异,归纳总结气象灾害信息的语言描述特点,构建面向中文文本的气象灾害信息表达体系,并制定具体的标注模式和规范,建立大规模的中文文本标注实验数据,以供机器学习进行灾害事件信息中相关信息的抽取;根据气象灾害信息来源发布特点,选取合适所需信息源进行数据采集,制定自动化采集方法,以获取气象灾害事件的文本数据;随后根据标注数据,结合机器学习算法与模型,对气象灾害事件信息中的时间信息、地名信息、事物信息、人物信息和事件信息进行抽取;以抽取的时间、地名、事物、人物和事件信息作为基础,根据构建的气象灾害特征词库以及抽取信息中的灾害时间范围、灾害地点、受灾详情以及事物关键词和灾情信息阈值等数据,结合事件聚合流程和判断逻辑,将同
一气象灾害事件的信息进行聚合。

技术实现思路

[0007]针对现有技术中的缺陷,本专利技术的目的是提供一种基于空间索引、KMeans聚合算法的要素聚合方法、系统、介质及设备。
[0008]根据本专利技术提供的一种基于空间索引以及KMeans聚合算法的要素聚合方法,其特征在于,包括:
[0009]步骤S1:使用RBush空间索引算法为渲染的点数据建立空间索引;
[0010]步骤S2:获取当前地图帧状态对象,基于空间索引,根据当前地图范围、缩放层级查询过滤当前地图范围中的要素;
[0011]步骤S3:过滤后的要素执行Kmeans聚合运算;
[0012]步骤S4:缓存帧聚合要素的状态,执行缓动函数,实现聚合动画,进行地图渲染;当地图范围发生变化时,则重复触发步骤S2至步骤S4。
[0013]优选地,所述步骤S1采用:
[0014]步骤S1.1:安装RBush空间类库,创建RBush类实例对象;
[0015]步骤S1.2:根据点要素的范围,使用RBush实例对象的insert方法插入数据生成空间索引。
[0016]优选地,所述步骤S2采用:获取当前地图帧状态对象,根据当前地图范围、缩放层级,使用RBush实例对象的search方法查询过滤当前地图范围中的要素。
[0017]优选地,所述步骤S3采用:以空间中k个点为中心进行聚类,对最靠近他们的对象归类;通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
[0018]根据本专利技术提供的一种基于空间索引以及KMeans聚合算法的要素聚合系统,包括:
[0019]模块M1:使用RBush空间索引算法为渲染的点数据建立空间索引;
[0020]模块M2:获取当前地图帧状态对象,基于空间索引,根据当前地图范围、缩放层级查询过滤当前地图范围中的要素;
[0021]模块M3:过滤后的要素执行Kmeans聚合运算;
[0022]模块M4:缓存帧聚合要素的状态,执行缓动函数,实现聚合动画,进行地图渲染;当地图范围发生变化时,则重复触发模块M2至模块M4。
[0023]优选地,所述模块M1采用:
[0024]模块M1.1:安装RBush空间类库,创建RBush类实例对象;
[0025]模块M1.2:根据点要素的范围,使用RBush实例对象的insert方法插入数据生成空间索引。
[0026]优选地,所述模块M2采用:获取当前地图帧状态对象,根据当前地图范围、缩放层级,使用RBush实例对象的search方法查询过滤当前地图范围中的要素。
[0027]优选地,所述模块M3采用:以空间中k个点为中心进行聚类,对最靠近他们的对象归类;通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
[0028]根据本专利技术提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述所述的方法的步骤。
[0029]根据本专利技术提供的一种基于空间索引以及KMeans聚合算法的要素聚合设备,包括:控制器;
[0030]所述控制器包括所述的存储有计算机程序的计算机可读存储介质,所述控制器包括上述所述的基于空间索引以及KMeans聚合算法的要素聚合系统。
[0031]与现有技术相比,本专利技术具有如下的有益效果:
[0032]1、本专利技术使用了RBush空间索引算法,不再对这个数据进行遍历,而是对空间数据建立空间索引,大大减少了数据的访问量;
[0033]2、基于空间索引的聚合计算耗时就会减少很多,提升了聚合运算的性能;
[0034]3、本专利技术采用了一种基于空间索引以及Kmeans聚合算法的要素聚合方法,实现了局部最优,在处理大数据集的时候,该算法可以保证较好的伸缩性;
[0035]4、通过对当前地图聚合帧状态的保存,引入了缓动函数的特性,实现了聚合的动画效果,增强了用户体验。
附图说明<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于空间索引以及KMeans聚合算法的要素聚合方法,其特征在于,包括:步骤S1:使用RBush空间索引算法为渲染的点数据建立空间索引;步骤S2:获取当前地图帧状态对象,基于空间索引,根据当前地图范围、缩放层级查询过滤当前地图范围中的要素;步骤S3:过滤后的要素执行Kmeans聚合运算;步骤S4:缓存帧聚合要素的状态,执行缓动函数,实现聚合动画,进行地图渲染;当地图范围发生变化时,则重复触发步骤S2至步骤S4。2.根据权利要求1所述的基于空间索引以及KMeans聚合算法的要素聚合方法,其特征在于,所述步骤S1采用:步骤S1.1:安装RBush空间类库,创建RBush类实例对象;步骤S1.2:根据点要素的范围,使用RBush实例对象的insert方法插入数据生成空间索引。3.根据权利要求2所述的基于空间索引以及KMeans聚合算法的要素聚合方法,其特征在于,所述步骤S2采用:获取当前地图帧状态对象,根据当前地图范围、缩放层级,使用RBush实例对象的search方法查询过滤当前地图范围中的要素。4.根据权利要求1所述的基于空间索引以及KMeans聚合算法的要素聚合方法,其特征在于,所述步骤S3采用:以空间中k个点为中心进行聚类,对最靠近他们的对象归类;通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。5.一种基于空间索引以及KMeans聚合算法的要素聚合系统,其特征在于,包括:模块M1:使用RBush空间索引算法为渲染的点数据建立空间索引;模块M2:获取当前地图帧状态对象,基于空间索引,根据当前地图范...

【专利技术属性】
技术研发人员:王明光胡红勋徐东升钟浩高友光刘红志徐佳申高进武澄
申请(专利权)人:新智道枢上海科技有限公司
类型:发明
国别省市:

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

1