论文部分内容阅读
随着地理信息系统、交通监控探头、虚拟现实的广泛应用,产生了大量的空间数据。高效的空间数据查询处理技术成为当前空间数据库领域的研究热点。在存在障碍对象情况下的可视查询,作为一种较为贴近实际应用的空间查询,得到了广泛的关注。但是现有的可视查询研究主要集中在二维空间中,随着三维空间数据的大规模应用,现有研究成果在处理三维空间对象的可视查询问题时存在缺陷。本文以三维空间中的三维空间对象的可视查询问题为研究对象,展开从三维空间对象的可视性检测到连续可视查询算法的研究,主要研究内容如下:首先,由于三维空间对象采用方向包围盒表示,因此包围盒的方向不同导致三维数据对象与障碍对象缺乏统一的投影平面,从而不能利用传统的双投影法来处理三维空间对象的可视性检测问题。为解决这一问题,提出一种基于水平-投影角曲线的检测方法。该方法可以建立一个统一的坐标体系检测三维数据对象与障碍对象之间的遮蔽关系。实验结果表明,该方法能够准确、快速的比较三维数据对象和障碍对象的遮蔽关系,从而得到三维数据对象的可视性查询结果。其次,在综合考虑“可视”概念本身所具有的空间属性的基础上,给出可视域的定义,并提出基于可视域的可视查询算法。对于无法获取准确位置的数据对象,利用定性空间推理得到该对象与查询点的相对空间关系,初步判断该数据对象是否属于潜在可视对象;而对于已知精确位置的数据对象,则利用可视域剪枝方法缩小潜在可视对象集。实验结果表明,基于可视域的可视查询算法可以有效提高查询的效率、减少I/O资源消耗、加快查询响应时间。再次,针对三维空间对象的连续可视最近邻查询,提出查询处理机制与算法。其中,分析了三维空间对象在连续可视查询中的遮蔽关系变化情况,定义了可视性控制点和可视性变化点,并给出分割查询区间的方法和原理;分别给出在查询处理过程中的数据对象剪枝算法、障碍集剪枝算法、连续查询中的可视性计算算法、结果集更新算法等一系列算法,并在此基础上给出整体的三维空间对象连续可视k最近邻查询算法。实验结果表明,该算法有效解决了三维空间对象的连续可视最近邻查询问题。然后,针对三维空间对象既是数据对象又是障碍对象的双重属性问题,提出基于可视域的三维空间对象连续可视范围查询算法。在该算法中,使可视三维空间对象可以作为障碍对象参与后续可视计算。通过对障碍对象集的动态更新,保留了三维空间对象的障碍对象属性。根据查询点的移动方向及速度计算其可视域,根据可视域得到空间对象的有效可视区间及有效障碍区间,有效减少了可视计算中的障碍对象规模,提高了查询效率。最后,提出一种基于可视查询的动态加载框架,使其适用于大规模三维虚拟现实场景的网络应用。利用路网路段作为查询区间,进行三维空间对象的连续可视查询,建立虚拟现实场景内的对象的可视性与路网路段之间的对应关系,得到以路段为关键字存储的可视性关系表;用户根据自身位置在可视性关系表中线性查询获取可视对象。该框架将耗时的可视计算及查询处理在离线阶段完成,避免了长时间的在线可视查询,满足了对于虚拟现实场景的基于可视性的动态加载需求。