三维gis海量矢量数据渲染方法及装置制造方法

文档序号:6622377阅读:286来源:国知局
三维gis海量矢量数据渲染方法及装置制造方法
【专利摘要】本发明提供一种三维GIS海量矢量数据渲染方法及装置,所述方法包括以下步骤:对三维GIS海量矢量数据按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引;根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次;建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。本发明的一种三维GIS海量矢量数据渲染方法及装置,能够实时渲染出矢量数据的动态状态变化,并按时间、区域顺序进行可视化渲染,渲染后的海量矢量数据呈现出的效果是比较渐变的,极大地提高了海量矢量数据的渲染速度和效率。
【专利说明】三维GIS海量矢量数据渲染方法及装置

【技术领域】
[0001]本发明涉及地理信息系统,特别是涉及一种三维GIS海量矢量数据渲染方法以及一种三维GIS海量矢量数据渲染装置。

【背景技术】
[0002]虚拟现实技术综合利用了计算机图形学、仿真技术、多媒体技术、人工智能技术、计算机网络技术、并行处理技术和多传感器技术,模拟人的视觉、听觉、触觉等感觉器官功能,创建一种虚拟环境,使人能够沉浸在计算机生成的虚拟境界中,并能够通过自然的方式与之进行实时交互。
[0003]目前,三维GIS (Geographic Informat1n System,地理信息系统)可视化技术研究已取得了一定的成果,但在提高海量数据的漫游速度、提高场景的真实感和美感、景观数据库的建立等方面仍有待进一步的深入研究。
[0004]视景体是一个满足透视投影原理的四棱锥体,用来模拟人眼的视觉系统。视景体内的地形即是计算机三维场景的可见区域。
[0005]在海量矢量可视化实际的应用系统中,有很多其他的数据,比如道路、河流、湖泊和建筑等数据,如何对这些海量数据进行有效的综合管理和调度是今后研究的目标。
[0006]矢量数据渲染是指矢量数据的三维空间显示,使得矢量数据在三维空间保留其特征,如空间信息和属性信息等,并适用于大范围的漫游、缩放和保持数据的真实性。一个三维场景的渲染,渲染效率的提高是一个难点,要想获得高效的场景渲染,处理海量数据,在目前难度还是比较大。
[0007]传统的矢量数据渲染方法中,通过将三维GIS矢量数据整体读入显卡并遍阅一次,不做预处理,以得到真实的渲染结果。但是采用这种方法,当矢量数据比较大时,尤其是海量矢量数据时,所消耗的时间会比较长,导致渲染的速度比较慢。


【发明内容】

[0008]基于此,有必要针对上述渲染海量矢量数据的速度比较慢的问题,提供一种三维GIS海量矢量数据渲染方法及装置。
[0009]为实现上述目的,本发明采用如下的技术方案:
[0010]一种三维GIS海量矢量数据渲染方法,包括以下步骤:
[0011]对三维GIS海量矢量数据按照次序进行分块按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引;
[0012]根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次;
[0013]建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
[0014]一种三维GIS海量矢量数据渲染装置,包括:
[0015]分块模块,用于对三维GIS海量矢量数据按照次序进行分块按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引;
[0016]分批次模块,用于根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次;
[0017]多线程渲染模块,用于建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
[0018]由以上方案可以看出,本发明的一种三维GIS海量矢量数据渲染方法及装置,通过对三维GIS海量矢量数据分块分批次的进行多线程渲染,避免了传统方法中需要等待全部数据渲染完后才可以进行另一批次的渲染所带来的消耗时间长、渲染速度慢的问题,能够实时渲染出矢量数据的动态状态变化,并按时间、区域顺序进行可视化渲染,渲染后的海量矢量数据呈现出的效果是比较渐变的,极大地提高了海量矢量数据的渲染速度和效率。

【专利附图】

【附图说明】
[0019]图1为本发明的一种三维GIS海量矢量数据渲染方法的流程示意图;
[0020]图2为本发明的一种三维GIS海量矢量数据渲染装置的结构示意图。

【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]参见图1所示,一种三维GIS海量矢量数据渲染方法,包括以下步骤:
[0023]步骤S101,对三维GIS海量矢量数据按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引,然后进入步骤S102。
[0024]需要说明的是,上述的矢量数据,可以是不同数据格式、不同来源的异构矢量数据。另外,上述步骤中的次序可以是区域空间的次序,例如从左到右,或从里到外等等。
[0025]在其中一个实施例中,可以采用四叉树的方式来进行矢量数据的分块,并建立空间索引。
[0026]步骤S102,根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次,然后进入步骤S103。例如,可以将相同或相似的属性(例如信号污染严重的矢量数据)归类为一个矢量渲染批次。
[0027]步骤S103,建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
[0028]所谓的多线程渲染,即通过多线程模型体系,采用一个线程渲染一个批次矢量数据的方式,同时进行多个批次矢量数据的渲染。
[0029]作为一个较好的实施例,在根据所述空间索引对各批次的矢量数据进行多线程渲染之前,还包括步骤:
[0030]将每批次矢量数据进行存储,包括基本的ID序号字段、几何图形集等基本字段信息,其中几何图形集字段存储矢量要素的几何实体形状,比如点、线、面等几何数据。由于本发明中批次的矢量数据可以是动态创建出来的,保存批次矢量数据以便快速修改,读取矢量数据,这样可以提高渲染效率;
[0031]在数据库中建立与任一批次矢量数据对应的空间索引表,并进行矢量数据入库。
[0032]另外,作为一个较好的实施例,在步骤S103中进行多线程渲染的过程具体可以包括如下步骤:
[0033]步骤S1031,根据所述多线程模型体系实时调度矢量数据,把每一批次矢量数据放到渲染队列中,以便对每批次矢量数据进行处理;
[0034]步骤S1032,对区域矢量图层进行动态绘制,对所述渲染队列中的每个批次矢量数据生成内存位图放入缓存;
[0035]步骤S1033,在矢量数据存储的缓存区域取出批次矢量数据的内存位图进行绘制,通过所述空间索引表获取对应的矢量数据实体集;
[0036]步骤S1034,获取每一批次预先设定好的矢量渲染风格配置信息,并按照时间或事件发展态势,根据所述矢量渲染风格配置信息对关联的矢量数据进行动态渲染。
[0037]需要说明的是,事件发展态势即是影响因素对矢量数据持续的作用。
[0038]本发明的方案中,可以按照矢量数据的空间顺序进行多线程渲染,并且可以按照区域进行交叉渲染。例如,采用线程1、2、3来对区域1、2、3进行渲染时,当线程1、2完成后,线程3还在渲染,此时,线程1、2继续渲染区域4、5,不用等待区域3完成;在另外一个例子中,采用线程1、2、3对一批次区域1、2、3进行渲染时,当线程1、2完成后,线程3还在渲染,此时,线程1、2继续渲染下一批次区域1、2,不用等待前一批次区域3完成;这种现象即波浪渲染,一波一波渲染开来。
[0039]在其中一个实施例中,在完成一批次矢量数据渲染后,即时将该批次矢量数据进行刷新,而不用等全部渲染完成后再刷新;并在当前线程内继续进行下一批次的矢量数据渲染,直到完成可见场景区域内的所有矢量数据渲染。
[0040]本发明的方案中,由于对矢量数据分块分批次,从而进行有序动态交叉渲染,并用多线程按批次有效绘制矢量数据,并实时渲染出矢量数据动态状态变化,按时间、区域顺序进行可视化渲染,因此渲染后的海量矢量数据所呈现出的效果是比较渐变的,大大提高了批次动态平滑渲染矢量数据效率;并且,由于本发明中对复杂的海量地理信息进行检索、分析,从而有益于对数据进行整理,有序、有重点的进行显示。另外,本发明用多核线程按批次有效进行绘制矢量数据,可以充分利用计算机硬件水平,使海量的矢量数据绘制效率最大化。
[0041]本发明解决了大规模海量矢量数据按批次动态渲染实时可视化,保证了场景漫游时场景显示的实时、平滑和连续性,并保持矢量均衡渲染过渡的连续性。
[0042]下面描述本发明方案的几个具体应用:
[0043]一、当突发事件时,切换到突发事件地理位置,按先后顺序依次绘制3个时间范围内的突发事件影响扩散区域,并用不同颜色区分。按照时间把每个批次矢量区域进行动态渲染,并按时间顺序把渲染效果渲染出来;
[0044]二、对显示事故多发区域进行统计,使用气泡图来实现,气泡大小与事故数量对应。通过对显示事故类型统计,使用分段柱形图,段颜色代表事故类别,段长度代表数量。按照月份的事故统计进行动态的变化渲染出来;
[0045]三、按区域对矢量数据进行可视化渲染。假设里层是红,代表影响严重;中层是黄,代表影响一般;外层是绿,代表影响轻微,并按照实时的时间预测影响范围的扩展,实时渲染影响的变化渲染效果;
[0046]四、每隔0.5秒在数据库中写入一条相关通话信息的数据,这是最原始的通话记录的信息;然后把最大外接矩形,按100*100米的小格进行分割,大概会生成400万个面;最后把所有的通话信息归纳到100*100米的小方格中,然后根据每个小方格内值渲染不同的颜色,通过不同的眼神渲染可以直观的给用户展示区域的通话情况。
[0047]实施例二
[0048]在上述实施例一的方案中,通过对矢量数据分块和多线程数据动态调度,有效减少了系统一次性处理的数据量。本实施例中,应用基于四叉树结构的简化算法对调入内存中的矢量数据进行合理简化,通过在三维场景漫游时根据视点的运动趋势计算出预见区域,来提高场景漫游的效率与可视化效果。即在本实施例中,一种三维GIS海量矢量数据渲染方法,还可以包括如下步骤:
[0049]在三维GIS场景漫游时,根据视点的运动趋势计算预见区域,并将该预见区域的批次矢量数据加载到缓存中。
[0050]在三维场景漫游时,视点的运动趋势是随机的,预见区域的选择要包括不同运动趋势可能显示的范围。预见区域如果太大或太小都会影响到漫游的连贯性和实时性,通过预先将预见区域的批次矢量数据加载到缓存中,可以进一步提高渲染海量矢量数据的效率。下面进行详细描述:
[0051]步骤S201,将不同数据格式、不同来源的异构矢量数据,按照适量区域,采用四叉树的方式进行矢量数据分块,并建立空间索引;
[0052]步骤S202,海量矢量数据分块之后组合起来构成多个矢量渲染批次;
[0053]步骤S203,初始化三维场景,读入初始可见批次矢量数据;
[0054]步骤S204,开始场景漫游;
[0055]步骤S205,启动矢量数据调度线程;
[0056]步骤S206,判断可见批次数据是否全部在内存中,如果没有,进入步骤S209。如果有,直接执行下一步;
[0057]步骤S207,批次矢量数据更新到三维场景;
[0058]步骤S208,若可见区域改变,则计算当前视角合适的预见区域,进入步骤S205 ;
[0059]步骤S209,调入没在缓存中的可见批次矢量数据;
[0060]步骤S210:计算场景视角当前预可见批次矢量数据;
[0061]步骤S211,后台加载预可见数据到批次矢量数据缓存;
[0062]步骤S212,删除场景缓存中不可见批次矢量数据;
[0063]步骤S213,判断是否停止漫游,如果没有则返回到步骤S205。
[0064]另外,与上述一种三维GIS海量矢量数据渲染方法相对应,本发明还提供一种三维GIS海量矢量数据渲染装置,如图2所示,包括:
[0065]分块模块101,用于对三维GIS海量矢量数据按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引;
[0066]分批次模块102,用于根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次;
[0067]多线程渲染模块103,用于建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
[0068]作为一个较好的实施例,所述三维GIS海量矢量数据渲染装置还可以包括:
[0069]存储模块,用于将每批次矢量数据进行存储;
[0070]索引表建立模块,用于在数据库中建立与任一批次矢量数据对应的空间索引表,并进行矢量数据入库。
[0071]作为一个较好的实施例,所述多线程渲染模块可以包括:
[0072]调度模块,用于根据所述多线程模型体系实时调度矢量数据,把每一批次矢量数据放到渲染队列中;
[0073]缓存模块,用于对所述渲染队列中的每个批次矢量数据生成内存位图放入缓存;
[0074]绘制模块,用于在矢量数据存储的缓存区域取出批次矢量数据的内存位图进行绘制,通过所述空间索引表获取对应的矢量数据实体集;
[0075]动态渲染模块,用于获取每一批次预先设定好的矢量渲染风格配置信息,并按照时间或事件发展态势,根据所述矢量渲染风格配置信息对关联的矢量数据进行动态渲染。
[0076]作为一个较好的实施例,所述三维GIS海量矢量数据渲染装置还可以包括:
[0077]刷新模块,用于在完成一批次矢量数据渲染后,即时将该批次矢量数据进行刷新,并在当前线程内继续进行下一批次的矢量数据渲染,直到完成可见场景区域内的所有矢量数据渲染。
[0078]作为一个较好的实施例,所述三维GIS海量矢量数据渲染装置还可以包括:
[0079]预见数据加载模块,用于在三维GIS场景漫游时,根据视点的运动趋势计算预见区域,并将该预见区域的批次矢量数据加载到缓存中。
[0080]上述一种三维GIS海量矢量数据渲染装置的其它技术特征与本发明的一种三维GIS海量矢量数据渲染方法相同,此处不予赘述。
[0081]通过以上方案可以看出,本发明的一种三维GIS海量矢量数据渲染方法及装置,通过对三维GIS海量矢量数据分块分批次的进行多线程渲染,避免了传统方法中需要等待全部数据渲染完后才可以进行另一批次的渲染所带来的消耗时间长、渲染速度慢的问题,能够实时渲染出矢量数据的动态状态变化,并按时间、区域顺序进行可视化渲染,渲染后的海量矢量数据呈现出的效果是比较渐变的,极大地提高了海量矢量数据的渲染速度和效率。
[0082]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种三维GIS海量矢量数据渲染方法,其特征在于,包括以下步骤: 对三维GIS海量矢量数据按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引; 根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次; 建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
2.根据权利要求1所述的三维GIS海量矢量数据渲染方法,其特征在于,在根据所述空间索引对各批次的矢量数据进行多线程渲染之前,还包括步骤: 将每批次矢量数据进行存储; 在数据库中建立与任一批次矢量数据对应的空间索引表,并进行矢量数据入库。
3.根据权利要求2所述的三维GIS海量矢量数据渲染方法,其特征在于,所述进行多线程渲染的过程包括: 根据所述多线程模型体系实时调度矢量数据,把每一批次矢量数据放到渲染队列中; 对所述渲染队列中的每个批次矢量数据生成内存位图放入缓存; 在矢量数据存储的缓存区域取出批次矢量数据的内存位图进行绘制,通过所述空间索引表获取对应的矢量数据实体集; 获取每一批次预先设定好的矢量渲染风格配置信息,并按照时间或事件发展态势,根据所述矢量渲染风格配置信息对关联的矢量数据进行动态渲染。
4.根据权利要求3所述的三维GIS海量矢量数据渲染方法,其特征在于,还包括步骤: 在完成一批次矢量数据渲染后,即时将该批次矢量数据进行刷新,并在当前线程内继续进行下一批次的矢量数据渲染,直到完成可见场景区域内的所有矢量数据渲染。
5.根据权利要求1至4任意一项所述的三维GIS海量矢量数据渲染方法,其特征在于,还包括步骤: 在三维GIS场景漫游时,根据视点的运动趋势计算预见区域,并将该预见区域的批次矢量数据加载到缓存中。
6.一种三维GIS海量矢量数据渲染装置,其特征在于,包括: 分块模块,用于对三维GIS海量矢量数据按照次序进行分块,并建立分块后的区域以及矢量数据的空间索引; 分批次模块,用于根据分块后的矢量数据的属性对矢量数据进行组合,构成多个矢量渲染批次; 多线程渲染模块,用于建立与所述多个矢量渲染批次相对应的多线程模型体系,并在该多线程模型体系中根据所述空间索引对各批次的矢量数据进行多线程渲染。
7.根据权利要求6所述的三维GIS海量矢量数据渲染装置,其特征在于,还包括: 存储模块,用于将每批次矢量数据进行存储; 索引表建立模块,用于在数据库中建立与任一批次矢量数据对应的空间索引表,并进行矢量数据入库。
8.根据权利要求7所述的三维GIS海量矢量数据渲染装置,其特征在于,所述多线程渲染模块包括: 调度模块,用于根据所述多线程模型体系实时调度矢量数据,把每一批次矢量数据放到渲染队列中; 缓存模块,用于对所述渲染队列中的每个批次矢量数据生成内存位图放入缓存; 绘制模块,用于在矢量数据存储的缓存区域取出批次矢量数据的内存位图进行绘制,通过所述空间索引表获取对应的矢量数据实体集; 动态渲染模块,用于获取每一批次预先设定好的矢量渲染风格配置信息,并按照时间或事件发展态势,根据所述矢量渲染风格配置信息对关联的矢量数据进行动态渲染。
9.根据权利要求8所述的三维GIS海量矢量数据渲染装置,其特征在于,还包括: 刷新模块,用于在完成一批次矢量数据渲染后,即时将该批次矢量数据进行刷新,并在当前线程内继续进行下一批次的矢量数据渲染,直到完成可见场景区域内的所有矢量数据渲染。
10.根据权利要求6至9任意一项所述的三维GIS海量矢量数据渲染装置,其特征在于,还包括: 预见数据加载模块,用于在三维GIS场景漫游时,根据视点的运动趋势计算预见区域,并将该预见区域的批次矢量数据加载到缓存中。
【文档编号】G06F17/30GK104200506SQ201410379401
【公开日】2014年12月10日 申请日期:2014年8月4日 优先权日:2014年8月4日
【发明者】林良辉 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1