System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及新一代技术,电数字数据处理,特别涉及一种聚合方法、装置、设备及可读存储介质。
技术介绍
1、近年来,地理信息系统(geographic information system,gis)技术的热度与日俱增。gis技术能够将地图的视觉效果、地理分析功能和一般的数据库操作集成在一起。
2、三维gis地图中有大量的几何体,包括起标注作用的三维标签,以及真实物理世界中的物理实体对应的孪生体。孪生体例如为教学楼、摄像头等。用户使用三维gis地图时,不可避免的需要对三维gis地图进行缩放、改变视角等,进而需要对几何体进行聚合。传统的聚合方法中,主要对二维标签进行聚合。
3、地理信息系统(geographic information system,gis)是一门综合性学科,是一种用于对地理分布数据进行采集、存储、管理、运算、分析和显示的技术系统。几何体是三维gis地图中一种重要的展示数据的手段。几何体包括三维标签、孪生体等。孪生体为真实的物理世界中的物理实体在数字世界中的虚拟表示,三维标签用于标注客观存在的物理实体对应的孪生体。例如,三维gis地图中有一栋楼,三维标签标注出该楼叫做明德楼。
4、三维gis地图中,几何体具备丰富的样式和精准的地理位置。随着业务不断的深入,几何体的数量逐步增多,这就需要在用户使用三维gis地图过程中,高性能的展示这些几何体,避免大量几何体情况下,不同视角或不同缩放层级产生重叠影响视觉效果,以及渲染压力带来的性能问题。
5、然而,目前市面上的三维gis引擎
6、另外一些三维gis引擎虽然会判断遮挡以解决不同角度的重叠,但是仅能对二维的label标签进行聚合,无法对三维的几何体进行聚合。示例性的,请参照图1。
7、图1是传统聚合方法中无法对三维标签进行聚合时的地图界面示意图。请参照图1,几何体的展示本质上是基于三维中的点坐标。以几何体为三维gis地图中的三维标签为例,地面界面中有海量的三维标签,图1中仅示意出左上角区域,即图中粗黑实线框中的部分三维标签,如“北门”、“f楼”、“图书馆”……该些三维标签密密麻麻,导致三维gis地图的显示效果极差。
8、传统的二维gis地图中,为了实现聚合,需要解决两个问题:
9、1、如何聚合?即给定一个点,以此为圆心,如何找到一定半径范围内的所有点?
10、2、聚合完毕后,给定一个包围盒,如何找到其中包含的聚合后的要素?
11、为解决这两个问题,传统gis应用中经常使用的二维查询范围为圆或矩形。如果知道圆的中心和半径;或者矩形的中心以及长和宽,就能确定出一个唯一的查询范围。之后,对所有已知点进行轮询计算,以确定该点是否落入查询范围内。
12、例如,查询范围是以p点为中心、半径已知的圆,则判断每个点与p点的距离是否小于或等于半径。再如,若查询范围是以p点为中心、长宽固定的矩形,则判断每个点是否同时满足:与p点x轴方向坐标的差的绝对值小于或等于矩形x方向长度,且与p点y轴方向坐标的差的绝对值小于或等于矩形y方向长度。同时满足以上两个条件,则表示该点在查询范围内;若不满足以上任意一个条件,则表示该点未落入查询范围。此处假设矩形的长宽是直角坐标系的xy方向,暂未考虑矩形旋转的情况。
13、然而,若待查询点个数达到万或者以上,以上传统方法的时间复杂度为n,查询时间线性增长,不满足快速响应的需求。比如之前的聚合效果,每次刷新页面都要重新计算聚簇集,会让用户明显感受到地图刷新卡顿。因此,需要提高查询效率。显然,对于上述两个问题,在海量点数据下,如果使用暴力遍历每个点的方法必然是低效的。因此,如何对三维gis地图上的几何体进行聚合,以提高三维gis地图的可视化效果,实为急待解决的问题。
技术实现思路
1、本申请实施例提供一种聚合方法、装置、设备及可读存储介质,通过触发几何体重叠后自动聚合,实现任意角度任意层级的高效聚合,达到高性能聚合显示几何体的目的的同时,实现提高三维gis地图的可视化效果的目的。
2、第一方面,本申请实施例提供一种聚合方法,包括:
3、识别聚合指令;
4、响应于所述聚合指令,确定第一集合,所述第一集合中包含待显示的地图界面上的几何体;
5、对所述第一集合中的每个第一几何体,确定所述第一几何体的包围盒在屏幕坐标系下的投影图形;
6、根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体;
7、在所述地图界面上聚合显示所述第一几何体和所述第二几何体。
8、第二方面, 本申请实施例提供一种聚合装置,包括:
9、识别模块,用于识别聚合指令;
10、响应模块,用于响应于所述聚合指令,确定第一集合,所述第一集合中包含待显示的地图界面上的几何体;
11、确定模块,用于对所述第一集合中的第一几何体,确定所述第一几何体的包围盒在屏幕坐标系下的投影图形;
12、处理模块,用于根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体;
13、显示模块,用于在所述地图界面上聚合显示所述第一几何体和所述第二几何体。
14、第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
15、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第一方面或第一方面各种可能的实现方式所述的方法。
16、第五方面,本申请实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
17、本申请实施例提供的聚合方法、装置、设备及可读存储介质,电子设备识别到改变缩放层级或用户视角的聚合指令后,响应于该聚合指令确定第一集合,该第一集合包含待显示的地图界面上的各几何体。之后,对于第一集合中的任意一个几何体,即第一几何体,电子设备确定第一几何体的包围盒在屏幕坐标系下的投影图形,根据该投影图形和第一集合,确定出与第一几何体聚合的第二几何体后,在地图界面上聚合显示第一几何体和第二几何体。采用该种方案,对于三维场景中的每个第一几何体,根据该第一几何体的投影图形和第一集合,即可加速识别出与第一几何体聚合的第二几何体并聚合显示,无需对几何体的每个点进行轮询以确定是否与第一几何体相交,实现任意角度任意层级的高效聚合,达到高性能聚合显示几何体的目的的同时,实现提高三维gis地图的可视化效果的目的。
本文档来自技高网...【技术保护点】
1.一种聚合方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体,包括:
3.根据权利要求2所述的方法,其特征在于,所述确定所述第一集合中的每个几何体的中心点在所述屏幕坐标系下的二维坐标,以得到多个二维坐标,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述空间索引和所述投影图形,从所述第一集合中确定出与所述第一几何体聚合的第二几何体,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体,包括:
6.根据权利要求5所述的方法,其特征在于,所述确定所述第一集合中的每个几何体在所述屏幕坐标系下的平面图形,以得到多个平面图形,包括:
7.根据权利要求1~6任一项所述的方法,其特征在于,所述在所述地图界面上聚合显示所述第一几何体和所述第二几何体,包括:
8.根据权利要求1~6任一项所述的方法,其特征在于,所述聚合指令包括下述指令中的任意一
9.根据权利要求1~6任一项所述的方法,其特征在于,
10.一种聚合装置,其特征在于,包括:
11.一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时使得所述电子设备实现如权利要求1至9任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一所述的方法。
...【技术特征摘要】
1.一种聚合方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体,包括:
3.根据权利要求2所述的方法,其特征在于,所述确定所述第一集合中的每个几何体的中心点在所述屏幕坐标系下的二维坐标,以得到多个二维坐标,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述空间索引和所述投影图形,从所述第一集合中确定出与所述第一几何体聚合的第二几何体,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述投影图形和所述第一集合,确定与所述第一几何体聚合的第二几何体,包括:
6.根据权利要求5所述的方法,其特征在于,所述确定所述第一集合中的每个几何体在所述屏幕坐标系下的平面图形,以得到多个平面图形,包括:...
【专利技术属性】
技术研发人员:杨光,
申请(专利权)人:广州开得联智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。