发明内容
因此,本发明就是鉴于上述课题而完成的,目的在于提供一种地图显示装置,在硬件资源较少的导航装置等装置中,也能使用坐标转换生成3维图像,将作为3维对象的建筑物相对于画面纵方向笔直地显示,且能够易于观看和漂亮地显示。
为实现上述目的,本发明的地图显示装置,基于包含有关3维对象的数据的地图数据,在显示画面上显示3维地图,其特征在于,上述地图数据中包含显示校正标志,该显示校正标志表示在将上述3维对象显示在上述显示画面上时,是否进行校正以使得上述3维对象的铅直方向的线条变铅直;上述地图显示装置具有校正单元,在上述显示校正标志表示进行校正的情况下,在将上述3维对象显示在上述显示画面上时,进行校正以使得上述3维对象的铅直方向的线条变铅直。
由此,能够根据需要对各3维对象进行校正,能够仅使需要笔直地显示的3维对象,相对于显示画面的铅直方向笔直地显示。
另外,上述地图显示装置还包括:对象生成单元,基于上述地图数据,确定上述3维对象的各顶点的本地坐标,进行上述3维对象的生成处理;本地坐标转换单元,将上述3维对象的上述本地坐标转换成全局坐标(global coordinate);模型视图转换矩阵生成单元,确定上述全局坐标上的成为视点的视点坐标,并生成用于将上述全局坐标转换到以上述视点坐标为原点的视点坐标系的模型视图转换矩阵;模型视图转换单元,使用上述模型视图转换矩阵,将上述全局坐标转换到上述视点坐标系;描绘单元,将转换到上述视点坐标系的坐标射影转换到作为2维坐标系的屏幕坐标系,并使射影转换后的坐标与上述显示画面上的最终显示区域的适当大小相一致;上述校正单元对由上述模型视图转换矩阵生成单元生成的模型视图转换矩阵进行变更,以使得在将上述3维对象显示在上述显示画面上时,上述3维对象的铅直方向的线条变铅直,上述模型视图转换单元使用由上述校正单元变更后的上述模型视图转换矩阵,将上述全局坐标转换到上述视点坐标系。
这里,上述校正单元最好进行上述模型视图转换矩阵的变更,以便排除全局坐标系中的作为铅直方向的y值对用模型视图转换转换的x坐标值和z坐标值的影响。
另外,上述模型视图转换矩阵最好是4行4列的转换矩阵,在从左侧开始乘以上述模型视图转换矩阵来进行坐标转换时,上述校正单元将上述模型视图转换矩阵的第1行第2列的值和第3行第2列的值变更为0;另外,在从右侧开始乘以上述模型视图转换矩阵来进行坐标转换时,上述校正单元将上述模型视图转换矩阵的第1行第1列的值和第2行第3列的值变更为0。
之所以发生远近变形,是因为在全局坐标系中(不论y值如何,x和z的值都是恒定的),相对于y轴笔直的建筑物(的铅直方向的线条)随着进行模型视图转换和射影转换,转换后的x坐标的值因全局坐标系的y坐标值而变化。因此,只要使最终转换后的x坐标的值不受全局坐标系的y坐标值的影响即可,但如果变更射影转换,则无法发挥射影转换的作用。另外,在射影转换中,x坐标的值受z坐标值的影响,所以z坐标的值不能受y坐标值的影响。由此,只要使模型视图转换所转换的x坐标值和z坐标值不受全局坐标系的y坐标值的影响即可。
因而,通过进行如上述那样生成的模型视图转换矩阵的变更,能够排除全局坐标系中的作为铅直方向的y值对模型视图转换所转换的x坐标值和z坐标值的影响,能够使3维对象相对于显示画面的纵方向笔直地显示。
另外,上述地图显示装置也可以在上述校正单元中还包括选择装置,选择“始终进行校正”、“基于上述显示校正标志进行校正”、及“始终不进行校正”的任一个,上述校正单元,在由上述选择装置选择了“始终进行校正”时,不论上述显示校正标志如何,对所有上述3维对象进行上述校正;在由上述选择装置选择了“基于上述显示校正标志进行校正”时,基于上述显示校正标志,对上述3维对象进行上述校正;在由上述选择装置选择了“始终不进行校正”时,不对上述3维对象进行上述校正。
由此,可以根据需要而选择通常的含有远近变形的显示、基于显示校正标志使各3维对象相对于显示画面的纵方向笔直地显示的显示、使所有3维对象都相对于显示画面的纵方向笔直地显示的显示。
另外,本发明的地图显示***,具备:根据包含有关3维对象的数据的地图数据来生成3维地图图像数据的服务器装置,和与上述服务器装置进行通信并在显示画面上显示3维地图的终端装置,
其特征在于,
上述地图数据中包含显示校正标志,该显示校正标志表示在将上述3维对象显示在上述显示画面上时,是否进行校正以使得上述3维对象的铅直方向的线条变铅直;
上述服务器装置包括:校正单元,在上述显示校正标志表示进行校正的情况下,在将上述3维对象显示在上述显示画面上时,进行校正以使得上述3维对象的铅直方向的线条变铅直;以及通信单元,将上述3维地图图像数据发送到上述终端装置;
上述终端装置包括:通信单元,接收从上述服务器装置发送的上述3维地图图像数据;显示单元,使上述接收到的上述3维地图图像数据与上述显示画面上的最终显示区域的适当大小一致,并进行显示。
由此,在与服务器装置进行通信的硬件资源较少的、例如便携式电话等终端装置的显示画面上显示3维地图时,能够仅使需要笔直地显示的3维对象相对于显示画面的纵方向笔直地显示。
另外,本发明不仅能够作为这样的地图显示装置和地图显示***来实现,也可以作为以这样的地图显示装置和地图显示***所具有的特征技术为步骤的地图显示方法来实现,或者作为使计算机执行这些步骤的程序来实现。并且,显然,这样的程序可以通过CD-ROM等记录介质或互联网等传送介质来分发。
由以上说明可知,依据本发明的地图显示装置,根据需要来对各3维对象进行校正,仅使需要笔直地显示的作为3维对象的建筑物相对于画面纵方向笔直地显示,所以能够防止产生锯齿,易看且漂亮地进行显示。
由此,通过本发明,在硬件资源较少的装置中,也能构防止锯齿产生,易看且漂亮地进行显示,所以在由导航装置等装置中,在显示画面上显示3维地图的技术正在普及的今天,其实用价值是极高的。
具体实施方式
下面,使用附图详细说明本发明的地图显示装置。另外,作为本发明的地图显示装置的例子,是具有3维地图显示功能的导航装置、便携式电话、数字电视、PC、PDA等,是具有可进行地图显示的画面的装置。
(实施方式1)
图6是表示本发明实施方式1的地图显示装置的结构的一部分的框图。
该地图显示装置是由电子化了的地图数据生成3维图像,并将地图显示在画面中的装置,包括:存储显示于画面的对象的位置信息、高度信息等地图数据的地图数据存储部101;从地图数据存储部101取得地图数据,生成对象的形状数据等地图描绘数据的地图描绘数据生成部102;对在上述地图数据生成部中生成的地图描绘数据进行描绘处理,并生成显示在画面中的图像的描绘部103;将由描绘部103生成的图像显示在显示器等实际画面中的显示部104。
地图数据存储部101中存储有显示于画面的由道路、街区、地形等经纬度位置信息、高度信息及属性信息(例如对象是什么、颜色等)、用于表示显示于画面的3维对象的3维建筑物数据等构成的地图数据。3维建筑物数据由作为3维对象的建筑物的高度H、构成该建筑物的边界矩形的多棱柱形状的顶点数N、各顶点坐标Pi(i=1~N)、属性等构成。这里,建筑物的多棱柱形状的各顶点坐标Pi是2维坐标的。另外,作为用于描绘建筑物的多棱柱形状的属性,有作为对颜色、面进行粘贴的图像的纹理(texture)、构成面的索引(index)等的面信息、表示是哪种建筑物的信息等。
地图描绘数据生成部102基于存储在地图数据存储部101中的地图数据,生成由构成3维对象的面、线、点等的要素顶点的坐标和要素顶点的连接信息组成的形状数据,和由用于对象的描绘的颜色值与纹理图像等描绘信息组成的地图描绘数据。该地图描绘数据生成部102由对象生成部102a、本地坐标转换部102b、模型视图转换矩阵生成部102c、模型视图转换矩阵变更部102d、以及模型视图转换部102e构成。
对象生成部102a使用纬经度、高度信息、楼的种类等地图数据,进行显示于画面的建筑物等3维对象的生成处理。当显示于画面的3维对象是多棱柱形状的建筑物时,对象生成部120a取出存储在地图数据存储部101中的3维建筑物数据,求出建筑物的构成多棱柱形状的2×N个3维顶点坐标Qi(i=1~N)和Ri(i=1~N)。这里,Qi是构成位于多棱柱的高度为0的平面中的下表面的顶点坐标。另外,在对象生成部102a中求出的3维对象的各顶点坐标,是以3维坐标为中心的坐标系-本地坐标系。
进而,对象生成部102a求取构成N个侧面和1个上表面的顶点编号的排列。对于作为描绘信息的各面的颜色和纹理,根据面的法线方向来进行分配。例如,对于对象的颜色,用光源的位置和面的法线来计算对面的光照射状态,并能够实时地求出描绘的颜色的亮度。另外,在描绘信息被预先包含在3维建筑物数据中时,对象生成部102a基于3维建筑物数据分配各面的颜色和纹理。
本地坐标转换部102b使用4行4列的本地坐标转换矩阵,对3维对象进行从以该3维对象为中心的本地坐标系转换到作为大坐标系的全局坐标系(global coordinate)的处理。
模型视图转换矩阵生成部102c生成模型视图转换矩阵,用于将全局坐标系转换到以视点坐标为原点、以视线方向为深度方向(z轴)、以铅直向上的方向为高度方向(y轴)的视点坐标系。
模型视图转换矩阵变更部102d构成校正单元,对用于将由模型视图转换矩阵生成部102c生成的全局坐标系上的坐标转换为视点坐标系的4行4列的模型视图转换矩阵进行变更。即,在从坐标的左侧开始乘以模型视图转换矩阵来进行坐标转换时,模型视图转换矩阵变更部102d将模型视图转换矩阵的有关向x转换的第1行的有关y坐标的项(第1行第2列的项)、和有关向z转换的第3行的有关y坐标的项(第3行第2列的项),变更为0。另一方面,在从坐标的右侧开始乘以模型视图转换矩阵来进行坐标转换时,模型视图转换矩阵变更部102d将模型视图转换矩阵的有关向x转换的第1列的有关y坐标的项(第2行第1列的项)、和有关向z的转换的第3列的有关y坐标的项(第2行第3列的项),变更为0。
模型视图转换部102e使用从模型视图转换矩阵变更部102d输入的模型视图转换矩阵,进行将全局坐标系上的3维对象的各顶点坐标转换到视点坐标系的处理。即,模型视图转换部102e使用变更后的模型视图转换矩阵,将构成包含在地图描绘数据中的形状数据的所有顶点坐标T(X、Y、Z、1),转换为视点坐标系的3维坐标T’(X’、Y’、Z’、1)。另外,转换时的顶点坐标T(X、Y、Z、1)和转换后的顶点坐标T’(X’、Y’、Z’、1)的第4行的成分都成为1,这是用于使来自形状数据变更矩阵的平行移动成分的影响有效。另外,视点坐标是全局坐标系上的一点,基于例如使用者的指示、或安装了地图显示装置的移动体的当前位置(本车位置)等进行设定。
描绘部103对由地图描绘数据生成部处理的3维地图描绘数据,进行向2维实际屏幕上的射影转换,生成显示于画面上的图像。该描绘部103具有射影转换部103a和视口转换部103b。
射影转换部103a对在模型视图转换部102e中转换后的视点坐标系的3维对象的各顶点坐标设定射影转换矩阵,并进行将3维建筑物对象的各顶点坐标投影到2维屏幕上的射影转换处理。另外,射影转换部103a确定截取(clip)坐标,进行截取从包含视点坐标和截取坐标的透视锤台(锤台)溢出的对象的线和面的处理。
图8是射影转换部103a中的射影转换处理的说明图。如图8所示,描绘区域301和地图描绘数据302被显示于全局坐标上的3维坐标系中。
射影转换部103a根据被配置在与视点坐标对应的位置的视点303或视线向量决定4行4列的射影转换矩阵。并且,射影转换部103a使用射影转换矩阵进行3维建筑物对象等的3维顶点坐标的矩阵转换,由此将3维顶点坐标转换到2维屏幕304的坐标系。其结果,决定将3维建筑物对象的各坐标配置在屏幕上的哪个位置,并在地图显示装置的屏幕304上显示射影后的图像305。另外,在射影转换中,一般离视点303近的对象被较全局描绘,离视点远的对象被较小地描绘。
另外,射影转换部103a基于射影转换处理后的顶点坐标数据,进行3维对象的各面的涂满处理。在该涂满处理中,射影转换部104a有时基于由射影转换处理计算出的称作Z值的、从视点向深度方向的信息,进行阴面消除处理。所谓该阴面消除处理,是检测从视线303看不到的对象和面、不进行描绘的处理,作为实现该阴面消除处理的方法,有对显示画面的各像素单位赋予深度信息,在描绘各像素时判断深度信息,仅描绘眼前侧的Z缓冲法,还有对所描绘的每个面按深度顺序重新排列,从视点远方按顺序描绘的Z排序法等方法。
视口转换部103b使用视口转换矩阵进行3维对象的各顶点坐标的矩阵转换,所述视口转换矩阵用于使在射影转换部103a中射影转换后的图像与在地图显示装置的画面上的最终显示区域的适当大小相一致。这里,所谓视口,表示具有比画面小的区域的宽和高的四边形区域。然后,视口转换部103b将视口转换后的坐标变更到作为在2维屏幕上的坐标的屏幕坐标(Sx,Sy)。
显示部104取得在视口转换部103b中确定的屏幕坐标(Sx,Sy),在作为地图显示装置的实际画面的显示器等中显示描绘数据。
说明如上述那样构成的地图显示装置中的3维对象的显示处理步骤。图7是用于求取显示于本实施方式的地图显示装置的画面中的3维对象的坐标的流程图。
首先,对象生成部102a读取存储在地图数据存储部101中的作为对象的地图数据的顶点坐标(例如取(X,Y,高度))、包括构成颜色数据、纹理数据、面数据的索引等的面信息(S201)。然后,对象生成部102a取出从地图数据存储部101中取得的画面上所生成的建筑物的短形区域的各顶点的纬度、经度等位置信息,和这些各顶点的高度信息,对建筑物的短形区域的各顶点赋予位置信息和高度信息,生成作为多棱柱数据而显示的3维建筑物对象(S202)。另外,对象生成部102a根据地图数据还进行3维建筑物对象的顶点颜色的设定。
接下来,本地坐标转换部102b进行本地坐标转换矩阵的设定,将从对象生成部102a取得的各顶点的本地坐标(X、Y、Z、1),用本地坐标转换矩阵进行矩阵转换,设定全局坐标(X’、Y’、Z’、1)(S203和S204)。
然后,模型视图转换矩阵生成部102c生成将全局坐标转换为视点坐标系的模型视图转换矩阵,该点坐标系以视点坐标为原点、以视线方向为深度方向(z轴)、以铅直向上的方向为高度方向(y轴)的。接着,模型视图转换矩阵变更部102d为使转换后的建筑物相对于屏幕的y轴笔直地描绘,而从坐标左侧开始乘以模型视图转换矩阵来进行坐标转换时,将模型转换矩阵的第1行第2列的值和第3行第2列的值变更为0。另一方面,在从坐标右侧开始乘以模型视图转换矩阵来进行坐标转换时,将模型转换矩阵的第2行第1列的值和第2行第3列的值变更为0。然后,模型视图转换部102e使用变更后的模型视图转换矩阵,将3维对象的坐标从全局坐标系转换到视点坐标系,并进行设定(S205和S206)。此时,不仅是3维对象的各顶点坐标,视点坐标、光源等必要的部分全都配置在视点坐标系上。
另外,射影转换部103a转换视点坐标系的3维对象的各顶点坐标,使得对应于离视点坐标的距离进行转换,使得越靠近的变得越大,越远离的变得越小,并确定向2维屏幕进行投影的射影转换矩阵,并且进行用于从视点坐标转换到屏幕坐标的矩阵转换处理(S207)。另外,此时,射影转换部103a为除去不需要的对象的线和面而设定截取坐标(S208)。
然后,视口转换部103b为使3维对象与作为实际屏幕的画面上的显示位置和大小相一致,通过视口转换将3维对象的各坐标进行转换(S209),最终设定作为在地图显示装置的屏幕上的坐标的屏幕坐标(S210)。
图9是表示本实施方式的地图显示装置中的模型视图转换矩阵的变更处理、和从全局坐标系向视点坐标系的转换处理(S205)的详细步骤的流程图。
首先,由本地坐标转换部102b读出所设定的3维对象的全局坐标(S401)。接着,模型视图转换矩阵生成部102c基于全局坐标、视点坐标及视线方向,进行模型视图转换矩阵的生成(S402)。然后,对于该模型视图转换矩阵,模型视图转换矩阵变更部102d首先将模型视图转换矩阵的第1行第2列的值和第3行第2列的值变更为0(S403),以使转换后的x坐标和转换后的z坐标不因全局坐标系的y坐标而变化。
接下来,模型视图转换部102e进行所读取的3维对象的各顶点坐标的转换处理(S404)。通过变更后的模型视图转换矩阵,3维对象的各顶点坐标被转换,转换后的x坐标的值和z坐标的值为不受全局坐标系的y坐标的影响。并且,转换后的有关y坐标的成分(第2行)就是通常的模型视图转换矩阵,所以关于y坐标进行通常的模型视图转换(S405)。
然后,模型视图转换部102e如果对各顶点坐标都结束了变更处理,则结束循环(S406)。
图10是本实施方式的地图显示装置的画面的显示例。如图2(c)所示,在以往的地图显示中,离视线越远,建筑物就越被倾斜地描绘,所以建筑物的铅直方向边界线偏斜,产生锯齿,对于此,在本实施方式中,如图10所示,建筑物相对于画面的y轴方向被笔直地描绘出来,所以能够在不产生锯齿的情况下漂亮地显示建筑物。
如以上所述,对用于将3维对象的坐标从全局坐标系向视点坐标系转换的模型视图转换矩阵进行变更后,再进行从全局坐标系向视点坐标系的转换处理,所以能够在正确保持地图显示画面的有关横向(x轴方向)和深度方向(z方向)的数据的同时,校正有关纵向(y轴方向)的数据,将位于画面端部的建筑物相对于画面纵向笔直地显示出来。因而,在不产生锯齿的情况下能够漂亮地显示建筑物。
在本实施方式中,在模型视图转换矩阵变更部102d中,必须进行模型视图转换矩阵的变更,但不限于此。例如,也可以采用具备选择部,选择是否进行模型视图转换矩阵的变更的结构。由此,能够根据需要来选择通常的含有远近变形的显示,和相对于显示画面的纵向笔直地显示3维对象的显示。
另外,在本实施方式中,是以单体动作的地图显示装置为例进行了说明,但不限于此。例如,可以在上述地图显示装置的结构中设置与便携式信息终端或便携式电话等终端装置的通信部,将转换到屏幕坐标系的3维地图图像数据发送到终端装置,从而在终端装置的显示画面上显示3维地图。
(实施方式2)
在本实施方式中,说明基于包含在地图数据中的显示校正标志来决定是否对每个建筑物进行校正并进行显示的情况。本实施方式的结构与实施方式1的结构相同,用图6进行说明,并省略相同部分的说明。
本实施方式中,存储在地图数据存储部101中的3维建筑物数据和模型视图转换矩阵变更部102d的动作,与实施方式1不同。其他方面与实施方式1相同。
在地图数据存储部101中,除作为3维对象的建筑物的高度H、构成该建筑物的边界矩形的多棱柱形状的顶点数N、各顶点坐标Pi(i=1~N)、属性等,还存储有具有显示校正标志的3维建筑物数据,所述显示校正标志表示是否进行模型视图转换矩阵的变更。
模型视图转换矩阵变更部102d判断显示校正标志是否表示进行模型视图转换矩阵的变更(显示校正标志为ON)。模型视图转换矩阵变更部102d在显示校正标志表示ON时,进行模型视图转换矩阵的变更,在显示校正标志没有表示ON时,不进行模型视图转换矩阵的变更。
图11是表示本实施方式的地图显示装置中的使用显示校正标志时的模型视图转换矩阵的变更处理、和从全局坐标系向视点坐标系的转换处理的步骤的流程图。另外,这里简化使用图9的实施方式1中的说明。
模型视图转换矩阵生成部102c基于全局坐标、视点坐标及视线方向,进行模型视图转换矩阵的生成(S501)。接着,模型视图转换矩阵变更部102d判断3维对象的显示校正标志是否表示ON(S502)。该结果,当显示校正标志表示ON时(S502中为YES),模型视图转换矩阵变更部102d进行模型视图转换矩阵的变更(S503)。即,模型视图转换矩阵变更部102d对于模型视图转换矩阵,首先将模型视图转换矩阵的第1行第2列的值和第3行第2列的值变更为0,以使转换后的x坐标和转换后的z坐标不因全局坐标系的y坐标而变化。
接着,模型视图转换部102e使用变更后的模型视图转换矩阵对读出的3维对象的各顶点坐标进行转换处理(S504)。从而,此时3维对象的各顶点坐标,转换后的x坐标的值和z坐标的值被转换为不受全局坐标系的y坐标的影响。
另一方面,当显示校正标志没有表示ON时(S502中为NO),模型视图转换矩阵变更部102d不进行模型视图转换矩阵的变更。并且,模型视图转换部102e使用没被变更的通常的模型视图转换矩阵,对读取的3维对象的各顶点坐标进行转换处理(S504)。因而,此时进行通常的模型视图转换。
如以上所述,基于显示校正标志,对每个建筑物决定是否变更用于将建筑物(3维对象)的坐标从全局坐标系向视点坐标系转换的模型视图转换矩阵,所以能够根据需要对每个建筑物进行校正,能够仅将需要笔直地显示的建筑物在画面纵向上笔直地显示。
在本实施方式中,在模型视图转换矩阵变更部102d中,是基于显示校正标志来决定是否对每个建筑物进行校正的,但不限于此。例如,也可以采用如下结构:具备选择部,选择对全部都不进行校正,或基于显示校正标志决定是否对每个建筑物进行校正,或者对全部都进行校正。由此,能够根据需要而选择通常的含有远近变形的显示、基于显示校正标志将各建筑物在显示画面的纵向上笔直地显示的显示、将所有的3维对象都在显示画面的纵向上笔直地显示的显示。
另外,在本实施方式中,采用使每个建筑物具有显示校正标志的结构,并基于显示校正标志决定是否对各建筑物进行校正,但不限于此。例如,也可以采用使包括多个建筑物的建筑物群具有显示校正标志的结构,基于显示校正标志决定是否对各建筑物群进行校正。