1.本发明属于计算机图形学的空间场景管理技术领域,进一步涉及数字地球 大范围空间下三维空间场景高效管理和查询的技术,具体涉及一种兼容北斗网 格的数字地球三维空间场景管理方法。
背景技术:2.数字地球是地球的虚拟形式。数字地球系统在地理信息、虚拟现实、战场 仿真等行业上具有广泛的应用。特别是其提供了可编辑、立体、多层次的作战 场景,淘汰了以往的平面作战概念图。
3.场景管理算法是数字地球系统的重要内容,涉及了数字地球的渲染效率和 系统运行效率。相对于普通场景,数字地球场景具有特殊性。数字地球上,球 坐标系更适合表达物体的位置。相机在地球上的移动幅度较大,涉及的数量变 化大。由此,引入整数编码在某种程度上避免了浮点数运算的误差问题。
4.空间索引是场景管理的重要内容。空间索引的结构间接决定了系统运行效 率。无论是碰撞检测的加速结构还是可见性剔除的加速结构都依赖于空间索引 的结构。那么建造适合数字地球的空间索引结构至关重要。
5.实际地球上具体物体数量多。实际地球上涉及到万事万物。数字地球想要 实现的,就是将对实际世界进行克隆,创建虚拟形式的地球。每个的物体在实 际世界的位置状态等数字信息传递到虚拟空间。虚拟空间能根据这些信息还原 真实的世界。现在物联网高速发展,传感器随处可见。数字地球要实现将这些 传感器采集的数据进行可视化呈现。而且,每个传感器的具体位置信息都需要 明确的标识,这样才能对采集到的数据呈现更加具体的意义。
6.实际地球上的空间层次多,从深海到太空。地球的半径约为6731km。人造 卫星最远距离地球几万公里,活动在几倍地球半径之外。卫星、宇宙飞船、飞 机、汽车、轮船、潜艇这些物体一般都不是活动在一个海拔高度上。数字地球 涉及到纵向高度跨度大,空间层级结构错综复杂。
7.实际地球的数据分布不均匀。几乎大部分的物体都是分布在近地表面。而 在稍远一些的高空和深海几乎没有什么物体。在数字地球中就意味在近地表面 有大量的模型需要绘制和管理,而在稍远一些的高空和深海所需要绘制管理的 模型就相对稀疏。
8.北斗网格位置码是为我国自主研制的北斗导航定位系统设计的国家标准, 能对地球上的空间做到无缝嵌套剖分。北斗网格是固定的十层结构,剖分的最 小精度为1.5cm。但北斗网格位置码在数字地球的三维场景管理上的相关工作还 少见报道。因此需要一种兼容北斗网格的、高效的数字地球三维空间场景管理 方法。
技术实现要素:9.为了解决上述问题,本发明提供了一种兼容北斗网格的数字地球三维空间 场景
管理方法,具体包括如下步骤:
10.基于北斗网格码,定义北斗网格空间包围盒,给出其编码方式;
11.给出北斗网格空间包围盒的相交测试方法;
12.对每个物体寻找能包含物体的最小北斗网格空间包围盒。
13.进一步的,北斗网格空间包围盒的编码方式包括如下步骤:
14.截取北斗二维编码和北斗高度编码的前面若干层层次结构,形成对二维经 纬度范围及高度范围的层次细节结构;
15.对截取过的北斗二维编码和北斗高度编码进行组合,形成一个三维空间包 围盒编码。
16.进一步的,北斗网格空间包围盒的相交测试方法包括如下步骤:
17.获取要进行相交测试的两个包围盒的北斗网格空间包围盒编码;
18.在经纬度和高度上分别截取两个包围盒编码头部最小长度,重新进行组合;
19.判断重新截取组合后的两个包围盒编码是否相同;
20.如果相同判断为相交,否则判断为不交。
21.进一步的,寻找能包含物体的最小北斗网格空间包围盒包括如下步骤:
22.对每一个物体,获取节点位置信息;
23.将节点位置信息转换为北斗网格码;
24.获取物体包围盒数据;
25.在经纬度和高度两个方面,逐渐向上查询该级北斗网格包围盒,并将其与 物体包围盒进行相交测试,直到该级北斗网格包围盒与物体包围盒不相交为止;
26.输出该北斗网格包围盒编码,该北斗网格包围盒编码代表的三维空间范围 就是能包含该物体的最小北斗网格空间包围盒。
27.进一步的,还包括如下步骤:
28.建立兼顾两极地区的r树结构北斗网格空间层次包围盒;
29.基于该r树结构实现空间搜索。
30.进一步的,建立兼顾两极地区的r树结构北斗网格空间层次包围盒包括如 下步骤:
31.将数字地球空间范围在第一层按地区分为三个子树,分为北极地区,南极 地区以及正常纬度地区;
32.将同一个地区内的物体以及它的北斗网格空间包围盒,作为对应子树的叶 结点;
33.对三个地区,分别以自底向上的、与建立r树相同的方式,逐层建立起层 次包围盒树;对邻近的需要聚合的若干个结点,将它们的北斗网格包围盒,向 上聚合形成更高一层结点的最小外接北斗网格包围盒;
34.将经过相交测试后形成的三颗r树作为一个根结点下的三颗子树,根结点 代表了整个数字地球表面空间范围。
35.进一步的,基于该r树结构实现空间搜索包括如下步骤:
36.根据经纬度信息,确定空间搜索的物体位于三颗r树中的哪一颗;
37.利用广度优先搜索算法搜索确定的r树。
38.本发明的有益效果在于:本发明提供的兼容北斗网格的数字地球三维空间 场景
管理方法,高效率兼容北斗网格码在数字地球上的使用,在程序编写方面, 也只需通过位运算进行实现;逐级建立起兼顾两极地区的r树结构北斗网格空 间层次包围盒,基于该r树结构可实现空间高效搜索,特别适用于北斗网格码 定义的空间位置。
附图说明
39.图1本发明寻找能包含物体的最小北斗网格空间包围盒的流程示意图,
40.图2.本发明相交测试的流程示意图。
具体实施方式
41.下面结合附图和实施例对本发明作进一步的描述,下列实施例仅用于解释 本发明的发明内容,不用于限定本发明的保护范围。
42.本发明提出了一种兼容北斗网格的数字地球三维空间场景管理方法,基于 北斗网格码,定义北斗网格空间包围盒,给出其编码方式;然后按照给出的北 斗网格空间包围盒的相交测试方法,对每个物体寻找能包含物体的最小北斗网 格空间包围盒。
43.本技术的北斗网格包围盒的定义方式和编码方法原理如下:
44.基于北斗网格的包围盒的定义方式和编码方法主要基于北斗网格码,不同 的是北斗网格码是固定长度且每位码元都有其固定含义。但是基于北斗网格的 包围盒长短可能不一,而且二维北斗网格码与高度编码是分开编码的。所以, 对于基于北斗网格的包围盒的编码方式与北斗网格码应稍加以区分。本技术在 北斗二维编码和高度编码之间增加了“+”,用于区分编码中两段不同结构。在 程序存储时,使用结构体进行存储,并在结构体中区分二维北斗网格编码和高 度编码。
45.例如n57a73+0032(二维北斗网格编码为n57a73,高度编码为0032),其 中n表示北半球,57表示第一级网格经度,a表示第一级网格纬度,7代表第 二级网格经度,3代表第二级网格纬度;+号后面代表高度方向的网格划分,0 代表地上,03代表第一级网格的高度,2表示第二级网格的高度。
46.然后利用相交测试方法寻找最适合的北斗网格包围盒:
47.将物体定位到三维空间中,寻找最适合的北斗网格包围盒,也就是能包含 物体的最小北斗网格包围盒。本技术采用的方法是将物体的地理位置先转为北 斗网格码,然后逐级向上查询,基于轴的包围盒与包围球信息包含在obj模型文 件中——如果表示物体地理位置的包围盒编码与从obj文件中获取的包围盒编 码相交,则表示此北斗网格空间包围盒无法完全包含物体;如果表示物体地理 位置的包围盒编码与从obj文件中获取的包围盒编码不相交,则表示此北斗网格 空间包围盒可以完全包含物体。
48.综上,参照图1,本技术寻找能包含物体的最小北斗网格空间包围盒的具体 步骤如下:
49.步骤一,输入物体的位置信息;
50.步骤二,将其转换为北斗网格码;
51.步骤三,从obj文件中获取包围盒数据;
52.步骤四,在经纬度方面,逐渐向上查询该级北斗网格包围盒是否能包含物 体包围盒,直到该级北斗网格包围盒可以完整包含物体包围盒为止;
53.步骤五,在高度方面,逐渐向上查询该级北斗网格包围盒是否能包含物体 包围盒,直到该级北斗网格包围盒可以完整包含物体包围盒为止;
54.步骤六,输出当前级别的北斗网格包围盒编码,该北斗网格包围盒编码代 表的三维空间范围就是物体的北斗网格包围盒。
55.基于北斗网格的包围盒的相交测试是将物体的碰撞转换为基于北斗网格的 包围盒与基于北斗网格的包围盒之间的相交。由于北斗网格是嵌套的,无缝连 接的,所以只要具备两个基于北斗网格的包围盒的名称即可快速获取两个包围 盒之间的相交情况。
56.如图2所示,本技术的相交测试的具体步骤如下:
57.步骤一,输入两个基于北斗网格的包围盒编码;
58.步骤二,在经纬度和高度上分别截取两个包围盒编码头部最小长度,重新 进行组合(例如n000990+002111和s0000+0011,截取后为n0009+0211和 s0000+0011);
59.步骤三,判断截取后的编码是否相同;
60.步骤四,输出结果。
61.最后,基于上述兼容北斗网格的数字地球三维空间场景管理方法,建立兼 容北斗网格的r树场景管理结构。
62.兼容北斗网格的矩形包围盒
63.北斗网格是依照经纬度来进行剖分的网格,r树的矩形包围盒就是每个物体 建立一个最小外接矩形,然后将相邻的若干个矩形包围盒向上形成更大的最小 外接矩形。以此类推,最终形成一个由最小外接矩形组成,具有层级结构的树 状数据结构。
64.为了兼容北斗网格,将r树的矩阵包围盒向外拓展成二维北斗网格来建立 层次结构。每一个北斗网格都有其经纬度范围,该经纬度范围与矩形两轴向范 围的定义几乎是等价的。所以,将北斗网格的概念很好地融入r树之中。r树 作为一种b树在二维空间的自然延展,r树是一颗平衡树,r树在做最邻近搜 索时有突出的表现。
65.两极地区特殊处理
66.由于二维北斗网格在两极地区进行了特殊处理,为兼容北斗网格,本文的 场景管理结构也在两极区域采用独立的r树进行管理。由于北斗网格在两极地 区划分方式与非两极地区存在差异。但是差异主要集中于最开始几级的划分方 式,所以在两极地区采用扇形与球面的包围盒形式,兼容北斗网格二极地区的 划分方式。
67.在两极地区二维北斗网格码的剖分在第一级将一个圆形区域等面积剖分成 四个区域p0,p1,p2,p3。p0为第一级的中心圆形区域,半径为整个圆形半径 的一半,面积为圆形的1/4。p1、p2、p3为外圈扇形面积的三等分,各占120
°
。 第二级在第一级的基础上进行进一步划分。对于中心圆形区域采用与上级圆形 区域相同的划分方式,进行面积四等分,中心区域为外接圆形半径的一半,外 环进行三等分构成剩下的三个区域。对于外环扇形区域的划分,进行经度与纬 度方向二分,形成四个子区域。一共有16个子区域。国家标准中,依次类推, 向下剖分至第五级,采用与非两极地区相同的剖分方式。
68.在r树包围盒设计中,考虑到两极的应用场景较少和编程效率问题,仅在 第一层采用与二极地区二维北斗网格划分方式的二级网格一致的方式进行划分。 自第三级非中心区域其采用与非两级地区一致的划分方式。
69.而中心区域考虑到区域均分和便于编码的问题,采用第五级非两极区域相 同的
划分方式进行中心区域的划分。
70.r树的建立
71.本文的r树在第一层分为三个子树,分为北极地区,南极地区以及正常纬 度地区。在第一层子树区分之后,各层采用与r树建立方式相同的方式自底向 上建立。不同的是,包围盒采用与北斗网格边界相契合的包围盒模式。虽然这 样的方式在数值精度上有一定的损失,但是为了兼容北斗网格码,这样的误差 在可接受范围之内。
72.具体的自底向上建立的过程可以分为以下几个阶段:
73.1.为每一个物体建立一个北斗网格包围盒;
74.2.将若干个物体聚合向上形成最小外接北斗网格包围盒;
75.3.三个地区的物体分别以这样的方式建立成三颗r树;
76.4.将三颗r树作为一个根结点下的三颗子树。
77.r树的搜索
78.r树在最邻近搜索方面有卓越的表现,但是兼容北斗网格的包围盒传递出的 是经纬度上的距离概念,为实现经纬度的距离概念与实际生活中的距离概念相 转换,本文将地球近似看作一个球体,两点在地球上的距离问题就转换为求解 地球表面两个劣圆弧顶长度问题。已知地球的半径为r,忽略地球上地形的影响, 假设a点的经度为αa,纬度为βa;b点的经度为αb,纬度为βb;同时约定东经 为正,西经为负,南纬为90
°
+地理纬度值,北纬为90
°‑
地理纬度值。
79.d=r cos-1
(c)
ꢀꢀꢀ
(式1)
80.其中c=sin(βa)sin(βb)cos(α
a-αb)+cos(αa)cos(αb)。
81.对于节点的一般搜索方式与传统的树结构的搜索方式相同,常用的可分为 广度优先搜索与深度优先搜索。其中广度优先搜索就是在搜索同一深度的节点 后继续向下一层的节点搜索,深度优先搜索就是一直访问当前节点的子节点, 直到该节点为叶节点后返回,按同样的方式访问下一个子节点。
82.在应用r树最邻近搜索时,往往广度优先搜素会有更好的性能表现。因为 每个节点都包含一个范围信息,即最小外接北斗网格包围盒信息,再通过式(1) 的经纬度范围与距离的近似换算可以得到大致的地理范围。同时,上层的最小 外接北斗网格包围盒比下层的北斗网格包围盒更大,当上层的北斗网格包围盒 范围满足邻近搜素的范围,就无需继续向下搜索,节省了大量时间。
83.综上,仅为本发明之较佳实施例,不以此限定本发明的保护范围,凡依本 发明专利范围及说明书内容所作的等效变化与修饰,皆为本发明专利涵盖的范 围之内。