CN110399441B - 一种海量点数据聚合渲染方法、装置、设备及存储介质 - Google Patents
一种海量点数据聚合渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110399441B CN110399441B CN201910597869.1A CN201910597869A CN110399441B CN 110399441 B CN110399441 B CN 110399441B CN 201910597869 A CN201910597869 A CN 201910597869A CN 110399441 B CN110399441 B CN 110399441B
- Authority
- CN
- China
- Prior art keywords
- point data
- aggregation
- point
- data
- mass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Computational Linguistics (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种海量点数据聚合渲染方法、装置、设备及存储介质。所述方法包括:创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。本申请实施例提供的技术方案,根据比例尺的不同级别创建海量聚合点数据索引,基于不同的索引对海量点数据进行分层点数据聚合,使得海量点数据能够根据不同的地图比例尺级别进行高效渲染。
Description
技术领域
本申请实施例涉及数据聚合技术领域,尤其涉及一种海量点数据聚合渲染方法、装置、设备及存储介质。
背景技术
在Web GIS(Geographic Information System,地理信息系统)地图应用中,地图数据的渲染是必不可少的功能,例如,在用户需要使用Web GIS地图查看地图上的商店分布情况时,而一个城市的商店数量往往是上千上万甚至是几十万个。对于这些海量地图点数据的渲染,传统的做法是对这些商店的数据进行分页展示,每页叠加10个商店到地图上。用户需要查看这10个之外的商店,就需要翻页查看。这样的地图数据渲染方式,虽然确实能够实现对应页面地图点数据的渲染,但地图上显示的商店信息过于局限,带给用户的体验是比较差的。
目前,为了方便用户直观的了解城市各类要素(如商店、餐馆、宾馆等)的分布情况,开发者会一次性查出所有要素的信息(包含名称、地址、经纬度等),然后叠加到地图上,以显示在地图上供用户查看。但是,这种数据渲染方式,只能解决少量地图数据叠加的问题。当数据量级达到几万,几十万甚至上百万时,则会影响浏览器的响应速度,地图数据渲染迟缓。
发明内容
本申请实施例提供一种海量点数据聚合渲染方法、装置、电子设备及存储介质,能够实现海量点数据的高效渲染。
在第一方面,本申请实施例提供了一种海量点数据聚合渲染方法,包括:
创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;
对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;
基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。
优选的,在所述创建海量聚合点数据索引中,所述海量聚合点数据索引使用R-Tree索引结构进行创建。
优选的,在所述对海量点数据进行多层点数据聚合中,使用贪心聚合算法对海量点数据进行多层点数据聚合。
优选的,在所述对海量点数据进行多层点数据聚合中,对应不同层级的点数据聚合包括:
a.在海量点数据的离散点集合中找到任意的一个点作为中心点;
b.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点,所述预设距离与地图比例尺的级别相对应;
c.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
d.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤a重新计算,直到离散点集合中所有的点都被取完。
优选的,所述对海量点数据进行多层点数据聚合,包括:
e.在离散点集合中找到任意的一个点作为中心点;
f.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点;
g.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
h.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤e重新计算,直到离散点集合中所有的点都被取完,完成对应层级的点数据聚合;
i.以上一层级的聚合点集合作为离散点集合,重复步骤e~h,得到下一层级的聚合点集合,直至完成预设层级数的海量点数据的多层点数据聚合。
优选的,所述基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染,包括:
解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;
根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;
利用对应的所述海量聚合点数据索引查询相应的聚合点数据;
根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
优选的,在所述基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染中,从数据库加载原始聚合点数据至缓存,基于客户端数据加载请求从缓存中返回对应的聚合点数据至客户端。
在第二方面,本申请实施例提供了一种海量点数据聚合渲染装置,包括:
索引创建模块,用于创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;
聚合模块,用于对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;
返回模块,基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。
优选的,返回模块包括解析单元,用于解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;索引确定单元,用于根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;查询单元,用于利用对应的所述海量聚合点数据索引查询相应的聚合点数据;返回单元,用于根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
优选的,聚合模块包括点数据分层聚合单元,所述点数据分层聚合单元用于执行如下步骤:
a.在海量点数据的离散点集合中找到任意的一个点作为中心点;
b.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点,所述预设距离与地图比例尺的级别相对应;
c.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
d.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤a重新计算,直到离散点集合中所有的点都被取完。
优选的,聚合模块包括点数据逐层聚合单元,所述点数据逐层聚合单元用于执行如下步骤:
e.在离散点集合中找到任意的一个点作为中心点;
f.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点;
g.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
h.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤e重新计算,直到离散点集合中所有的点都被取完,完成对应层级的点数据聚合;
i.以上一层级的聚合点集合作为离散点集合,重复步骤e~h,得到下一层级的聚合点集合,直至完成预设层级数的海量点数据的多层点数据聚合。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的海量点数据聚合渲染方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的海量点数据聚合渲染方法。
本申请实施例根据地图比例尺的不同级别创建海量聚合点数据索引,基于不同的索引对海量点数据进行分层点数据聚合,后续基于客户端的数据加载请求返回对应聚合点数据索引下的聚合点数据至客户端进行渲染,由于海量点数据预先进行分层聚合,使得海量点数据能够根据不同的地图比例尺级别进行高效渲染,避免数据量过大导致渲染迟缓、停滞的问题,方便用户通过地图清晰地了解各类要素的分布情况。
附图说明
图1是本申请实施例一提供的一种海量点数据聚合渲染方法的流程图;
图2是本申请实施例一中的点数据聚合流程示意图;
图3是本申请实施例一中另一种点数据聚合流程示意图;
图4是本申请实施例一中分层级逐层聚合示意图;
图5是本申请实施例一中聚合点数据渲染流程图;
图6是本申请实施例一中的地图界面缩放示意图;
图7是本申请实施例一中地图放大后的界面示意图;
图8是本申请实施例二提供的一种海量点数据聚合渲染装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的海量点数据聚合渲染方案,旨在解决地图点数据量庞大的情况下,海量点数据渲染至地图时,渲染效率低、系统响应速度慢的问题。传统的地图数据渲染方法,通过一次性将对应一个要素的所有分布信息,全部叠加到地图上。这样,对应地图点数据量较少的要素,由于数据量少的原因,其在渲染的时候可能不会影响浏览器的响应,点数据渲染至地图上后,也不会影响用户了解对应要素在地图上的分布情况。但是,当数据量级达到几万,几十万甚至上百万时,其数据渲染过程对用户浏览器的性能要求是相当高的。由于数据量庞大,在海量点数据渲染过程中往往会出现浏览器响应迟缓甚至假死的状况。另一方面,由于对应要素的数据量偏大,点数据渲染后在用户端界面显示的要素的点会相应偏多,大量的点数据集中显示在用户端界面,影响用户观看,无法清晰的了解对应要素的具体分布情况。基于此,本申请实施例提供的海量点数据聚合渲染方法,其通过将对应要素的海量点数据进行聚合后再进行渲染,在减少浏览器的运行负载的同时加快浏览器的响应速度,使得地图点数据渲染更加高效,同时以聚合点数据的方式进行渲染,使得用户能够更清晰的了解对应要素在地图的分布情况。
实施一:
图1给出了本申请实施例一提供的一种海量点数据聚合渲染方法的流程图,本实施例中提供的海量点数据聚合渲染方法可以由海量点数据聚合渲染设备配合服务器端执行,该海量点数据聚合渲染设备可以通过软件和/或硬件的方式实现,该海量点数据聚合渲染设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,海量点数据聚合渲染设备具备Web GIS地图功能,可以实现空间数据的检索、查询、制图输出、编辑等GIS基本功能,该海量点数据聚合渲染设备可以是电脑,手机,平板或电子地图等智能设备。
下述以海量点数据聚合渲染设备为执行海量点数据聚合渲染方法的设备为例,进行描述。参照图1,该海量点数据聚合渲染方法具体包括:
S110.创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建。
示例性的,本实施例的海量点数据聚合渲染方法是对应不同的海量聚合点数据索引进行点数据聚合的,而这些海量聚合点数据索引则需要对应地图比例尺的不同比例尺级别进行创建。由于Web GIS的应用场景中,地图是对应不同比例尺级别进行显示的。用户在对地图进行缩放操作时,浏览器进行响应重新对地图进行渲染时,地图也会是基于更大或者更小的比例尺级别进行显示。基于此,将海量聚合点数据索引根据比例尺的不同级别来创建,一个比例尺级别对应一个数据索引,后续可凭借数据索引查询对应比例尺的聚合点数据,返回至客户端进行对应比例尺级别下地图点数据的渲染显示。每一个比例尺级别下,对应要素点数据分布情况都以聚合的形式进行显示,以更好地让用户直观的了解对应要素在地图上的分布情况。空间索引选用R-Tree索引,在一些应用场景中,也可以选用Quad-Tree,geohash索引等。
需要说明的是,本申请实施例的聚合点数据索引为空间索引,空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。其主要是用于空间数据查询,是对存储在介质上的数据位置信息的描述,是用来提高系统对数据获取的效率,也称为空间访问方法(SpatialAccess Method,SAM)。是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构其中包含空间对象的概要信息如对象的标识外接矩形及指向空间对象实体的指针。作为一种辅助性的空间数据结构,空间索引介于空间操作算法和空间对象之间,它通过筛选大量与特定空间操作无关的空间对象,从而提高空间操作的速度和效率。在服务器端响应客户端的数据加载请求时,利用空间索引查询空间数据库,进行对应聚合点数据查询。由于常规索引类型不能有效地处理空间查询,例如两个点有多远,或者点是否落在感兴趣的空间区域内,因此选择空间索引作为本申请实施例的聚合点数据索引。空间索引的具体实现方式为现有较成熟技术,这里不多赘述。
S120.对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据。
示例性的,在进行海量点数据聚合时,根据不同的聚合点数据索引对海量点数据进行分层聚合,每一层的聚合点数据对应一个聚合点数据索引。由于海量聚合点数据的数据索引是对应不同的比例尺级别创建的,也就是说,这里每一个比例尺级别即对应一层聚合点数据,以便于后续根据客户端地图显示画面的比例尺级别返回对应层级的聚合点数据进行渲染。
具体的,参照图2,点数据聚合流程包括:
a.在海量点数据的离散点集合中找到任意的一个点作为中心点;
b.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点,所述预设距离与地图比例尺的级别相对应;
c.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
d.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤a重新计算,直到离散点集合中所有的点都被取完。
本申请实施例为了解决海量点数据的高效渲染问题,引入了分层贪心聚合算法来进行海量点数据分层聚合。贪心聚合算法将全部的离散点根据相互间的距离(像素单位)聚合为更少量的点,以达到保证显示要素分布情况的同时减少实际要渲染的点数量,进而提升渲染性能的目的,以使地图实现海量点数据的高效渲染。在贪心聚合算法中,聚合点的范围是以像素为单位,在使用贪心聚合算法对应一个要素进行海量点数据分层聚合时,基于同样数量的海量点数据,对应每一个层级分别使用贪心聚合算法对海量点数据进行聚合。由于层级不同对应的比例尺级别也不同,那么不同层级的海量点数据在进行聚合过程中,贪心聚合算法会选用不同的预设距离值(像素单位)进行对应区域的离散点聚合。此处预设距离值是根据比例尺的不同级别对应设置的,对于同样的离散点集合,在聚合过程中,“1:100”与“1:1000”的比例尺对比,对应同一显示界面,“1:100”的比例尺显示的地图内容小,那么相应的其地图需要显示的对应要素也较少,则在对应层级的海量点数据聚合过程中,中心点与相邻点的预设距离设置为相对较短的;而“1:1000”的比例尺显示的地图内容相对较大,那么相应的其地图需要显示的对应要素也较多,则在对应层级的海量点数据聚合过程中,中心点与相邻点的预设距离设置为相对较长的。这样,通过对应不同层级设置不同的中心点与相邻点的预设距离值,则可以实现对同一离散点集合进行不同层级的点数据聚合,以使得不同层级的聚合点数据在返回客户端进行渲染时,减少实际要渲染的点数量,同时保证地图显示的要素点恰当,能够清晰的表明对应要素在地图上的分布情况。
在使用贪心聚合算法进行海量点数据聚合过程中,由于本申请实施例在地图渲染时需要根据比例尺级别进行对应显示渲染,多层聚合点数据对应比例尺级别,通常会分为0到18级,参照图2所示的点数据聚合流程,则对应每一层级都是基于原始海量点数据进行贪心算法运算聚合,贪心聚合算法对应19个层级则对应需要重复计算19次,每一层贪心聚合算法对应一个层级且互不相干,以此来得到对应不同比例尺级别的聚合点数据。
显然,上述计算需要花费一定的算法运行时间,为了减少算法运行时间,在本申请实施例一的一些应用场景中,引入逐层聚合的概念,参照图3,点数据聚合流程包括:
e.在离散点集合中找到任意的一个点作为中心点;
f.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点;
g.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
h.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤e重新计算,直到离散点集合中所有的点都被取完,完成对应层级的点数据聚合;
i.以上一层级的聚合点集合作为离散点集合,重复步骤e~h,得到下一层级的聚合点集合,直至完成预设层级数的海量点数据的多层点数据聚合。
不同于图2所示的点数据聚合流程,图3示出的点数据聚合流程,贪心聚合算法基于海量点数据在最大层级处选用适当的预设距离值进行点数据聚合,之后每一层级都以前一层级的聚合点数据作为基础离散点集合,在前一层的基础之上进行聚合点数据的再次聚合操作,以此类推,直到完成所有层级的点数据聚合。
具体的,参照图4,提供一个树形结构,对上述图3所述点数据聚合流程做进一步说明。其中18级作为最大层级,以对应要素的海量点数据作为基础数据使用贪心聚合算法进行聚合,则17级则对应18级聚合而成的聚合点数据,以18级的聚合点数据作为基础离散点集合进行再次聚合。16~0级则依次类推,直至完成所有层级的点数据聚合。
上述两种点数据聚合方法,均可实现海量点数据的分层聚合,通过给定任意中心点,根据设置恰当的预设距离值,将附近一定区域内的点数据,以对应区域的中心点位置作为这一区域的聚合点,并移除该区域内其余的点。通过若干次选择中心点并移除相邻点,最终完成对应一个层级的点数据聚合。通过将对应层级的聚合点数据与R-Tree索引一一对应,即可通过数据索引查询到对应的聚合点数据并返回至客户端渲染。
S130.基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。
示例性的,在完成海量点数据的分层聚合之后,服务器端实时根据客户端的数据加载请求,返回对应层级的聚合点数据。需要注意的是,此处的数据加载请求,可以是客户端地图浏览器初始显示时的数据加载请求,也可以是对应客户端对地图的拖动及不同缩放操作而产生的数据加载请求。对应地图初始显示的数据加载请求,则服务器端根据地图初始显示的比例尺级别及对应的视野范围返回对应层级的聚合点数据;对应拖动及不同缩放操作而产生的数据加载请求,则服务器端根据地图实时的比例尺级别及对应的视野范围返回对应层级的聚合点数据。
具体的,参照图5,聚合点数据渲染包括:
S1301.解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;
S1302.根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;
S1303.利用对应的所述海量聚合点数据索引查询相应的聚合点数据;
S1304.根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
示例性的,客户端上传数据加载请求时,数据加载请求中包含有地图当前视野范围信息及比例尺级别信息。基于客户端的数据加载请求,可以解析出需要返回的聚合点数据的层级,及对应需要筛选显示的范围。无论是基于地图初始显示时的数据加载请求还是基于拖动及缩放操作而产生的数据加载请求,其上传的地图当前比例尺级别都可以找到对应的聚合点数据索引,再根据对应的聚合点数据索引则可以查询到与该索引对应层级的聚合点数据。确定要返回相应层级的聚合点数据后,根据地图当前视野范围信息,服务器端对该层级的聚合点数据进行筛选,只返回地图视野显示范围内的聚合点数据,将经筛选后的聚合点数据返回至客户端即可对应当前视野范围进行对应要素的渲染。
在本申请实施例一的一些应用场景中,服务器端也可以直接返回对应层级的聚合点数据,此处服务器端不对聚合点数据进行渲染,对应层级的聚合点数据返回至客户端后,由客户端基于当前视野范围自行计算筛选出对应当前视野范围内的聚合点数据进行渲染。这样,当用户拖动地图时,由于比例尺级别没有改变,对应层级的聚合点数据已缓存于客户端中,那么客户端即可根据实时的地图界面视野范围,从客户端缓存筛选得到对应视野范围的聚合点数据进行渲染。无需每一次拖动操作均向服务器端发送数据加载请求,将聚合点数据的渲染由客户端自行完成。
具体的,参照图6-图7,当用户对地图进行缩放操作时,根据比例尺的变化得到对应比例尺级别的聚合点数据渲染,图6中,地图显示更大范围的内容,此时对应比例尺级别以更大层级的聚合点数据进行对应视野范围的渲染,当用户对指定区域“XX商场”进行放大操作之后,参照图7,地图显示相对较小范围的内容,对应比例尺级别以较小层级的聚合点数据进行对应视野范围的渲染。
此外,为了进一步提高客户端浏览器的响应效率,减少主线程的运算压力,提高客户端的兼容性和执行性能,使得聚合点数据的渲染更加的高效。本申请实施例将将WebWorker数据管理线程的工作迁移至服务器进行,以使得客户端得以实现聚合点数据更高效的渲染。这样,当客户端向服务器发送加载海量点数据的请求时,服务器收到请求后会从数据库或文件中加载原始数据至缓存,后续的请求直接从缓存加载对应的聚合点数据。
上述,根据比例尺的不同级别创建海量聚合点数据索引,基于不同的索引对海量点数据进行分层点数据聚合,后续基于客户端的数据加载请求返回对应聚合点数据索引下的聚合点数据至客户端进行渲染,由于海量点数据预先进行分层聚合,使得海量点数据能够根据不同的地图比例尺级别进行高效渲染,避免数据量过大导致渲染迟缓、停滞的问题,方便用户通过地图清晰地了解各类要素的分布情况。
实施例二:
在上述实施例的基础上,图8为本申请实施例二提供的一种海量点数据聚合渲染装置的结构示意图。参考图8,本实施例提供的海量点数据聚合渲染装置具体包括:索引创建模块21、聚合模块22及返回模块23。
其中,索引创建模块21用于创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;
聚合模块22用于对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;
返回模块23用于基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。
上述,根据比例尺的不同级别创建海量聚合点数据索引,基于不同的索引对海量点数据进行分层点数据聚合,后续基于客户端的数据加载请求返回对应聚合点数据索引下的聚合点数据至客户端进行渲染,由于海量点数据预先进行分层聚合,使得海量点数据能够根据不同的地图比例尺级别进行高效渲染,避免数据量过大导致渲染迟缓、停滞的问题,方便用户通过地图清晰地了解各类要素的分布情况。
具体的,返回模块23包括解析单元,用于解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;索引确定单元,用于根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;查询单元,用于利用对应的所述海量聚合点数据索引查询相应的聚合点数据;返回单元,用于根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
可选的,聚合模块22包括点数据分层聚合单元,所述点数据分层聚合单元用于执行如下步骤:
a.在海量点数据的离散点集合中找到任意的一个点作为中心点;
b.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点,所述预设距离与地图比例尺的级别相对应;
c.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
d.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤a重新计算,直到离散点集合中所有的点都被取完。
可选的,聚合模块22包括点数据逐层聚合单元,所述点数据逐层聚合单元用于执行如下步骤:
e.在离散点集合中找到任意的一个点作为中心点;
f.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点;
g.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
h.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤e重新计算,直到离散点集合中所有的点都被取完,完成对应层级的点数据聚合;
i.以上一层级的聚合点集合作为离散点集合,重复步骤e~h,得到下一层级的聚合点集合,直至完成预设层级数的海量点数据的多层点数据聚合。
本申请实施例二提供的海量点数据聚合渲染装置可以用于执行上述实施例一提供的海量点数据聚合渲染方法,具备相应的功能和有益效果。
实施例三:
本申请实施例三提供了一种电子设备,该电子设备包括:处理器、存储器、通信模块。该电子设备中处理器的数量可以是一个或者多个,该电子设备中的存储器的数量可以是一个或者多个。该电子设备的处理器、存储器、通信模块可以通过总线或者其他方式连接。
存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的海量点数据聚合渲染方法对应的程序指令/模块(例如,海量点数据聚合渲染装置中的索引创建模块、聚合模块和返回模块)。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块用于进行数据传输。
处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的海量点数据聚合渲染方法。
上述提供的电子设备可用于执行上述实施例一提供的海量点数据聚合渲染方法,具备相应的功能和有益效果。
实施例四:
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种海量点数据聚合渲染方法,该海量点数据聚合渲染方法包括:创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的海量点数据聚合渲染方法,还可以执行本申请任意实施例所提供的海量点数据聚合渲染方法中的相关操作。
上述实施例中提供的海量点数据聚合渲染装置、存储介质及电子设备可执行本申请任意实施例所提供的海量点数据聚合渲染方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的海量点数据聚合渲染方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (9)
1.一种海量点数据聚合渲染方法,其特征在于,包括:
创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;
对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;
基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应比例尺级别的聚合点数据并返回至所述客户端进行聚合点数据渲染;
所述基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染,包括:
解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;
根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;
利用对应的所述海量聚合点数据索引查询相应的聚合点数据;
根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
2.根据权利要求1所述的海量点数据聚合渲染方法,其特征在于,在所述创建海量聚合点数据索引中,所述海量聚合点数据索引使用R-Tree索引结构进行创建。
3.根据权利要求1所述的海量点数据聚合渲染方法,其特征在于,在所述对海量点数据进行多层点数据聚合中,使用贪心聚合算法对海量点数据进行多层点数据聚合。
4.根据权利要求3所述的海量点数据聚合渲染方法,其特征在于,在所述对海量点数据进行多层点数据聚合中,对应不同层级的点数据聚合包括:
a.在海量点数据的离散点集合中找到任意的一个点作为中心点;
b.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点,所述预设距离与地图比例尺的级别相对应;
c.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
d.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤a重新计算,直到离散点集合中所有的点都被取完。
5.根据权利要求3所述的海量点数据聚合渲染方法,其特征在于,所述对海量点数据进行多层点数据聚合,包括:
e.在离散点集合中找到任意的一个点作为中心点;
f.遍历离散点集合,找到与对应中心点距离小于预设距离的相邻点;
g.将相邻点移除出离散点集合,以对应中心点与相邻点外接形成的区域的中心点位置作为聚合点;
h.从剩余的离散点集合中取出任意的一个点作为新的中心点,返回步骤e重新计算,直到离散点集合中所有的点都被取完,完成对应层级的点数据聚合;
i.以上一层级的聚合点集合作为离散点集合,重复步骤e~h,得到下一层级的聚合点集合,直至完成预设层级数的海量点数据的多层点数据聚合。
6.根据权利要求1所述的海量点数据聚合渲染方法,其特征在于,在所述基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染中,从数据库加载原始聚合点数据至缓存,基于客户端数据加载请求从缓存中返回对应的聚合点数据至客户端。
7.一种海量点数据聚合渲染装置,其特征在于,包括:
索引创建模块,用于创建海量聚合点数据索引,所述海量聚合点数据索引根据地图比例尺的不同级别创建;
聚合模块,用于对海量点数据进行多层点数据聚合,所述多层点数据聚合对应所述海量聚合点数据索引进行分层构建聚合点数据;
返回模块,基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应比例尺级别的聚合点数据并返回至所述客户端进行聚合点数据渲染;
所述基于客户端数据加载请求,利用对应的所述海量聚合点数据索引查询相应的聚合点数据并返回至所述客户端进行聚合点数据渲染,包括:
解析客户端数据加载请求中携带的地图当前视野范围信息及比例尺级别信息;
根据所述比例尺级别信息确定对应的所述海量聚合点数据索引;
利用对应的所述海量聚合点数据索引查询相应的聚合点数据;
根据所述当前视野范围信息筛选所述相应的聚合点数据并返回至客户端进行渲染。
8.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一所述的海量点数据聚合渲染方法。
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6任一所述的海量点数据聚合渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910597869.1A CN110399441B (zh) | 2019-07-04 | 2019-07-04 | 一种海量点数据聚合渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910597869.1A CN110399441B (zh) | 2019-07-04 | 2019-07-04 | 一种海量点数据聚合渲染方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399441A CN110399441A (zh) | 2019-11-01 |
CN110399441B true CN110399441B (zh) | 2021-04-20 |
Family
ID=68323691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910597869.1A Active CN110399441B (zh) | 2019-07-04 | 2019-07-04 | 一种海量点数据聚合渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399441B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309835B (zh) * | 2020-02-04 | 2023-03-10 | 山东爱德邦智能科技有限公司 | 一种空间数据可视化的处理方法、系统及设备 |
CN111581233B (zh) * | 2020-05-07 | 2023-11-24 | 广东电网有限责任公司电力调度控制中心 | 电网设备矢量图形数据的实时切片方法及存储介质 |
CN111966668A (zh) * | 2020-06-16 | 2020-11-20 | 国网浙江省电力有限公司绍兴供电公司 | 一种电力负荷断面态势感知的可视化方法 |
CN112462366B (zh) * | 2020-10-10 | 2023-08-08 | 深圳大学 | 一种sar数据点可视化方法、智能终端及存储介质 |
CN112667758B (zh) * | 2020-12-17 | 2023-04-07 | 佳都科技集团股份有限公司 | 一种兴趣点聚合方法、地图聚合显示方法及处理终端 |
CN112527845A (zh) * | 2020-12-24 | 2021-03-19 | 四川享宇金信金融科技有限公司 | 一种客户海量点数据聚合渲染方法 |
CN112764859A (zh) * | 2021-01-22 | 2021-05-07 | 泰华智慧产业集团股份有限公司 | 网格化平台地图在移动端中网格员位置显示方法及系统 |
CN113052642B (zh) * | 2021-04-22 | 2022-08-19 | 支付宝(杭州)信息技术有限公司 | 用于线下作业的方法及装置 |
CN113177099B (zh) * | 2021-05-12 | 2022-05-24 | 中移(上海)信息通信科技有限公司 | 终端聚合方法、装置、电子设备和可读存储介质 |
CN115658779B (zh) * | 2022-09-28 | 2023-08-18 | 广州市规划和自然资源自动化中心 | 一种人口数据显示方法和装置 |
CN118245691B (zh) * | 2024-02-23 | 2024-10-11 | 中国人民解放军92728部队 | 一种海量地图数据动态加载方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927933B (zh) * | 2013-01-14 | 2016-07-13 | 北京中交兴路信息科技有限公司 | 一种海量移动目标渲染的方法及装置 |
CN104281701B (zh) * | 2014-10-20 | 2018-02-09 | 北京农业信息技术研究中心 | 分布式多尺度空间数据查询方法及系统 |
CN104317927B (zh) * | 2014-10-31 | 2018-03-30 | 北京思特奇信息技术股份有限公司 | 一种开源地图的建立方法及系统和查看方法及系统 |
CN105740275B (zh) * | 2014-12-10 | 2019-11-26 | 北京神州泰岳软件股份有限公司 | 地图显示方法及装置 |
CN104820684B (zh) * | 2015-04-21 | 2017-12-15 | 武大吉奥信息技术有限公司 | 一种基于空间位置的快速联机分析处理方法 |
KR101721114B1 (ko) * | 2016-06-27 | 2017-03-30 | 서울대학교산학협력단 | 위치정보가 포함된 포인트 데이터를 다축척의 웹 지도상에 클러스터링하기 위하여 격자의 크기를 결정하는 방법 |
CN109213836B (zh) * | 2018-08-10 | 2021-04-02 | 厦门市美亚柏科信息股份有限公司 | 点位数据聚合方法和系统 |
-
2019
- 2019-07-04 CN CN201910597869.1A patent/CN110399441B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110399441A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399441B (zh) | 一种海量点数据聚合渲染方法、装置、设备及存储介质 | |
CN109947889A (zh) | 空间数据管理方法、装置、设备和存储介质 | |
US11989201B2 (en) | Generating varied-scale visualizations of multi-dimensional data | |
CN110599891B (zh) | 一种电网设备地图渲染方法 | |
WO2017206484A1 (zh) | 地理数据呈现方法及装置 | |
WO2021169274A1 (zh) | 一种历史地图数据的处理的方法、装置和系统 | |
US20170124115A1 (en) | High performance and efficient multi-scale trajectory retrieval | |
CN114020756B (zh) | 遥感影像实时地图服务发布方法和装置 | |
CN103744995A (zh) | 一种构建专题地图的方法及应用该方法的移动终端 | |
Giuliani et al. | Testing OGC Web Feature and Coverage Service performance: Towards efficient delivery of geospatial data | |
CN109145225A (zh) | 一种数据处理方法及装置 | |
CN114064829A (zh) | 对定位点进行聚合展示的方法、装置及电子设备 | |
CN111026987A (zh) | 展示海量车辆位置分布信息的多层聚合方法及系统 | |
CN106257447A (zh) | 云存储服务器的视频存储及检索方法、视频云存储系统 | |
JP2008225686A (ja) | 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム | |
CN115374109B (zh) | 数据访问方法、装置、计算设备和系统 | |
CN116301658A (zh) | 一种多副本存储方法及相关装置 | |
CN111966853B (zh) | 一种遥感影像的管理方法 | |
US20230289045A1 (en) | Generating aggregate data geospatial grid cells for encoding in vector tiles | |
WO2018145227A1 (en) | Managing data records in object-based cloud storage systems | |
CN114595301A (zh) | 瓦片数据的获取方法、装置、设备及存储介质 | |
CN111009037A (zh) | 一种bim模型展示方法、装置、存储介质、电子设备 | |
CN116149561B (zh) | 一种瓦片数据传输方法、装置、电子设备和存储介质 | |
CN113946582B (zh) | 一种空间聚合展示查询方法、系统和可读存储介质 | |
US11394780B2 (en) | System and method for facilitating deduplication of operations to be performed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province Patentee after: Jiadu Technology Group Co.,Ltd. Address before: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province Patentee before: PCI-SUNTEKTECH Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |