基于浏览器的海量三维点云数据的发布方法技术

技术编号:13417881 阅读:550 留言:0更新日期:2016-07-27 15:00
本发明专利技术提出了一种基于浏览器的海量三维点云数据的发布方法,包括以下步骤:S1,计算原始三维点云数据的包围盒,根据该包围盒和规则格网划分理论对原始三维点云数据进行分块,划分出多个分块点云包围盒;S2,对每一个分块点云包围盒构建八叉树,并为每一个八叉树配置其描述文件;S3,将点云八叉树做规则格网划分,并对每个规则格网包含的八叉树构建四叉树结构;S4,浏览器实时向服务器发送查询请求,服务器实时向浏览器返回八叉树查询结果,浏览器对八叉树查询结果进行可见性判断,加载可见八叉树,完成海量三维点云数据动态加载与调度。该发明专利技术实现了海量点云大文件的基于网络的发布与可视化,解决了点云数据难于发布的难题。

【技术实现步骤摘要】

本专利技术涉及三维点云数据网络发布领域,具体涉及一种基于浏览器的海量三维点云数据的发布方法
技术介绍
随着数字城市的建设,大规模三维数据采集技术的不断发展,三维激光扫描技术得到了广泛的应用。它能够对目标场景进行完整的三维坐标采集,在三维空间进行自动的高精度扫描,真实的描述目标场景的整体结构和形态特征,快速获取目标场景点云数据。然而,由于扫描设备的多视整合,目标场景的复杂性,以及所需绘制场景精细程度的不断增加,点云数据的规模日益扩大。面对海量的城市级三维点云数据,如何对其在网络浏览器环境中进行有效发布,成为了目前研究的热点。随着WebGL技术的出现,为互联网浏览器带来无插件3D硬件图形加速,该技术的出现使得三维点云数据无需插件直接在网络浏览器中的可视化成为了可能。开放点云处理库PointCloudLibrary,加拿大Arius3D公司的Pointstream,OpenWebGlobe项目以及德国海德堡大学地理学院的GIScienceGroup研究组都提出了基于WebGL的数据浏览窗口研究方案。在点云数据量比较小的情况下,一般的方法是将点云数据加载进内存直接可视化;但当点云数据量比较大时,由于计算机内存的限制,将所有点云数据加载进内存的方法很难实现对点云的可视化,通常的做法是使用LOD技术和内外存调度技术实现点云数据的绘制,但是在点云数据的动态加载和调度上有待进一步的提高,而且对海量三维点云数据的支持较差。目前,对基于网络浏览器如何有效进行海量城市级的点云数据的发布还没有得到很好的解决。现有三维点云数据的处理存在以下问题:①在对三维点云的数据组织和空间索引方面基本以单一的索引方式为主,缺乏对混合索引的研究,同时,缺乏对海量三维点云数据组织方案上的研究;②对海量三维点云数据的动态加载和调度上的研究有待进一步的提高;③针对海量三维点云数据进行网络发布的研究较少,对如何在浏览器端实现海量三维点云数据的可视化,实现与用户的实时交互等问题,没有有效的解决方案。为了满足基于网络浏览器的海量城市级三维点云数据发布的需求,提出一种基于浏览器的海量三维点云数据的发布方法迫在眉睫。
技术实现思路
为了克服上述现有技术中存在的缺陷,本专利技术的目的是提供一种交互效率高的海量三维点云数据的发布方法。为了实现本专利技术的上述目的,本专利技术提供了一种基于浏览器的海量三维点云数据的发布方法,包括以下步骤:S1,计算原始三维点云数据的包围盒,根据该包围盒和规则格网划分理论对原始三维点云数据进行分块,划分出多个分块点云包围盒;S2,对每一个分块点云包围盒构建八叉树,并为每一个八叉树配置其描述文件;S3,将八叉树按照其坐标投影到二维平面,在该平面上对八叉树做规则格网划分,并对每个规则格网包含的八叉树构建四叉树结构,为八叉树建立空间索引;S4,浏览器实时向服务器发送查询请求,服务器将八叉树查询结果实时返回浏览器,浏览器对八叉树查询结果进行可见性判断,卸载不可见的八叉树,加载可见八叉树,完成海量三维点云数据动态加载与调度,实现在浏览器端对三维点云数据的发布本专利技术中,首先对原始点云数据分块,为每个分块点云构建八叉树,并将八叉树每个节点包含的点云数据作为单独的文件进行存储,在服务器端基于规则格网和四叉树结构为八叉树构建空间索引。本专利技术提高了浏览器端向服务器端进行数据请求和空间查询的效率,实现了海量点云数据的动态加载与调度,提高了交互效率。进一步的,所述步骤1包括以下几个步骤:S1-1,计算三维点云数据的最大值(xMax,yMax,zMax)和最小值(xMin,yMin,zMin),其中,xMax和xMin的计算方法为:S1-2,采用与步骤S1-1中计算最大值和最小值时相同的方法计算yMax、zMax、yMin和zMin;将原始三维点云数据的包围盒表示为:box(xMin,yMin,zMin,xMax,yMax,zMax);S1-3,以边长为N的立方体为标准,结合原始点云数据包围盒,将原始点云数据划分为多个具有相同包围盒大小的数据块,其中,N=2q,其中q为正整数;S1-4,设定一固定偏移原点p0(x0,y0,z0),计算任意点云pi(xi,yi,zi)对应立方体最小角点坐标pci(xci,yci,zci),计算公式为: xc i = f l o o r ( ( x i - x 0 ) / N ) * N + x 0 yc i = f l o o r ( ( y i - 本文档来自技高网
...

【技术保护点】
一种基于浏览器的海量三维点云数据的发布方法,其特征在于,包括以下步骤:S1,计算原始三维点云数据的包围盒,根据该包围盒和规则格网划分理论对原始三维点云数据进行分块,划分出多个分块点云包围盒;S2,对每一个分块点云包围盒构建八叉树,并为每一个八叉树配置其描述文件;S3,将八叉树按照其坐标投影到二维平面,在该平面上对八叉树做规则格网划分,并对每个规则格网包含的八叉树构建四叉树结构,为八叉树建立空间索引;S4,浏览器实时向服务器发送查询请求,服务器将八叉树查询结果实时返回浏览器,浏览器对八叉树查询结果进行可见性判断,卸载不可见的八叉树,加载可见八叉树,完成海量三维点云数据动态加载与调度,实现在浏览器端对三维点云数据的发布。

【技术特征摘要】
1.一种基于浏览器的海量三维点云数据的发布方法,其特征在于,包括以下步骤:
S1,计算原始三维点云数据的包围盒,根据该包围盒和规则格网划分理论对原始三维
点云数据进行分块,划分出多个分块点云包围盒;
S2,对每一个分块点云包围盒构建八叉树,并为每一个八叉树配置其描述文件;
S3,将八叉树按照其坐标投影到二维平面,在该平面上对八叉树做规则格网划分,并对
每个规则格网包含的八叉树构建四叉树结构,为八叉树建立空间索引;
S4,浏览器实时向服务器发送查询请求,服务器将八叉树查询结果实时返回浏览器,浏
览器对八叉树查询结果进行可见性判断,卸载不可见的八叉树,加载可见八叉树,完成海量
三维点云数据动态加载与调度,实现在浏览器端对三维点云数据的发布。
2.根据权利要求1所述的基于浏览器的海量三维点云数据的发布方法,其特征在于,所
述步骤1包括以下几个步骤:
S1-1,计算三维点云数据的最大值(xMax,yMax,zMax)和最小值(xMin,yMin,zMin),其
中,xMax和xMin的计算方法为:
S1-2,采用与步骤S1-1中计算最大值和最小值时相同的方法计算yMax、zMax、yMin和
zMin;将原始三维点云数据的包围盒表示为:box(xMin,yMin,zMin,xMax,yMax,zMax);
S1-3,以边长为N的立方体为标准,结合原始点云数据包围盒,将原始点云数据划分为
多个具有相同包围盒大小的数据块,其中,N=2q,其中q为正整数;
S1-4,设定一固定偏移原点p0(x0,y0,z0),计算任意点云pi(xi,yi,zi)对应立方体最小角
点坐标pci(xci,yci,zci),计算公式为:
x c i = f l o o r ( ( x i - x 0 ) / N ) * N + x 0 yc i = f l o o r ( ( y i - y 0 ) / N ) * N + y 0 z c i = f l o o r ( ( z i - z 0 ) / N ) * N + z 0 , ]]>其中floor(x)含义是向下取整;
S1-5,将具有相同最小角点坐标的点云划分入同一分块点云包围盒中,完成分块点云
包围盒的划分,从而完成海量点云数据的分块处理。
3.根据权利要求2所述的基于浏览器的海量三维点云数据的发布方法,其特征在于,步
骤S1-4中的固定偏移原点p0(x0,y0,z0)的x坐标,y坐标和z坐标分别为:x0=xMin,y0=yMin,
z0=zMin。
4.根据权利要求2所述的基于浏览器的海量三维点云数据的发布方法,其特征在于,所
述步...

【专利技术属性】
技术研发人员:向泽君吕楠苟永刚陈汉殷飞明镜龙川徐占华罗再谦刘寓张婕杨元向华饶鸣梁建国滕德贵刘颖黄志胡小林孙晶晶
申请(专利权)人:重庆市勘测院重庆数字城市科技有限公司
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1