一种大区域网络三维噪声地图的快速渲染方法与流程

文档序号:13423186阅读:789来源:国知局
一种大区域网络三维噪声地图的快速渲染方法与流程

本发明涉及网络三维噪声地图渲染绘制技术领域,更具体地,涉及一种大区域网络三维噪声地图的快速渲染方法。



背景技术:

三维噪声地图不仅能够展示地面的噪声分布情况,而且能够展示建筑物表面的噪声分布情况。当使用者对浏览器上的三维噪声地图进行缩放、平移等操作的时候,浏览器需要重新渲染地图画面,因此,在浏览器上,大区域的三维噪声地图的渲染展示是一个频繁并实时地重绘的过程。此外,在渲染绘制之前向数据服务器请求并加载区域内的所有数据以供渲染绘制是不合理的,不仅数据量大、加载时间长、效率低,而且会占用太多的计算机的内存空间,同时也给数据服务器造成很大的压力。

当前网络三维噪声地图借助第三方浏览器插件实现三维噪声地图的网络发布。有研究者通过silverlight浏览器插件将cadna/a切割生成的瓦片噪声地图发布到网络中,使噪声地图可以通过网络浏览器查看。但是,这种方式要求在使用者的计算机或浏览器中安装额外的软件,也对计算机的软硬件有一定的性能要求,不具有通用性。

由此可见,现今大区域的网络三维噪声地图的渲染展示仍的方法然存在缺乏通用性,不能流畅地、实时地渲染绘制的问题。



技术实现要素:

本发明的目的在于克服网络三维噪声地图渲染绘制的现有问题,提供一种实时、快速、具有通用性的大区域网络三维噪声地图的渲染方法。

为了实现上述的发明目的,本发明采用的技术方案如下:

一种大区域网络三维噪声地图的快速渲染方法,包括以下步骤:

a.以地图瓦片的形式存储大区域的基础数据。按照地图瓦片服务(tms)的分割规则,将大区域地图分割成特定层级的多个小区域地图瓦片,并且对每个区域进行编号,接着将基础数据(道路数据、建筑物数据和噪声数据)按照地理位置分别存储到各个小区域地图瓦片所对应的数据块单元中,各个数据块单元以瓦片编号进行命名标识。

进一步地,使用网络地图的瓦片编号坐标体系对分割生成的各个地图瓦片区域进行编号。

进一步地,在道路数据存储方面,以组成道路路段的直线路段作为单元,将每条直线路段分配至其所经过的每个地图瓦片区域中;在建筑物数据存储方面,利用建筑物角点轮廓的几何重心来确定建筑物所属的地图瓦片区域,将建筑物分配至所属地图瓦片区域中;在噪声数据存储方面,以噪声接收点阵列的形式存储数据,阵列中每个结点包含其坐标属性和噪声值属性,而且噪声接收点阵列将其所在表面划分成以噪声接收点为结点的网格。

进一步地,将建筑物噪声计算表面的网格步长设置为4m。

进一步地,在以瓦片地图服务机制存储的数据中,每张地图瓦片的大小对应瓦片地图服务标准的第18层级。

b.根据地图浏览范围加载相应区域的基础数据。利用cesium中提供的获取当前视域范围内的瓦片编号集合的功能,并结合以瓦片地图服务机制存储数据的基础,在渲染过程中,只加载当前地图浏览范围内的各个瓦片所对应的数据。

进一步地,获取当前视域范围内的瓦片编号集合的功能,是利用基于webgl和javascript的浏览器三维地图引擎cesium所提供的瓦片地图服务(tms),根据当前的视野范围和缩放层级,自动计算视野中的瓦片编号集合,加载地图底图和基础数据,实现随浏览区域的变换而按需加载数据和绘制噪声地图。

c.根据噪声接收点的噪声值使用插值的方法对矩形网格内部的颜色进行填充。根据不同的噪声值大小,为各个噪声接收点赋予颜色值,并且根据网格角点的颜色值,通过webgl使用显卡硬件加速的功能对每个矩形网格内部的颜色进行线性插值和渲染,以此渲染绘制网络三维噪声地图。

与现有技术相比,本发明具有以下优点:

本发明提出一种大区域网络三维噪声地图的快速渲染方法。该方法以地图瓦片的形式存储大区域的基础数据。基于瓦片地图服务的规则,将大区域地图分割成特定层级的小区域地图,并对每个区域进行编号,将基础数据按照地理位置存储至以瓦片区域为存储单元的数据块中,当需要获取数据时,则以编号索引到对应的数据块中。该方法的数据存储形式能够提高数据读取和查询的速度,以提高渲染的效率。对于大区域的地图,该方法通过控制渲染绘制区域范围,利用基于webgl和javascript的浏览器三维地图引擎cesium中提供的获取当前视域范围内的瓦片编号集合的功能,并结合以瓦片地图服务机制存储数据的基础,只加载当前地图浏览范围内的各个瓦片所对应的数据,这样可以减少在同一时间渲染绘制的数据量和工作量,以达到快速渲染的效果。此外,根据不同的噪声值大小,为各个噪声接收点赋予颜色值,并且根据网格角点的颜色值,通过webgl使用显卡硬件加速的功能对每个矩形网格内部的颜色进行线性插值和渲染。浏览器三维地图引擎cesium是完全基于webgl和javascript的,浏览器平台支持webgl技术,使用cesium开发的系统几乎可以在所有操作系统中运行,因此,该法可应用于所用支持webgl技术的浏览器平台,具有很强的通用性。同时,webgl使用显卡硬件加速的功能对网格进行渲染大大提高网络三维噪声地图的渲染绘制效率。

本发明是一种大区域网络三维噪声地图的快速渲染方法,解决了大区域网络三维噪声地图在渲染绘制方面缺乏通用性,不能快速、流畅地渲染绘制等问题。

附图说明

图1为一种大区域网络三维噪声地图的快速渲染方法的流程图。

图2将道路及建筑物数据按瓦片区域分割并存储的方式。

图3为本发明中网格化表面噪声分布渲染绘制流程,(a)噪声值转化为颜色值,(b)渲染单个网格,(c)渲染单个表面。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

如图1所示,本发明提出的一种大区域网络三维噪声地图的快速渲染方法,主要包括3个部分:以地图瓦片的形式存储大区域的基础数据、根据当前地图浏览范围加载相应区域的基础数据、根据噪声接收点的噪声值使用插值的方法对矩形网格内部的颜色进行填充。整个网络三维噪声地图渲染绘制流程如下:

步骤1:在渲染之前,将大区域的基础数据(道路数据、建筑物数据和噪声数据)以瓦片地图服务机制存储在数据存储服务器中。在道路数据的存储方面,以组成道路路段的直线路段为单元,将每条直线路段分配至其所经过的每个瓦片区域中。在建筑物数据的存储方面,根据每栋建筑角点轮廓的几何重心经纬度所转换到的瓦片编号,将其分配到所对应的瓦片区域中。在噪声数据存储方面,以噪声接收点阵列的形式存储数据,阵列中每个结点包含其坐标属性和噪声值属性,而且噪声接收点阵列将其所在表面划分成以噪声接收点为结点的网格。如图2所示,道路r1由三个直线路段ab、bc、cd组成,在进行道路数据存储时,会将各直线路段分别分配到如下瓦片区域:

ab直线路段:tile(1,0),tile(2,0)

bc直线路段:tile(2,0),tile(3,0)

cd直线路段:tile(3,0)

在进行建筑物数据存储时,建筑物a、c被分配到瓦片区域(1,2)中,建筑物b、d被分配到瓦片区域(2,2)中,建筑物e被分配到瓦片区域(3,1)中。

如图3(a)所示。矩形abcd由噪声接收点a、b、c、d组成,形成渲染表面abcd噪声接收点阵列中的一个矩形网格,其中,将建筑物噪声计算表面的网格步长设置为4m。

步骤2:根据硬件设备的性能不同,设置允许同时绘制的的噪声分布范围或者当前地图浏览范围。

步骤3:利用基于webgl和javascript的浏览器三维地图引擎cesium中提供的获取当前范围内的瓦片编号集合的功能,向数据存储服务器发起请求,根据当前的视野范围和缩放层级,自动计算视野范围中的瓦片编号集合,加载当前范围内包含的地图瓦片的基础数据。

步骤4:利用已经网格化的噪声计算表面进行噪声地图的渲染绘制。其中,网格化的噪声计算表面的渲染过程如下:

(1)如图3(b)所示,根据不同的噪声值大小,为每个噪声接收点赋予颜色值,a、b、d三个噪声接收点的噪声值为80db,被赋予红色,c噪声接收点的噪声值为50db,被赋予黄色;

(2)根据噪声接收点的坐标属性,使用webgl技术在三维场景中绘制矩形abcd;

(3)如图3(c)所示通过webgl技术使用显卡硬件加速的功能对矩形abcd内部填充颜色值,其内部会根据四个角点a、b、c、d的颜色值自动插值渲染,完成矩形网格abcd的渲染;

(4)以同样方式完成同一表面其他网格的渲染。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实时方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1