面向Web端的时空大数据高效加载渲染方法及系统转让专利

申请号 : CN202310596229.5

文献号 : CN116302579B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马伟郭富涛冀宗童王朝阳张磊磊

申请人 : 智成时空(西安)创新科技有限公司

摘要 :

本发明公开了一种面向Web端的时空大数据高效加载渲染方法及系统,该方法采用了多节点多线程同步渲染的方法,在渲染之前,加载分布式存储的时空大数据,通过识别主加载通道/备用加载通道的存储索引对应的在Unity3D引擎中配置API接口,以将对应的时空大数据片段输入至Unity3D引擎中的渲染模块,渲染模块基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。利用多个节点的共同工作来完成地图服务各个部分内容的渲染,在客户端展现完整的渲染内容,从而大幅减少地图服务的响应时间。

权利要求 :

1.面向 Web 端的时空大数据高效加载渲染方法,其特征在于,包括如下步骤:

步骤 1)在 WebGL 框架下配置 Unity3D 引擎,在 Unity3D 引擎中配置 Cesium 矢量地图插件,通过 Cesium 矢量地图插件接入标准 GIS 服务资源,同时在 Unity3D 引擎中构建一个任务加载模块;

步骤 2)所述任务加载模块向服务器发送加载分布式存储的时空大数据的加载指令,服务器内设置的控制模块接收所述加载指令,对所述加载指令进行解析,以获取所述加载指令对应的加载内容;基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表;基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中 GPU 的吞吐计算;基于 GPU 的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;

步骤 3)监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;

步骤 4)所述任务加载模块从每一主加载通道/备用加载通道获取对应的时空大数据片段后,通过识别主加载通道/备用加载通道的存储索引对应的在 Unity3D 引擎中配置 API 接口,以将对应的时空大数据片段由 API 接口输入至 Unity3D 引擎中的渲染模块,所述渲染模块基于API 接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。

2.根据权利要求1所述的面向 Web 端的时空大数据高效加载渲染方法,其特征在于,每一所述指令序列包括:对主加载通道进行启闭的主动指令;

一个或者多个备用加载通道进行启闭的被动指令;

对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令。

3.根据权利要求1所述的面向 Web 端的时空大数据高效加载渲染方法,其特征在于,在步骤4)中,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片。

4.根据权利要求1所述的面向 Web 端的时空大数据高效加载渲染方法,其特征在于,在步骤4)中,将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准 GIS 服务资源。

5.面向 Web 端的时空大数据高效加载渲染系统,包括 WebGL 框架,在 WebGL 框架下配置 Unity3D 引擎,在 Unity3D 引擎中配置 Cesium 矢量地图插件,通过 Cesium 矢量地图插件接入标准 GIS 服务资源,其特征在于,在 Unity3D 引擎中构建任务加载模块、控制模块、监听 模块、以及渲染模块;

所述任务加载模块用于向服务器发送加载分布式存储的时空大数据的加载指令;

所述控制模块接收所述加载指令,所述控制模块具有:

解析单元,用于对所述加载指令进行解析,以获取所述加载指令对应的加载内容;

检索单元,用于基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表;

指令序列生成单元,用于基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中 GPU 的吞吐计算;基于 GPU 的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列;

每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;

所述监听模块用于监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;

所述渲染模块用于基于 API 接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。

6.根据权利要求5所述的面向 Web 端的时空大数据高效加载渲染系统,其特征在于,所述指令序列:对主加载通道进行启闭的主动指令;一个或者多个备用加载通道进行启闭的被动指令;对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令;

其中,所述主动指令用于对应的主加载通道的启用,当主动指令执行时,对应的存储索引配置指令将主加载通道配置成具有对应的时空大数据片段的存储索引;所述被动指令用于在对主加载通道的负载状态进行监听过程中,若所述负载状态达到设定阈值时,控制模块控制所述被动指令对应的启用与主加载通道具有协同能力的一个或者多个备用加载通道,同时,控制模块控制存储索引配置指令将一个或者多个备用加载通道配置成具有对应的时空大数据片段的存储索引。

7.根据权利要求5所述的面向 Web 端的时空大数据高效加载渲染系统,其特征在于,所述渲染模块具有:判断单元,用于基于 API 接口的基础参数来确定渲染数据类型,并基于对 API 接口的基础参数的判断来指导任务管理单元配置渲染任务,并为每一渲染任务对应的启用渲染过程中渲染线程配置的渲染配置单元;

分割单元,连接所述判断单元,用于基于任务管理单元对渲染任务的配置来对应的将时空大数据片段进行加载,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片;

渲染配置单元,连接所述分割单元和判断单元,用于将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准GIS 服务资源,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。

8.根据权利要求5所述的面向 Web 端的时空大数据高效加载渲染系统,其特征在于,所述Unity3D 引擎中配置有多个 API 接口,不同的 API 接口用于对应的加载存储路径不同的时空大数据片段。

说明书 :

面向Web端的时空大数据高效加载渲染方法及系统

技术领域

[0001] 本发明涉及一种时空大数据处理技术领域,具体的涉及面向Web端的时空大数据处理技术,特别涉及一种面向Web端的时空大数据高效加载渲染方法及系统。

背景技术

[0002] 目前面向Web端的使用游戏引擎技术加载空间三维数据的引擎主要是Unity3D和Unreal,Unity3D和Unreal均能够提供标准GIS服务资源接入技术,因此能够在Web端进行基于GIS的空间三维数据渲染。
[0003] 在进行渲染时,由于目前采用的栅格瓦片技术,每一次渲染效率不高,在进行数据保存时,占用大量的网络资源。传统的栅格瓦片每一张瓦片大小在十几KB左右,虽然看上去每张瓦片的大小不大,但是若放到全地图范围内来看的,需要的瓦片数据量极大,按照四叉树金字塔切割的栅格瓦片的上一级的某张瓦片可以切割成下一级的四张瓦片,因此,瓦片的总量也是极快的增加,甚至最终所需存储空间可以达到TB级别,由此,利用栅格瓦片技术瓦片占用空间高,瓦片切图效率低,无法随时动态调整地图样式,地图分辨率低,加载速度比较慢。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种面向Web端的时空大数据高效加载渲染方法及系统。
[0005] 为实现上述目的,一方面,本发明提供了一种面向Web端的时空大数据高效加载渲染方法,包括如下步骤:
[0006] 步骤1)在WebGL框架下配置Unity3D引擎,在Unity3D引擎中配置Cesium矢量地图插件,通过Cesium矢量地图插件接入标准GIS服务资源,同时在Unity3D引擎中构建一个任务加载模块;
[0007] 步骤2)所述任务加载模块向服务器发送加载分布式存储的时空大数据的加载指令,服务器内设置的控制模块接收所述加载指令,并基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;
[0008] 步骤3)监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;
[0009] 步骤4)所述任务加载模块从每一主加载通道/备用加载通道获取对应的时空大数据片段后,通过识别主加载通道/备用加载通道的存储索引对应的在Unity3D引擎中配置API接口,以将对应的时空大数据片段由API接口输入至Unity3D引擎中的渲染模块,所述渲染模块基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0010] 进一步地,基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列的方法包括如下:
[0011] 对所述加载指令进行解析,以获取所述加载指令对应的加载内容;
[0012] 基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表;
[0013] 基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中GPU的吞吐计算;
[0014] 基于GPU的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列。
[0015] 进一步地,每一所述指令序列包括:
[0016] 对主加载通道进行启闭的主动指令;
[0017] 一个或者多个备用加载通道进行启闭的被动指令;
[0018] 对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令。
[0019] 进一步地,在步骤4)中,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片。
[0020] 进一步地,在步骤4)中,将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准GIS服务资源。
[0021] 另一方面,本发明还提供了一种面向Web端的时空大数据高效加载渲染系统,包括WebGL框架,在WebGL框架下配置Unity3D引擎,在Unity3D引擎中配置Cesium矢量地图插件,通过Cesium矢量地图插件接入标准GIS服务资源,在Unity3D引擎中构建任务加载模块、控制模块、监听模块、以及渲染模块;
[0022] 所述任务加载模块用于向服务器发送加载分布式存储的时空大数据的加载指令;
[0023] 所述控制模块接收所述加载指令,并基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;
[0024] 所述监听模块用于监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;
[0025] 所述渲染模块用于基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0026] 进一步地,所述控制模块具有:
[0027] 解析单元,用于对所述加载指令进行解析,以获取所述加载指令对应的加载内容;
[0028] 检索单元,用于基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表;
[0029] 指令序列生成单元,用于基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中GPU的吞吐计算;基于GPU的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列。
[0030] 进一步地,所述指令序列:对主加载通道进行启闭的主动指令;一个或者多个备用加载通道进行启闭的被动指令;对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令;
[0031] 其中,所述主动指令用于对应的主加载通道的启用,当主动指令执行时,对应的存储索引配置指令将主加载通道配置成具有对应的时空大数据片段的存储索引;所述被动指令用于在对主加载通道的负载状态进行监听过程中,若所述负载状态达到设定阈值时,控制模块控制所述被动指令对应的启用与主加载通道具有协同能力的一个或者多个备用加载通道,同时,控制模块控制存储索引配置指令将一个或者多个备用加载通道配置成具有对应的时空大数据片段的存储索引。
[0032] 进一步地,所述渲染模块具有:
[0033] 判断单元,用于基于API接口的基础参数来确定渲染数据类型,并基于对API接口的基础参数的判断来指导任务管理单元配置渲染任务,并为每一渲染任务对应的启用渲染过程中渲染线程配置的渲染配置单元;
[0034] 分割单元,连接所述判断单元,用于基于任务管理单元对渲染任务的配置来对应的将时空大数据片段进行加载,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片;
[0035] 渲染配置单元,连接所述分割单元和判断单元,用于将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准GIS服务资源,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0036] 进一步地,所述Unity3D引擎中配置有多个API接口,不同的API接口用于对应的加载存储路径不同的时空大数据片段。
[0037] 本申请利用分布式的时空大数据的存储方式,比如以点、线、面数据为代表的矢量数据,通常采用字段属性或几何属性的方式存储;分布式时空大数据存储具有较完整的SQL查询能力,在数据存储过程中,对数据建立多个级别的数据集合,使得在地图显示时,只需拉取相应级别的数据进行渲染显示即可。这种存储机制的好处在于对小比例尺级别的层数据可以单独进行数据简化来降低地理数据的复杂程度,从而在地图绘制过程中大幅提升小比例尺下的地图绘制性能。
[0038] 本申请采用了多节点多线程同步渲染的方法,为了达到这种目的,本申请在渲染之前,利用所述任务加载模块向服务器发送加载分布式存储的时空大数据的加载指令,基于加载指令的识别来在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;当从每一主加载通道/备用加载通道获取对应的时空大数据片段后,通过识别主加载通道/备用加载通道的存储索引对应的在Unity3D引擎中配置API接口,以将对应的时空大数据片段由API接口输入至Unity3D引擎中的渲染模块,所述渲染模块基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。

附图说明

[0039] 图1为本发明的方法流程图;
[0040] 图2为本发明系统框架原理示意图。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 本申请利用分布式的时空大数据的存储方式,比如以点、线、面数据为代表的矢量数据,通常采用字段属性或几何属性的方式存储;分布式时空大数据存储具有较完整的SQL查询能力,在数据存储过程中,对数据建立多个级别的数据集合,使得在地图显示时,只需拉取相应级别的数据进行渲染显示即可。这种存储机制的好处在于对小比例尺级别的层数据可以单独进行数据简化来降低地理数据的复杂程度,从而在地图绘制过程中大幅提升小比例尺下的地图绘制性能。
[0043] 对应的,通过加载分布式时空大数据,也就是说,不同存储路径的时空大数据片段进行对应的渲染,即分布式渲染,且在指渲染过程中的矢量瓦片任务分解,交给多个节点、多个进程同步执行,从而提升渲染的并行程度。利用多个节点的共同工作来完成地图服务各个部分内容的渲染,最终在客户端展现完整的渲染内容,从而大幅减少地图服务的响应时间。
[0044] 在进行分布式存储时,比如基础地理信息含600多个shp数据,我们首选迭代遍历每个shp数据的存储文件夹;获取各个图幅需要的对应的数据名称和数据集;通过人工专家进行标记,输入至迭代模型(神经网络模型)就可以将600多个shp数据通过迭代模型进行分类存储。
[0045] 还需要说明的是,矢量瓦片数据组织分成两层,一层是地图表达范围内的瓦片数据集组织,另一层是单个瓦片内要素的组织。矢量瓦片数据集包含坐标系、投影方式、瓦片编号已实现任意精度、空间位置与矢量瓦片的对应关系,单个瓦片要素的组织模型将几何信息和属性信息分开存储,几何信息主要包括点、线、面和未知要素类,元数据信息包含了图层属性和要素属性。
[0046] 用于描述矢量瓦片属性信息和几何信息的文件格式主要GML/Cesium Vector Tiles/GeoJson(.json)/TopoJSON(.topjson)/Google Protocol Buffers(PBF),其中GeoJson是一种基于Javascript对象表示法的地理空间信息数据交换格式,通用性强,易读取,几乎所有的GIS引擎都支持该格式的动态渲染电子地图数据。
[0047] 还需要说明的是,时空大数据片段的分割利用了矢量瓦片切片工具,目前矢量瓦片切片工具有Mapbox的Mapbox Studio和Tippecanoe,这些工具都可以对矢量数据按照矢量瓦片要求进行切图,虽然这些工具不一致,但它们都需要遵循矢量四叉书金字塔模型的原理,将矢量数据发布成各自格式的矢量瓦片数据包。
[0048] 还需要说明的是,Unity3D和Unreal都具有Cesium插件,可以接入标准格式的GIS服务;其他数据的在线或者本地接入,将在游戏引擎端开发数据接入接口。
[0049] 还需要说明的是,Unity3D和Unreal开放内部API访问接口,允许在代码中封装好接口后暴露给WEB端使用,不同的API访问接口对应不同的数据类型:数据类型包括A:场景控制类:创建场景、天空盒、日照、天气、风力等场景控制效果;B:相机控制类:定位、飞行、轨道控制、视角切换、多机位显示等;C:图层加载类:图层管理、图层新建、图层顺序控制、图层选择、图层透明度等;D:模型类:模型移动、缩放、调整材质、替换模型、显示控制、分组管理等;E:空间分析类:测量、剖切、可视域、阴影分析、通视分析、盒型裁剪等;F:矢量绘制类:点、线、面、图标、图片、几何体绘制、单体化显示等;G:特效类:火焰、水面、爆炸、拖尾、泛光、动态墙等;H:动画类:动画路径设置、动画节点绑定、动画效果设定等;I:标绘类:各民事、军事标志标绘;其他。
[0050] 实施例1:
[0051] 请参阅图1,本发明提供了一种面向Web端的时空大数据高效加载渲染方法,包括如下步骤:
[0052] 步骤1)在WebGL框架下配置Unity3D引擎,在Unity3D引擎中配置Cesium矢量地图插件,通过Cesium矢量地图插件接入标准GIS服务资源,同时在Unity3D引擎中构建一个任务加载模块。
[0053] 步骤2)所述任务加载模块向服务器发送加载分布式存储的时空大数据的加载指令,服务器内设置的控制模块接收所述加载指令,并基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引。
[0054] 步骤3)监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡。
[0055] 步骤4)所述任务加载模块从每一主加载通道/备用加载通道获取对应的时空大数据片段后,通过识别主加载通道/备用加载通道的存储索引对应的在Unity3D引擎中配置API接口,以将对应的时空大数据片段由API接口输入至Unity3D引擎中的渲染模块,所述渲染模块基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0056] 进一步地,基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列的方法包括如下:
[0057] 对所述加载指令进行解析,以获取所述加载指令对应的加载内容。
[0058] 基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表。
[0059] 基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中GPU的吞吐计算。
[0060] 基于GPU的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列。
[0061] 进一步地,每一所述指令序列包括:
[0062] 对主加载通道进行启闭的主动指令。
[0063] 一个或者多个备用加载通道进行启闭的被动指令。
[0064] 对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令。
[0065] 进一步地,在步骤4)中,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片。
[0066] 进一步地,在步骤4)中,将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准GIS服务资源。
[0067] 本申请通过加载分布式时空大数据,也就是说,不同存储路径的时空大数据片段进行对应的渲染,即分布式渲染,且在指渲染过程中的矢量瓦片任务分解,交给多个节点、多个进程同步执行,从而提升渲染的并行程度。利用多个节点的共同工作来完成地图服务各个部分内容的渲染,最终在客户端展现完整的渲染内容,从而大幅减少地图服务的响应时间。
[0068] 实施例2:
[0069] 本发明还提供了一种面向Web端的时空大数据高效加载渲染系统,包括WebGL框架,在WebGL框架下配置Unity3D引擎,在Unity3D引擎中配置Cesium矢量地图插件,通过Cesium矢量地图插件接入标准GIS服务资源,在Unity3D引擎中构建任务加载模块、控制模块、监听模块、以及渲染模块;
[0070] 所述任务加载模块用于向服务器发送加载分布式存储的时空大数据的加载指令;
[0071] 所述控制模块接收所述加载指令,并基于所述加载指令在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引。
[0072] 所述监听模块用于监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡。
[0073] 所述渲染模块用于基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0074] 进一步地,所述控制模块具有:
[0075] 解析单元,用于对所述加载指令进行解析,以获取所述加载指令对应的加载内容。
[0076] 检索单元,用于基于所述加载内容在服务器的索引模块中进行检索,以获取多个存储路径不同的时空大数据片段,以及每一时空大数据片段对应的存储索引和分割列表。
[0077] 指令序列生成单元,用于基于所述存储索引的类别特征码和对应的时空大数据片段的数据大小来配置资源加载过程中GPU的吞吐计算;基于GPU的吞吐计算同一基准时钟下生成每一时空大数据片段进行加载时的指令序列。
[0078] 进一步地,所述指令序列:对主加载通道进行启闭的主动指令;一个或者多个备用加载通道进行启闭的被动指令;对主加载通道、一个或者多个备用加载通道对应的存储索引配置指令。
[0079] 其中,所述主动指令用于对应的主加载通道的启用,当主动指令执行时,对应的存储索引配置指令将主加载通道配置成具有对应的时空大数据片段的存储索引;所述被动指令用于在对主加载通道的负载状态进行监听过程中,若所述负载状态达到设定阈值时,控制模块控制所述被动指令对应的启用与主加载通道具有协同能力的一个或者多个备用加载通道,同时,控制模块控制存储索引配置指令将一个或者多个备用加载通道配置成具有对应的时空大数据片段的存储索引。
[0080] 进一步地,所述渲染模块具有:
[0081] 判断单元,用于基于API接口的基础参数来确定渲染数据类型,并基于对API接口的基础参数的判断来指导任务管理单元配置渲染任务,并为每一渲染任务对应的启用渲染过程中渲染线程配置的渲染配置单元。
[0082] 分割单元,连接所述判断单元,用于基于任务管理单元对渲染任务的配置来对应的将时空大数据片段进行加载,获取每一时空大数据片段分割列表,基于所述分割列表将对应的时空大数据片段分解成多组矢量瓦片。
[0083] 渲染配置单元,连接所述分割单元和判断单元,用于将每一组矢量瓦片分解成多个线或面构成的瓦片要素单元,每一瓦片要素单元对应一个渲染节点,在每一渲染节点下同步接入标准GIS服务资源,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0084] 进一步地,所述Unity3D引擎中配置有多个API接口,不同的API接口用于对应的加载存储路径不同的时空大数据片段。
[0085] 本申请采用了多节点多线程同步渲染的方法,为了达到这种目的,本申请在渲染之前,利用所述任务加载模块向服务器发送加载分布式存储的时空大数据的加载指令,基于加载指令的识别来在同一基准时钟下生成多个资源加载的指令序列,每一指令序列用于一个主加载通道的启闭,每一主加载通道被配置成具有对应的时空大数据片段的存储索引;监听每一主加载通道的负载状态,若所述负载状态达到设定阈值时,所述控制模块调取该加载通道的指令序列,基于所述指令序列以启用一个或者多个备用加载通道,并配置一个或者多个备用加载通道与对应的主加载通道具有相同的时空大数据片段的存储索引,并利用一个或者多个备用加载通道平衡对应的主加载通道的负载均衡;当从每一主加载通道/备用加载通道获取对应的时空大数据片段后,通过识别主加载通道/备用加载通道的存储索引对应的在Unity3D引擎中配置API接口,以将对应的时空大数据片段由API接口输入至Unity3D引擎中的渲染模块,所述渲染模块基于API接口的基础参数来配置渲染任务,将每一时空大数据片段分解成多组矢量瓦片,并对应的将每一组矢量瓦片交给至少一个渲染节点,且对应的在每一渲染节点下以配置多个渲染进程同步渲染。
[0086] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。