三维地图显示系统的制作方法_3

文档序号:9383131阅读:来源:国知局
为待管理的两个单元格3 (C31和C32)。单元格C31和C32的形状也基于相应单元格中包含的特征的形状和数据量来确定。在图2的所示示例中,没有为各大楼设置各单元格3,而是两个大楼存储在单元格31中并且四个大楼存储在单元格32中。这指示各单元格中存储的这多个大楼的总数据量没有超过为该单元格所设置的上限。
[0024]左边图示所示的单点链线指示单元格2,以及虚线指示单元格3。这样,一个网格中的特征数据划分为待管理的多个单元格。在图2的所示示例中,特征数据分类为特征的三个编组、即大尺寸特征、中等尺寸特征和小尺寸特征,以及针对特征的相应编组设置单元格。按照修改,特征数据可分类为特征的两个编组、即大尺寸特征和小尺寸特征,以及可以仅为小尺寸特征设置单元格。
按照本实施例,单元格不是通过简单地基于地理区划划分网格中的特征来定义,而是将特征分类为多个编组、例如大尺寸特征和小尺寸特征,以及针对特征的相应编组设置单元格。相应地,仅读取针对特征的任一编组所设置的单元格、例如仅读取用于存储小尺寸特征的单元格3不允许地图的显示。需要读取全部单元格I至3,以便适当地显示地图。在单元格C31中存储的数据对地图的某个显示范围是充分的并且单元格C32中存储的数据超出某个显示范围的情况下,实现本实施例的过程以忽略读取单元格C32。这降低用于显示地图的处理负荷。
[0025]图3是示出地图数据库的数据结构的简图。
地图数据库按如图1所示的多个等级来管理。
在各等级的数据由预定地理尺寸的多个网格组成。
各网格划分为用于存储大尺寸特征的单元格1、用于存储中等尺寸特征的单元格2以及用于存储小尺寸特征的单元格3,如图2所示。可适当地省略单元格2。可采用四个或更多等级中的单元格结构。
各特征的数据结构针对单元格I作为示例示出。对各特征存储如所示的多种数据,如下所示:
“特征ID”指示特征的唯一标识信息;
“名称”指示特征的名称;
“位置”指示特征的代表点的位置。例如,位置可通过特征的二维形状中的重心的坐标值来指定。
“形状”是表示特征的二维或三维形状的多边形数据;
“类型”是与特征的类型有关的信息,例如“大楼”或“公路”;以及“显示等级”是用来按照地图的显示中离视点的距离来控制特征的显示/非显示的信息。按照这个实施例,如所示,显示等级通过整数值O至3其中之一来指定。显示等级“O”指示位于从视点到距离Dl (其比较接近视点)的范围中的特征的显示。类似地,显示等级“I”指示位于从视点到距离D2的范围中的特征的显示,以及显示等级“2”指示位于从视点到距离D3的范围中的特征的显示。显示等级“3”指示与离视点的距离无关的特征的显示,因为没有指定距离的上限。
显示范围的示例在图示中示为加阴影范围。在为特征设置显示等级“2”时,显示范围是比距离D3要短的范围,S卩,图示中的加阴影范围。
[0026]C.地图显示过程
下面描述用于显示地图的地图显示过程。这个地图显示过程主要由图1所示的显示控制器140来执行,并且由作为硬件配置的地图显示系统100的CPU来执行。
[0027]图4和图5是地图显不过程的流程图。
当触发地图显示过程时,地图显示系统100的CPU输入与视点、凝视方向和显示标度有关的用户指令(步骤S10)。缺省设定可用于这些指令。
(PU随后相对将要读取哪一个地图数据来识别等级和网格(步骤S12)。示出识别网格的过程。
本实施例并发地将不同等级的两个地图数据用于两个区域、即远视图/近视图区域,以显示地图。CPU首先基于用户所指定的显示标度来识别各区域、即远视图/近视图区域的等级。例如,当宽区域显示指定为显示标度时,可分别为远视图区域和近视图区域选择图1所示的等级LVa和等级LVb。另一方面,当详细显示指定为显示标度时,可分别为远视图区域和近视图区域选择图1所示的等级LVb和等级LVc。
在等级的选择之后,CPU基于视点和凝视方向将网格识别为在各等级的地图数据的读取对象。示出识别网格的过程。开始于视点的扇形范围是地图的显示范围。比较接近视点的加阴影区域是近视图区域,以及白色远区域是远视图区域。
在处于为近视图区域所选择的等级的地图数据中,与近视图区域重叠的网格、即通过虚线所示的九个网格是近视图区域的地图数据的读取对象。类似地,关于远视图区域,与远视图区域重叠的网格、即通过实线所示的两个网格是远视图区域的地图数据的读取对象。
按照这个实施例,近视图区域的地图图像在远视图区域的地图图像之上绘制,如稍后所述。相对远视图区域,因此不需要将地图数据的读取范围限制到远视图区域。例如,可读取开始于视点附近并且包括近视图区域和远视图区域两者的范围,以及远视图区域可通过使用这整个范围来绘制。
[0028]CPU随后基于地图显示位置和凝视方向来识别(相对将要读取地图数据的)单元格(步骤S14)。示出识别单元格的方法。
在这里假定网格Ml和M2通过步骤S12的过程来识别为读取对象。如虚线所示,为网格Ml定义单元格Cl至C6。如虚线所示,为网格M2定义单元格C7至Cll。CPU将与地图显示范围V (这个范围示为矩形,但是从技术上来说在透视投影中它是扇形区域)重叠的单元格识别为网格Ml和M2中包含的单元格Cl至Cll之中的读取对象。因此,单元格C4至C9在所示示例中识别为读取对象。
这个实施例以单元格为单位识别读取对象,并且由此消除读取整个网格Ml和M2的地图数据的需要。这有利地减少读取地图数据所需的时间。
[0029]CPU从所识别单元格中读取具有满足显示等级的离视点的距离的特征数据(步骤S16)。例如,如图3所示,显示等级“2”指示位于从视点到距离D3的范围中的特征的显示。当特征位于更远离与视点的距离D3时,这个特征不包括在读取对象中。从视点到用于这种判定的特征的距离可对各特征单独计算,或者可使用单元格的代表点(例如最接近视点的单元格边界上的点)来计算。
代替上述过程,修改过程可从所识别单元格中读取所有特征数据,并且随后基于显示等级来控制各特征的显示/非显示。
[0030]在读取特征数据之后,CPU通过透视投影来绘制远视图区域(步骤S18)。这个实施例从高视点来绘制鸟瞰图,但是备选地可绘制从低视点的驾驶员的视角图。处于远视图区域的等级的地图数据用于这个过程。
步骤S18的过程将每个点的深度存储到深度缓冲器中,并且执行隐线去除。
将绘制远视图区域的过程控制成不绘制远视图区域与近视图区域之间的边界附近中的三维特征。这种控制的特定过程可设置非显示区域(其中在远视图区域与近视图区域之间的边界附近没有要显示的特征),并且确定各特征是否包含在这个非显示区域中。另一个可用过程可以不绘制任何特征,而是仅绘制表示远视图区域中的地面的多边形。
[0031]在完成绘制远视图区域时,CPU清除深度缓冲器(步骤S20)。这使远视图区域中的图像(以下称作“远视图图像”)只指示二维背景图像而没有深度信息的信息。
[0032]CPU随后通过透视投影来绘制近视图区域(步骤S22)。绘制近视图区域中的透视投影的视点和凝视方向与绘制远视图区域中的视点和凝视方向相同(步骤S18)。在步骤S22使用处于近视图区域的等级的地图数据。
由于清除深度缓冲器,所以近视图区域中的图像(以下称作“近视图图像”)在远视图图像之上和前面绘制。深度在近视图图像的透视投影过程中新近存储在深度缓冲器中,使得隐线去除对近视图区域充分地执行。
[0033]下面描述绘制远视图区域的过程中设置的非显示区域的意义。
如上所述,这个实施例通过清除深度缓冲器,来使近视图图像在远视图图像之上绘制。如果三维特征在远视图图像与近视图图像之间的边界附近来绘制,则三维特征的部分可能不自然地被近视图图像覆盖。如上所述,本实施例的过程设置边界附近的远视图区域中的非显示区域,以防止任何三维特征在边界附近被绘制,因而避免这种潜在问题。非显示区域的尺寸可通过考虑近视图图像在远视图图像之上绘制的范围来任意设置,以实现这个目的。
[0034]D.三维地图的显示示例和有利效果
图6是示出三维地图的显示示例的简图。
图6A示出示范远视图图像。在这个所示示例中,从视点附近到远距离的整个范围(包括近视图区域)被绘制为远视图区域。虽然在这个所示示例中,只有地面主要绘制为远视图图像,但是远视图
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1