一种实现三维导航的方法和装置的制作方法

文档序号:5844588阅读:140来源:国知局
专利名称:一种实现三维导航的方法和装置的制作方法
技术领域
本发明涉及地理位置导航技术领域,特别涉及一种实现三维导航的方法和装置。
背景技术
全球定位系统(Global Positioning System, GPS)是美国从本世纪70年代开始 研制,历时20年,耗资200亿美元,于1994年全面建成,具有在海、陆、空进行全方位实时导 航与定位能力的卫星导航与定位系统。GPS以全天候、高精度、自动化、高效率等显著特点及 其所独具的定位导航、授时校频、精密测量等多方面的强大功能,已涉足众多的应用领域, 使GPS成为继蜂窝移动通信(GSM)、互联网之后的全球第三个IT经济新增长点。全球定位系统由空间部分、地面监控部分和用户接收机三大部分组成。用户接收 机将得到的经纬度信息标注在预先设置好的电子地图上,使用户当前所处位置显示在电子 地图上形成导航画面,从而实现位置导航。目前的电子地图主要采用二维形式,导航画面由 点、线、面组成,与实际的三维地貌有很大的差距,使用起来不直观;特别是对于高架桥、高 速路、立交桥等复杂立体路况难以正确显示。因此,三维导航技术应运而生。但是,三维导 航所使用的三维电子地图的数据量极大,对于硬件数据处理性能要求很高,因此导致三维 导航仪的价格昂贵,限制其推广应用。

发明内容
有鉴于此,本发明的目的在于,提出一种实现三维导航的方法和装置,能够以较低 的数据处理量实现三维导航。本发明实施例提出的一种实现三维导航的方法,预先定义三维电子地图中的三维 场景模型,并建立三维电子地图的三维场景坐标系;以及对三维电子地图的三维场景进行 分区并保存分区结果,建立用于保存每个三维场景的分区包含的三维场景模型特征信息的 资源分区表;实现三维导航的过程包括如下步骤A、利用全球定位系统确定摄像机的当前位置坐标;B、根据所述当前位置坐标查询所述分区结果,确定摄像机的当前位置坐标所属的 三维场景的分区;C、根据所确定的三维场景的分区查询所述资源分区表,得到所述三维场景的分区 包含的三维场景的特征信息;以及D、根据所得到的三维场景模型的特征信息加载所述预先定义的三维场景模型,并
渲染三维场景。其中,所述建立电子地图的三维场景坐标系包括确定每个三维场景模型的位置坐标以及三维场景模型的大小,具体包括确定三维场景模型的外接长方体,将所述外接长方体的对称中心坐标作为所述三 维场景模型的位置坐标,所述外接长方体的长宽表示该三维场景模型的大小。所述三维场景模型特征信息包括三维场景模型的坐标位置、标识以及变换信息。
所述对电子地图的三维场景进行分区包括将三维场景在x-z平面上进行投影,确定投影轮廓的χ值最小点min_X和最大点 max_x,以及ζ值最小点min_z和最大点maX_z,以这四个点确定投影轮廓的包围矩形;设置分区的长度1 = vt,宽度w = Vt ;其中,ν表示摄像机移动速度的最大值,t表 示设定的时间;以所述分区长度1和宽度w分割所述投影轮廓的包围矩形,得到各个分区。所述设定的时间t为2秒至4秒。所述建立用于保存每个分区包含的三维场景模型特征信息的资源分区表包括如 下步骤初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区;获取任一个三维场景模型x-z坐标(X1,Z1);
i = floor Γ fx, -min χ)//1-1根据公式.λ 二 1 . ^ ‘ η ’计算该三维场景模型所属的分区在资源分
j - floor[ (Z1 - min — ζ) / wj — 1
区表中的序号,其中,floor[]表示对括号中的内容向上取整;将所述三维场景模型的特征信息保存在所述二维矩阵的第i行、第j列的元素中。所述建立用于保存每个分区包含的三维场景模型特征信息的资源分区表包括如 下步骤初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区;获取三维场景模型在x-z平面上的投影,确定该投影面积实际占用的至少一个分 区;在所确定分区对应的二维矩阵元素中,分别记录该三维场景模型的特征信息。较佳地,所述步骤B为Bi、间隔预定的时间t,确定摄像机的当前位置坐标所属的三维场景的分区;B2、判断摄像机是否从第一分区切换到与第一分区相邻的第二分区,若是,执行步 骤C,否则返回步骤Bl ;所述步骤C为查询所述资源分区表,得到所述第二分区的相邻分区包含的三维场景模型的特征 fn息;所述步骤D为D1、确定所述第二分区的相邻分区包含的三维场景模型中、尚未被加载的三维场 景模型,并加载所述尚未被加载的三维场景模型的数据;D2、在已被加载的三维场景模型中,确定不属于第二分区以及第二分区的相邻分 区的三维场景模型,并卸载所述三维场景模型的数据;D3、根据已加载的三维场景模型的数据渲染三维场景。所述步骤B2判断结果为是,则执行如下步骤B3,步骤B3执行完毕后执行步骤C B3、根据摄像机当前的速度,在第二分区的相邻分区中,确定摄像机在第二分区之 后可能运动到的第三分区;若根据步骤B3确定了所述第三分区,则所述步骤C进一步包括查询所述资源分区表,得到所述第三分区的相邻分区包含的三维场景模型的特征信息;以及所述步骤Dl进一步包括确定所述第三分区的相邻分区包含的三维场景模型中、尚未被加载的三维场景模 型,并加载所述尚未被加载的三维场景模型的数据。较佳地,所述步骤B3为判断摄像机是否进入第二分区的预测区域,若是,则根据摄像机当前的位置和速 度,在第二分区的相邻分区中,确定摄像机在第二分区之后可能运动到的第三分区,并继续 执行步骤C,否则,摄像机位于第二分区的非预测区域,直接执行步骤C。设第二分区为第i行第j列个分区,所述判断摄像机是否进入第二分区的预测区 域为判断摄像机的当前位置坐标(Xl,Z1)是否满足
min χ + / χ / < χ, < min_ χ + i χ I +11min χ + /' χ / + /, < χ, < min一 χ + (/ +1) χ /一_,或一, min_ ζ + j xw < Z1 < min_ z + (j + l)xw min— ζ + jxw<z} < min— ζ + j χ w +W1
若是,则摄像机进入第二分区的预测区域,否则,摄像机位于第二分区的非预测区域,其中,
0 < 2/, < /
li、Wl为预先设置的可调变量,满足条件Λ<。^ 。
0 < 2wj < w所述确定摄像机在第二分区之后可能运动到的第三分区包括找到与摄像机速度(义巧方向最相近的四条划分资源分区的边界线,其中包括两条 平行于χ轴的直线line_xl、line_x2和平行于ζ轴的两条直线line_zl、line_z2 ;根据摄像机的位置(Xl,Z1)和速度(GJ)得到摄像机运动方向的直线f (X,ζ);求出直线f (χ,ζ)与 line_xl、line_x2、line_zl、line_z2 之间的全部交点;找到全部交点中与摄像机位置(Xl,Z1)最近的两个点,计算这两个点的中点坐标; 所述中点坐标所在的分区为摄像机在第二分区之后可能运动到的第三分区。本发明实施例还提出一种实现三维导航的装置,包括用于利用全球定位系统确定 摄像机的当前位置坐标的位置坐标模块,该装置还包括三维电子地图模块,用于存储预先定义的三维电子地图中的三维场景模型,并建 立三维电子地图的三维场景坐标系;分区模块,用于对所述三维电子地图模块中的三维场景进行分区并保存分区结 果;还用于根据所述位置坐标模块得到的当前位置坐标查询所述分区结果,确定摄像机的 当前位置坐标所属的三维场景的分区;特征信息模块,用于建立并维护用于保存每个三维场景的分区包含的三维场景模 型特征信息的资源分区表;还用于根据所述分区模块所确定的三维场景的分区查询所述资 源分区表,得到所述三维场景的分区包含的三维场景的特征信息;渲染模块,用于根据所述特征信息模块得到的三维场景的分区包含的三维场景的 特征信息加载所述三维电子地图模块中预先定义的三维场景模型,并渲染三维场景。较佳地,所述三维电子地图模块包括用于确定三维场景模型的外接长方体,将所述外接长方体的对称中心坐标作为所 述三维场景模型的位置坐标,所述外接长方体的长宽表示该三维场景模型的大小的功能单兀。所述三维场景模型特征信息包括三维场景模型的坐标位置、标识以及变换信息。
9
较佳地,所述分区模块包括用于将三维场景在x-z平面上进行投影,确定投影轮廓的χ值最小点min_X和最 大点max_x,以及ζ值最小点min_z和最大点maX_z,以这四个点确定投影轮廓的包围矩形 的功能单元;用于设置分区的长度1 = Vt以及宽度w = Vt的功能单元,其中,ν表示摄像机移 动速度的最大值,t表示设定的时间;以及用于以所述分区长度1和宽度w分割所述投影轮廓的包围矩形,得到各个分区的 功能单元。所述设定的时间t为2秒至4秒。较佳地,所述特征信息模块包括用于初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区的功能单 元;用于获取任一个三维场景模型x-z坐标(Xl,Z1)的功能单元;
i = floor[(x, -min x)//]-l用于根据公式.λ二1 . — ‘ η,计算该三维场景模型所属的分区在资
j = floor[(z1 -minzj/ w\-l
源分区表中的序号的功能单元,其中,floor[]表示对括号中的内容向上取整;以及用于将所述三维场景模型的特征信息保存在所述二维矩阵的第i行、第j列的元 素中的功能单元。所述特征信息模块包括用于初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区的功能单 元;用于获取三维场景模型在x-z平面上的投影,确定该投影面积实际占用的至少一 个分区的功能单元;以及用于在所确定分区对应的二维矩阵元素中,分别记录该三维场景模型的特征信息 的功能单元。较佳地,所述分区模块进一步包括时长为t的定时器;分区单元,用于在所述定时器达到预定时长时,根据所述位置坐标模块得到的当 前位置坐标查询分区结果,确定摄像机的当前位置坐标所属的三维场景的分区,并将所述 定时器归零的功能单元;判断单元,用于根据所述分区单元在相邻两次确定的三维场景分区是否相同,判 断摄像机是否从第一分区切换到与第一分区相邻的第二分区,若是,则将所述第二分区的 信息传送至特征信息模块;所述特征信息模块根据所述第二分区的信息查询所述资源分区表,得到所述第二 分区的相邻分区包含的三维场景模型的特征信息;所述渲染模块包括加载单元,用于确定所述第二分区的相邻分区包含的三维场景模型中、尚未被加 载的三维场景模型,并加载所述尚未被加载的三维场景模型的数据的功能单元;卸载单元,用于在已被加载的三维场景模型中,确定不属于第二分区以及第二分区的相邻分区的三维场景模型,并卸载所述三维场景模型的数据的功能单元;以及渲染单元,用于根据已加载的三维场景模型的数据渲染三维场景的功能单元。较佳地,所述分区模块进一步包括预测单元,用于在所述判断单元判断出摄像机从第一分区切换到与第一分区相邻 的第二分区时,根据摄像机当前的速度,在第二分区的相邻分区中,确定摄像机在第二分区 之后可能运动到的第三分区,并将所述第二分区的信息传送至特征信息模块;所述特征信息模块根据所述第三分区的信息查询所述资源分区表,得到所述第三 分区的相邻分区包含的三维场景模型的特征信息;所述渲染模块的加载单元进一步用于确定所述第三分区的相邻分区包含的三维 场景模型中、尚未被加载的三维场景模型,并加载所述尚未被加载的三维场景模型的数据。所述预测单元用于在所述判断单元判断出摄像机从第一分区切换到与第一分区 相邻的第二分区后,判断摄像机是否进入第二分区的预测区域,若是,则根据摄像机当前的 位置和速度,在第二分区的相邻分区中,确定摄像机在第二分区之后可能运动到的第三分 区,并将所述第二分区的信息传送至特征信息模块。较佳地,设第二分区为第i行第j列个分区,所述判断摄像机是否进入第二分区的 预测区域为判断摄像机的当前位置坐标(Xl,Z1)是否满足
min_χ + /χ/ < χ, <min_χ + /χ/ + /,min χ+ ixl +L < χ, < min_χ + (/ +1)χ/__, min— ζ + j xw < Zi < min— ζ + (7 +1) χ w min— ζ + y χ w < ζ, < min_ ζ + j χ w +W^
若是,则摄像机进入第二分区的预测区域,否则,摄像机位于第二分区的非预测区域,其中,
0 < 2/, < /
li、Wl为预先设置的可调变量,满足条件π,。ζ 。
0 < Zwl < w较佳地,所述确定摄像机在第二分区之后可能运动到的第三分区包括找到与摄像机速度伢,乃方向最相近的四条划分资源分区的边界线,其中包括两条 平行于X轴的直线line_xl、line_x2和平行于ζ轴的两条直线line_zl、line_z2 ;根据摄像机的位置(Xl,Z1)和速度(^丨)得到摄像机运动方向的直线f (X,ζ);求出直线f (χ,ζ)与 line_xl、line_x2、line_zl、line_z2 之间的全部交点;找到全部交点中与摄像机位置(Xl,Z1)最近的两个点,计算这两个点的中点坐标; 所述中点坐标所在的分区为摄像机在第二分区之后可能运动到的第三分区。从以上技术方案可以看出,对电子地图的三维场景进行分区,建立用于保存每个 三维场景的分区包含的三维场景模型特征信息的资源分区表,这样只需加载资源分区表而 不需要加载全部的三维场景模型;根据摄像机当前位置坐标确定对应的分区,并根据所述 资源分区表找到这些分区包含的三维场景的特征数据,根据这些特征数据来加载对应的三 维场景模型数据。本发明方案可以用较小的内存空间实现三维场景的导航,并且场景切换 速度较高。


图1为本发明实施例提出的三维导航的实现流程图;图2为本发明实施例定义的三维场景的长宽高与OpenGL坐标轴的关系示意图;图3为本发明实施例定义的三维场景在OpenGL坐标系中的简化模型示意图4为本发明实施例的摄像机可视范围内实际上需要的三维场景数据和整个三 维场景数据的关系示意图;图5为三维场景的摄像机与近截面、远截面和视野的关系示意图;图6为三维场景在x-z平面上的投影示意图,其中,阴影部分为三维场景在x-z平 面上有投影,非阴影部分表示三维场景在x-z平面上没有投影;图7为对投影到x-z平面上的三维场景资源分区,每个区域的大小为IXw ;图8摄像机在y轴上高度为h对x-z平面可视范围为r的几何图形;图9为最小三维场景资源的情况下需要加载的资源示意图;图10为当一个三维场景模型在x-z平面上的投影占用多个分区的情况示意图;图11为摄像机在x-z平面上投影的当前位置和加载资源分区的情况示意图;图12为本发明实施例中摄像机进入相邻资源分区,重新加载资源的情况示意图;图13为本发明实施例将资源分区分为预测区域和非预测区域的示意图;图14为本发明实施例中,根据摄像机当前位置和速度方向预测将要到达的分区 的几何图形示意图;图15为根据本发明实施例方案出现资源分区预测错误的情况示意图。图16为本发明实施例提出的三维导航装置的逻辑框图。
具体实施例方式本发明技术方案利用了与三维导航相关二维平面技术,根据二维平面区域切分和 预知技术切分三维导航中的三维场景,预先定义三维电子地图中的三维场景模型,并建立 电子地图的三维场景坐标系;以及对电子地图的三维场景进行分区,建立用于保存每个三 维场景的分区包含的三维场景模型特征信息的资源分区表;实现三维导航的过程如图1所 示,包括如下步骤步骤101 利用全球定位系统确定当前摄像机的位置坐标;步骤102 确定摄像机的当前位置坐标所属的三维场景的分区;步骤103 根据所确定的三维场景的分区查询所述资源分区表,得到所述三维场 景的分区包含的三维场景的特征信息;以及步骤104 根据所得到的三维场景模型的特征信息加载三维场景模型数据,并渲 染三维场景。为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明技术方案 的各个要点作进一步的详细阐述。要点一定义导航所使用的三维电子地图中的三维场景模型。本发明实施例方案的三维导航三维场景需要按照一定格式组织。以下给出一种按 照ml语言描述的三维场景模型的位置信息<scene>〈entities〉<entityname = ‘‘ building ‘‘ hidden ="false" filename = " building, mesh"CastShadows = " yes" ReceiveShadows = " yes" >
〈position x=〃 0〃 y = “ 0〃 z=〃 0〃 />〈rotation χ =〃 0〃 y=〃 0〃 z=〃 0〃 w = 〃 0〃 />〈scale x=〃 0.1〃 y=〃 0.1〃 z=〃 0.1〃 />〈/entity〉......〈/entities〉</scene>上述内容给出了一个三维场景模型的特征信息,包括位置、大小、旋转方向,以及 显示相关信息,例如是否显示阴影等。具体地说,“scene”表示该元素下的内容是三维场景内容,即定义该元素的属性是 三维场景内容;“entities”表示该元素下的内容是三维场景模型内容。“entity”表示一 个具体的模型内容,“name”为模型的名称,“hidden”表示该模型是否隐藏,“filename”表 示该模型在物理磁盘上对应的文件名称,“CastShadows”表示在三维显示的时候是否显示 出阴影,“ReceiveShadows”表示其他模型的阴影是否在该模型表面表示出来。“position” 表示三维场景模型在三维场景中的三维坐标位置,“rotation”表示三维场景模型的旋转方 向,“scale"表示三维场景模型在三维方向的缩放比例。有了上述信息,就可以用OpenGL或者D3D的方式在三维场景渲染时将已经存储的 每个三维场景模型定位到电子地图的坐标系中,最终渲染出三维场景的立体空间效果。要点二 建立电子地图的三维场景坐标系。建立三维场景坐标系最重要的一点是确定每个三维场景模型的位置坐标以及三 维场景模型的大小。整个三维场景模型的外观是不规则的,但是可以用三维场景模型的外接长方体来 代表该三维场景模型,该外接长方体是能包含整个三维场景模型的最小长方体,具有确定 的长度、宽度以及高度。可以形象地将该外接长方体称为三维场景包围盒。这里,三维场景 在立体空间中,其长宽高此处用下面三种符号表示L 三维场景模型的长度;W 三维场景模型的宽度;H:三维场景模型的高度。本实施例中,电子地图选取的立体空间三维坐标系为OpenGL坐标系。OpenGL使用 右手坐标,从左到右,X递增,从下到上,y递增,从远到近,Z递增。在OpenGL坐标系中,每 一个三维场景模型可以用其外接长方体即三维场景包围盒表示,三维场景包围盒的大小就 是LXWXH,其在OpenGL坐标系中的示意图如图2所示。在三维导航系统中,一般情况都是在固定高度向下鸟瞰的,并且三维场景在高度 上变化不大,所以可以不予考虑三维场景中模型的高度信息,所以三维场景模型在OpenGL 坐标系中可以简化成如图3所示,x-z平面即水平面,所示长L宽W的矩形为三维场景模型 的外接长方体在水平面内的投影。这样,一个三维场景模型的位置坐标就可以用其三维场景包围盒的对称中心的坐 标来表示,而三维场景包围盒的长宽高就表示了该三维场景模型的大小。简化情况下,三维 场景模型的大小用长和宽表示。
13
要点三对三维场景进行分区。如果三维场景显示所需要的数据是一次性全部加载到内存中的,这样虽然提高了 数据的处理速度,但是很多情况下,如图4所示,三维场景当前显示区域(以下将当前显示 区域称为视野)只是三维场景中的某一小块局部区域(在图4中为小矩形表示的区域),而 其他部分(在图4中为大矩形以内、小矩形以外的区域)都不在视野内,不在视野部分的数 据就会造成存储空间的浪费。三维场景与视野的比值越大,浪费的内存空间越多,所以一般 以这种方式载入所有资源的三维场景数据都不能无限大,都有一个最大值。如果三维场景 数据超过最大值,就需要对三维场景进行分割,当从一个三维场景进入到另一个三维场景 的时候,就会存在三维场景切换问题。三维场景切换的时候,需要等待程序将使用前的三维 场景模型数据卸载掉,重新加载另一个需要使用的三维场景模型数据,一般这个过程耗时 较多,存在较长的用户等待时间。本发明的关键点之一就是基于大规模三维场景显示需要,特别是三维导航大的三 维场景需要,对三维场景进行分割,使程序支持的三维场景范围不受内存等硬件条件的限 制,而又不过度浪费内存,兼顾三维场景资源加载速度的一种方法。首先解释一下三维场景中的摄像机,三维场景中的摄像机的概念和现实世界中的 摄像机的概念一样,会放在一个合适的位置和方向,为三维场景进行“拍摄”每一帧的工作。 摄像机有一个“可视区域”的概念,它的形状是一个顶点在摄像机位置上的棱锥,并夹在远 截面和近截面之间的部分。图5所示为三维场景中的摄像机的可视区域的示意图。由图5 可知,假如摄像机视角是固定的,如果摄像机的位置和当前可视方向确定,则摄像机的可视 区域是唯一确定的。当在导航的时候,摄像机在一定高度上且平行于x-z平面的平面内移动,当摄像 机的位置和/或可视方向改变的时候,则可视区域发生改变,位于可视区域内的三维场景 (即需要渲染的三维场景)随之改变,渲染当前摄像机可视区域内的三维场景对应需要用 到的三维模型也需要改变。如果每次只加载一定范围内的三维场景模型,如果摄像机可视 范围内的模型未能加载到内存中,该模型则不能渲染出来。因此需要对可视范围内的模型 进行动态的维护,定时将超出摄像机范围的数据卸载,同时将摄像机范围内的数据加载进 来。这样既可以保证内存中模型的数据量小,又可以保证不影响渲染三维场景的效率和效果。因此,使用分区的方法动态加载摄像机所在资源分区的资源,卸载摄像机离开的 资源分区的资源。以下给出一种三维资源分区的详细实施方式的示例首先需要按照摄像机的位置对三维场景进行x-z平面上的分区。忽略y轴上的信 息,将整个三维场景在X-Z平面上进行投影,如图6所示,投影结果为阴影部分的区域,然后 根据投影轮廓得到χ值最小的点min_X和最大的点maX_X,ζ值最小的点min_z和最大的点 maX_z,最后就可以得到投影三维场景的包围矩形的位置和大小了。矩形两对角在x-z平面 上的坐标为(min_x, min_z)禾口(max_x, max_z),长 L = max_x_min_x,宽 W = max_z_min_ ζ ;然后对此投影得到的包围矩形分区,如图7,分区大小长为1、宽为W。现在需要计 算出三维场景在X-Z平面上的分区大小1和W的合适值。
要点四计算三维场景在x-z平面上的分区大小,并得到资源分区数量。设在h高度定点上摄像机可视方向垂直向下的最大视野为半径为r的圆,如图8 所示。对此圆做一边平行于X轴,一边平行于Z轴,宽为2r的外切正方形。在h高度垂直 向下看到半径为r的圆视野内的模型时,所需显示的三维场景资源是所有情况中最小的。 如图9所示,在所述最小三维场景资源的情况下,实际上需要加载的资源仅包括与半径为 r高度为h的圆柱体相交的三维场景模型(如图9中表示与圆柱体相交的长方体代表的三 维场景模型)以及完全在圆柱体内部的三维场景模型(图9中完全在圆柱体内部的长方体 代表的三维场景模型)的集合。所以加载了如图8所示的视野外切矩形内部或相交的三维场景模型,就可以满足 显示出当前三维场景。但此时的视野外切矩形为最小的三维场景资源分割区间,并不是最 佳实施方式。现在可以得到三维场景模型在x-z平面上分区大小应该满足的关系式r ^ 1 ^ Lr ^ w ^ W那么到底1和w为多少的时候才合适呢?已知摄像机在平行于x-z平面的平面内的运行最大速度大小为V,在此处设定运 行t时间就需要切换资源分区。那么1和w就可以设定为1 =WX1 = vt+λ 2,常规情况 下将λ工和λ 2设置0,此时分区大小就为
权利要求
1.一种实现三维导航的方法,其特征在于,预先定义三维电子地图中的三维场景模型, 并建立三维电子地图的三维场景坐标系;以及对三维电子地图的三维场景进行分区并保 存分区结果,建立用于保存每个三维场景的分区包含的三维场景模型特征信息的资源分区 表;实现三维导航的过程包括如下步骤A、利用全球定位系统确定摄像机的当前位置坐标;B、根据所述当前位置坐标查询所述分区结果,确定摄像机的当前位置坐标所属的三维 场景的分区;C、根据所确定的三维场景的分区查询所述资源分区表,得到所述三维场景的分区包含 的三维场景的特征信息;以及D、根据所得到的三维场景模型的特征信息加载所述预先定义的三维场景模型,并渲染三维场景。
2.根据权利要求1所述的方法,其特征在于,所述建立电子地图的三维场景坐标系包括确定每个三维场景模型的位置坐标以及三维场景模型的大小,具体包括 确定三维场景模型的外接长方体,将所述外接长方体的对称中心坐标作为所述三维场 景模型的位置坐标,所述外接长方体的长宽表示该三维场景模型的大小。
3.根据权利要求1所述的方法,其特征在于,所述三维场景模型特征信息包括三维场 景模型的坐标位置、标识以及变换信息。
4.根据权利要求1所述的方法,其特征在于,所述对电子地图的三维场景进行分区包括将三维场景在x-z平面上进行投影,确定投影轮廓的χ值最小点min_X和最大点max_ X,以及ζ值最小点min_z和最大点maX_z,以这四个点确定投影轮廓的包围矩形;设置分区的长度1 = vt,宽度w = vt ;其中,ν表示摄像机移动速度的最大值,t表示 设定的时间;以所述分区长度1和宽度w分割所述投影轮廓的包围矩形,得到各个分区。
5.根据权利要求4所述的方法,其特征在于,所述设定的时间t为2秒至4秒。
6.根据权利要求4所述的方法,其特征在于,所述建立用于保存每个分区包含的三维 场景模型特征信息的资源分区表包括如下步骤初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区; 获取任一个三维场景模型x-z坐标(Xl,Z1);i = floor [fx. -min χ)//1-1根据公式.二 . _ ‘ η ,计算该三维场景模型所属的分区在资源分区表 j = floor[ (Z1 - min — ζ) / wj -1中的序号,其中,floor[]表示对括号中的内容向上取整;将所述三维场景模型的特征信息保存在所述二维矩阵的第i行、第j列的元素中。
7.根据权利要求4所述的方法,其特征在于,所述建立用于保存每个分区包含的三维 场景模型特征信息的资源分区表包括如下步骤初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区;获取三维场景模型在x-z平面上的投影,确定该投影面积实际占用的至少一个分区;在所确定分区对应的二维矩阵元素中,分别记录该三维场景模型的特征信息。
8.根据权利要求4至7任一项所述的方法,其特征在于,所述步骤B为 Bi、间隔预定的时间t,确定摄像机的当前位置坐标所属的三维场景的分区;B2、判断摄像机是否从第一分区切换到与第一分区相邻的第二分区,若是,执行步骤C, 否则返回步骤Bl ; 所述步骤C为查询所述资源分区表,得到所述第二分区的相邻分区包含的三维场景模型的特征信息;所述步骤D为D1、确定所述第二分区的相邻分区包含的三维场景模型中、尚未被加载的三维场景模 型,并加载所述尚未被加载的三维场景模型的数据;D2、在已被加载的三维场景模型中,确定不属于第二分区以及第二分区的相邻分区的 三维场景模型,并卸载所述三维场景模型的数据;D3、根据已加载的三维场景模型的数据渲染三维场景。
9.根据权利要求8所述的方法,其特征在于,所述步骤B2判断结果为是,则执行如下步 骤B3,步骤B3执行完毕后执行步骤C B3、根据摄像机当前的速度,在第二分区的相邻分区中,确定摄像机在第二分区之后可 能运动到的第三分区;若根据步骤B3确定了所述第三分区,则所述步骤C进一步包括查询所述资源分区表,得到所述第三分区的相邻分区包含的 三维场景模型的特征信息;以及 所述步骤Dl进一步包括确定所述第三分区的相邻分区包含的三维场景模型中、尚未被加载的三维场景模型, 并加载所述尚未被加载的三维场景模型的数据。
10.根据权利要求9所述的方法,其特征在于,所述步骤B3为判断摄像机是否进入第二分区的预测区域,若是,则根据摄像机当前的位置和速度,在 第二分区的相邻分区中,确定摄像机在第二分区之后可能运动到的第三分区,并继续执行 步骤C,否则,摄像机位于第二分区的非预测区域,直接执行步骤C。
11.根据权利要求10所述的方法,其特征在于,设第二分区为第i行第j列个分区,所 述判断摄像机是否进入第二分区的预测区域为判断摄像机的当前位置坐标(Xl,Z1)是否 两足
12.根据权利要求11所述的方法,其特征在于,所述确定摄像机在第二分区之后可能 运动到的第三分区包括找到与摄像机速度(O)方向最相近的四条划分资源分区的边界线,其中包括两条平行于χ轴的直线line_xl、line_x2和平行于ζ轴的两条直线line_zl、line_z2 ; 根据摄像机的位置(Xl,Z1)和速度(Gj)得到摄像机运动方向的直线f (χ,ζ); 求出直线 f (χ,ζ)与 line_xl、line_x2、line_zl、line_z2 之间的全部交点; 找到全部交点中与摄像机位置(Xl,Zl)最近的两个点,计算这两个点的中点坐标;所述 中点坐标所在的分区为摄像机在第二分区之后可能运动到的第三分区。
13.一种实现三维导航的装置,包括用于利用全球定位系统确定摄像机的当前位置坐 标的位置坐标模块,其特征在于,该装置还包括三维电子地图模块,用于存储预先定义的三维电子地图中的三维场景模型,并建立三 维电子地图的三维场景坐标系;分区模块,用于对所述三维电子地图模块中的三维场景进行分区并保存分区结果;还 用于根据所述位置坐标模块得到的当前位置坐标查询所述分区结果,确定摄像机的当前位 置坐标所属的三维场景的分区;特征信息模块,用于建立并维护用于保存每个三维场景的分区包含的三维场景模型特 征信息的资源分区表;还用于根据所述分区模块所确定的三维场景的分区查询所述资源分 区表,得到所述三维场景的分区包含的三维场景的特征信息;渲染模块,用于根据所述特征信息模块得到的三维场景的分区包含的三维场景的特征 信息加载所述三维电子地图模块中预先定义的三维场景模型,并渲染三维场景。
14.根据权利要求13所述的装置,其特征在于,所述三维电子地图模块包括用于确定三维场景模型的外接长方体,将所述外接长方体的对称中心坐标作为所述三 维场景模型的位置坐标,所述外接长方体的长宽表示该三维场景模型的大小的功能单元。
15.根据权利要求13所述的装置,其特征在于,所述三维场景模型特征信息包括三维 场景模型的坐标位置、标识以及变换信息。
16.根据权利要求13所述的装置,其特征在于,所述分区模块包括用于将三维场景在x-z平面上进行投影,确定投影轮廓的χ值最小点min_x和最大点 max_x,以及ζ值最小点min_z和最大点maX_z,以这四个点确定投影轮廓的包围矩形的功能 单元;用于设置分区的长度1 = vt以及宽度w = vt的功能单元,其中,ν表示摄像机移动速 度的最大值,t表示设定的时间;以及用于以所述分区长度1和宽度w分割所述投影轮廓的包围矩形,得到各个分区的功能单元。
17.根据权利要求16所述的装置,其特征在于,所述设定的时间t为2秒至4秒。
18.根据权利要求16所述的装置,其特征在于,所述特征信息模块包括 用于初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区的功能单元; 用于获取任一个三维场景模型x-z坐标(Xl,Z1)的功能单元;i = floor [fx, -min χ)//1-1用于根据公式.Λ j . — ’ η,计算该三维场景模型所属的分区在资源分 j = floor[(Zj -min — z)/ w]-l区表中的序号的功能单元,其中,floor[]表示对括号中的内容向上取整;以及用于将所述三维场景模型的特征信息保存在所述二维矩阵的第i行、第j列的元素中 的功能单元。
19.根据权利要求16所述的装置,其特征在于,所述特征信息模块包括 用于初始化一个二维矩阵,所述二维矩阵的每一个元素对应一个分区的功能单元; 用于获取三维场景模型在x-z平面上的投影,确定该投影面积实际占用的至少一个分区的功能单元;以及用于在所确定分区对应的二维矩阵元素中,分别记录该三维场景模型的特征信息的功 能单元。
20.根据权利要求16至19任一项所述的装置,其特征在于,所述分区模块进一步包括时长为t的定时器;分区单元,用于在所述定时器达到预定时长时,根据所述位置坐标模块得到的当前位 置坐标查询分区结果,确定摄像机的当前位置坐标所属的三维场景的分区,并将所述定时 器归零的功能单元;判断单元,用于根据所述分区单元在相邻两次确定的三维场景分区是否相同,判断摄 像机是否从第一分区切换到与第一分区相邻的第二分区,若是,则将所述第二分区的信息 传送至特征信息模块;所述特征信息模块根据所述第二分区的信息查询所述资源分区表,得到所述第二分区 的相邻分区包含的三维场景模型的特征信息; 所述渲染模块包括加载单元,用于确定所述第二分区的相邻分区包含的三维场景模型中、尚未被加载的 三维场景模型,并加载所述尚未被加载的三维场景模型的数据的功能单元;卸载单元,用于在已被加载的三维场景模型中,确定不属于第二分区以及第二分区的 相邻分区的三维场景模型,并卸载所述三维场景模型的数据的功能单元;以及 渲染单元,用于根据已加载的三维场景模型的数据渲染三维场景的功能单元。
21.根据权利要求20所述的装置,其特征在于,所述分区模块进一步包括预测单元,用于在所述判断单元判断出摄像机从第一分区切换到与第一分区相邻的第 二分区时,根据摄像机当前的速度,在第二分区的相邻分区中,确定摄像机在第二分区之后 可能运动到的第三分区,并将所述第二分区的信息传送至特征信息模块;所述特征信息模块根据所述第三分区的信息查询所述资源分区表,得到所述第三分区 的相邻分区包含的三维场景模型的特征信息;所述渲染模块的加载单元进一步用于确定所述第三分区的相邻分区包含的三维场景 模型中、尚未被加载的三维场景模型,并加载所述尚未被加载的三维场景模型的数据。
22.根据权利要求21所述的装置,其特征在于,所述预测单元用于在所述判断单元判 断出摄像机从第一分区切换到与第一分区相邻的第二分区后,判断摄像机是否进入第二分 区的预测区域,若是,则根据摄像机当前的位置和速度,在第二分区的相邻分区中,确定摄 像机在第二分区之后可能运动到的第三分区,并将所述第二分区的信息传送至特征信息模 块。
23.根据权利要求22所述的装置,其特征在于,设第二分区为第i行第j列个分区,所 述判断摄像机是否进入第二分区的预测区域为判断摄像机的当前位置坐标(Xl,Z1)是否 两足min_x + /x/<x, <min_x + ixl+ Iimin_x + /x/ + /, <min_x + (/ + l)x/ 廿min_z + jxw<zx<rmn_z + {j + \)xw' ” mm_z + jxw<Z] <min_z + ;xw + w,,右是,则摄像机进入第二分区的预测区域,否则,摄像机位于第二分区的非预测区域,其中,li、Wl为预先设置的可调变量,满足条件< 。.0 < 2wx < w
24.根据权利要求23所述的方法,其特征在于,所述确定摄像机在第二分区之后可能 运动到的第三分区包括找到与摄像机速度伊斤)方向最相近的四条划分资源分区的边界线,其中包括两条平行 于χ轴的直线line_xl、line_x2和平行于ζ轴的两条直线line_zl、line_z2 ; 根据摄像机的位置(Xl,Z1)和速度得到摄像机运动方向的直线f (χ,ζ); 求出直线 f (χ,ζ)与 line_xl、line_x2、line_zl、line_z2 之间的全部交点; 找到全部交点中与摄像机位置(Xl,Zl)最近的两个点,计算这两个点的中点坐标;所述 中点坐标所在的分区为摄像机在第二分区之后可能运动到的第三分区。
全文摘要
本发明涉及地理位置导航技术领域,公开了一种实现三维导航的方法,对三维电子地图的三维场景进行分区并保存分区结果,建立用于保存每个三维场景的分区包含的三维场景模型特征信息的资源分区表;利用全球定位系统确定摄像机的当前位置坐标;根据所述当前位置坐标查询所述分区结果,确定摄像机的当前位置坐标所属的三维场景的分区并查询所述资源分区表,得到所述三维场景的分区包含的三维场景的特征信息;以及根据所得到的三维场景模型的特征信息加载所述预先定义的三维场景模型,并渲染三维场景。本发明还公开了用于实现三维导航的装置。本发明方案可以用较小的内存空间实现三维场景的导航,并且场景切换速度较高。
文档编号G01C21/26GK102109353SQ20091026238
公开日2011年6月29日 申请日期2009年12月24日 优先权日2009年12月24日
发明者刘兴国, 徐斌, 邓高伟 申请人:比亚迪股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1