【実施例1】
【0024】
以下、本発明の実施の形態について、本発明の3次元地図表示装置をナビゲーションシステムに適用した場合の実施例に基づき説明する。以下では、ナビゲーションシステムの例を示すが、本発明は、かかる例に限らず、3次元地図を表示する種々の装置として構成可能である。
【0025】
A.システム構成:
図1は、実施例におけるナビゲーションシステムの概略構成を示す説明図である。ナビゲーションシステムは、サーバ100と、3次元地図表示装置としての機能を有する端末10とを、ネットワークNEで接続して構成されている。この他、本実施例のサーバ100が提供する機能を、端末10に組み込んでスタンドアロンの装置として構成してもよいし、さらに多くのサーバ等を備える分散システムとして構成することもできる。
【0026】
サーバ100には、地図データベース20、および図示する送受信部101、データベース管理部102、経路探索部103の各機能ブロックが備えられている。これらの機能ブロックは、サーバ100に、それぞれの機能を実現するためのコンピュータプログラムをインストールすることによってソフトウェア的に構成することができる。これらの機能ブロックの少なくとも一部を、ハードウェア的に構成してもよい。
【0027】
地図データベース20には、地図データ22、文字データ26およびネットワークデータ29が格納されている。
地図データ22は、経路案内時などに3次元地図を表示するためのデータであり、山、河川、道路、建物などの種々の地物の形状を表すデータである。これらの地物には、その位置を表すための代表点位置データ24が併せて設定されている。代表点は、地物ごとに任意に設定可能な点であるが、例えば、建物については、平面形状の重心位置などを代表点とすることができる。
文字データ26は、地図中に表示される文字を表すデータである。本実施例では、文字を立体的に表現するため、文字に影を付して表示する。従って、文字データ26には、かかる表示を行うための影画像データ28も併せて格納されている。
ネットワークデータ29は、道路をリンクおよびノードの集合で表した経路探索用のデータである。
地図データ22および文字データ26のデータ構造については、後述する。
【0028】
サーバ100の各機能ブロックは、それぞれ次の機能を提供する。
送受信部101は、ネットワークNEを介して、端末10と種々のコマンドやデータ等の授受を行う。本実施例においては、例えば、経路探索や地図表示に関するコマンド、地図データベース20に格納された各種データなどが授受されることになる。
データベース管理部102は、地図データベース20からのデータの読み出しを制御する。
経路探索部103は、地図データベース20を利用して、ユーザから指定された出発地から目的地までの経路探索を実行する。経路探索には、ダイクストラ法などの周知の方法を適用することができる。
【0029】
端末10は、CPU、ROM、RAM、およびハードディスクドライブ等を備えている。そして、CPUは、ハードディスクドライブに記憶されたアプリケーションプログラムを読み出して実行することによって、送受信部12、表示制御部13として機能する。表示制御部13は、地物画像生成部14と、文字表示制御部16とを備えている。これら各部の少なくとも一部を、ハードウェアによって構成するようにしてもよい。
【0030】
コマンド入力部11は、経路探索、地図表示に関するユーザの指示を入力する。
送受信部12は、ネットワークNEを介して、サーバ100と種々のコマンドやデータ等の授受を行う。送受信部12は、地図データベース20から地図表示に必要なデータを取得するデータ取得部としての機能も奏することになる。
データ保持部17は、サーバ100から取得されたデータを一時的に保持する。
位置情報取得部15は、GPS(Global Positioning System)や電磁コンパスなどのセンサによって、端末10の現在位置および方位など、経路探索、経路案内に必要な情報を取得する。
地物画像生成部14は、地図データ22を用いて、透視投影法によって地物を3次元的に描画した地物画像を生成する。文字表示制御部16は、文字データ26を用いて、地物に関する情報を表す文字の地物画像上への表示を制御する。表示制御部13は、地物画像生成部14および文字表示制御部16の動作を制御するとともに、これらによって生成された画像を重畳して、端末10の表示装置30に地図等を表示する。
【0031】
B.地図データベース:
図2は、地図データベース20の内容を示す説明図である。ここでは、特に地図データ22および文字データ26の構造を例示した。
【0032】
地図データ22においては、各地物に対して固有の地物IDが付され、地物ごとに図示した種々のデータが管理されている。
「名称」は、地物の名称である。
「種別」は、「建物」、「道路」、「交差点」等、地物の種類を表している。
「2次元データ」は、地物の平面的な形状を表すポリゴンデータである。道路などの線状の地物に対しては、ラインデータとして格納してもよい。図の右側に示した「建物」の例では、ハッチングを付した部分の形状データが、2次元データとなる。
「3次元モデル」は、各地物を3次元的に表示するためのポリゴンデータである。
代表点位置データ24は、地物の2次元的な代表点の座標値を表すデータである。代表点は地物ごとに任意に設定可能であるが、本実施例では、代表点は、地物の2次元形状における重心であるものとした。
「属性」とは、地物の種別に応じて、地物の種々の性質を表すデータである。例えば、「道路」であれば、国道、県道などの道路種別や、道路の車線数などが属性に含まれる。また、「建物」であれば、ビル、家屋など建物の種別や、建物の階数または高さなどが属性に含まれる。
「文字ID」は、地物との関係で表示される文字を特定するための識別情報である。後述する通り、文字データ26に格納された各データには、固有の文字IDが付されているため、地物IDにおいて、この文字IDを指定することにより、図中に矢印Aで示したように、地物データに対して文字データを紐づけることができる。
【0033】
文字データ26においては、各データに対して固有の文字IDが付され、種々のデータが管理されている。
「文字列」は、地物の名称など地図に表示される文字列である。
「表示レベル」は、視点からの距離に応じて文字の表示を制御するためのデータである。3次元地図を表示する場合、ユーザは、視点付近では多くの情報を望むため、多くの文字を表示することが好ましいが、視点から遠方では、重要性の高い文字に絞って表示することが好ましい。このように、視点からの距離に応じて文字の表示/非表示を制御するためのデータを表示レベルと呼ぶ。
「フォント」は、文字を表示する際のフォントの種類を指定するデータである。
「描画プロパティ情報」は、文字を表示する際のフォントサイズや、文字色などを指定するデータである。
「属性」は、「建物」、「交差点」、「駅名」など、文字が表す内容を表している。本実施例では、後述する通り、この属性に応じて、文字の表示態様を変えている。
「表示位置」は、文字を表示する位置である。建物の名称のように、地物に関連する文字については、標示位置として地物IDを格納する。こうすることにより、図中に矢印Bで示したように、文字データに対応する地物を特定することができ、地物の代表点位置に基づいて、文字の表示位置を決定することができる。これに対し、地物に関連しない文字、例えば、交差点名称、交通規制を表す文字などについては、文字を表示する座標値をそのまま格納することができる。
【0034】
「影画像データ」は、文字を表示する際に、文字に付随して表示する影のテクスチャデータである。影画像データのテクスチャは、地物を上空に設定された視点から斜めに見下ろしたように描画される3次元地図を描画する際に利用される。図の右側に、影画像Gsh2の一例を示した。このように、3次元地図において、「○○ビル」という文字列を表示する際に、あたかもこの文字列が3次元の物体として存在するかのように、影画像Gsh2を表示する。こうした影画像Gsh2の表示は、例えば、「○○ビル」という文字を貼り付けた板状の3次元モデルを生成し、これに斜め方向からライティングする方法で生成することも可能ではあるが、本実施例では、影画像Gsh2のように、予め斜め方向からライティングしたときに生じる影の形状をした2次元画像をテクスチャとして用意しておき、これを貼り付けることによって、簡易的に影を表現するものとした。厳密に言えば、ライティングの方向が変われば、影画像Gsh2の形状も変化するはずであるが、単に文字に立体感を与える目的で表示するものであり、厳密さは必要とされないため、このように予め生成されたテクスチャで足りるのである。
影画像Gsh2は、全ての文字で共通とすることも可能であるが、文字列の長さや、内容を反映した画像とするため、本実施例では、文字列ごとに個別に影画像Gsh2を用意するものとした。
【0035】
文字データ26には、図中に矢印Cで示したように、さらに、文字の属性ごとに表示態様および位置表示影画像を規定するデータも格納されている。図示した例では、例えば、「建物名」という属性に対しては、文字は、「白縁取り文字」で表示するものとされ、さらに、位置表示影画像を表示するものとされている。位置表示影画像とは、3次元地図内に表示された文字について、2次元的な位置を表すための影画像である。これは、図中に示したように、あたかも、文字が貼り付けられた円柱状の3次元モデルを3次元空間に配置し、真上からライティングしたときに直下にできる影のような画像である。この位置表示用影画像は、
図1に示した影画像データ28の一種ではあるが、文字に立体感を付与するだけでなく、その2次元的な位置を表す役割を果たすものであるため、先に説明した影画像Gsh2とは区別する。位置表示影画像も、文字ごとに個別のテクスチャとして備えてもよいが、本実施例のように、「建物名」という属性に共通のテクスチャとしておけば、テクスチャのデータ量を抑制できる利点がある。
位置表示影画像の有無も、文字の属性に応じて制御される。図示した例では、「交差点名」については、枠囲みの文字の表示態様をとるとともに、位置表示影画像は用いないものと設定されている。また、「駅名」については、吹出し文字の表示態様をとるとともに、位置表示影画像は用いないものと設定されている。もちろん、建物名以外の属性に対して、位置表示影画像を用いる設定としてもよい。その際に用いる位置表示影画像のテクスチャは、建物名用とは異なるテクスチャとしてもよい。
【0036】
図3は、影画像、位置表示影画像の表示例を示す説明図である。本実施例による3次元地図表示の一部を拡大した例を示した。右下に表示されている「警察博物館」という文字列に対しては、その文字の2次元的な位置Pt、すなわち、警察博物館という建物の代表点を表すように、楕円形の影画像Gsh1が表示されている。これが、先に説明した位置表示影画像である。また、文字列の斜め下には、文字が地面に写ったかのように平行四辺形または台形形状を有する影画像Gsh2が表示されている。これが、先に説明した影画像Gsh2である。本実施例では、警察博物館という「建物名」の属性からなる文字に対して、このように影画像Gsh2と、位置表示影画像Gsh1とを表示することによって、立体感を付与しつつ、その2次元的な位置も表示するようにしているのである。
【0037】
3次元地図内に文字を表示する場合、それぞれの文字が、どの地物と対応づけられているのか、2次元的にどの地点に対応しているのかは、容易には把握しづらいことが多い。3次元地図では、投影された画像内の各点は、3次元空間の一点を一義的に表すものではないからである。これに対し、本実施例のように、文字列と対応させて位置表示影画像Gsh1を表示することによって、文字の2次元的な位置を非常に把握しやすくなる。これは、ユーザが、影は何らかの物体の直下にできるという経験的な感覚に基づいて、この表示を見ることによるものである。このような感覚が身についているからこそ、文字と位置表示影画像Gsh1との間に引き出し線などがなくても、両者を無意識のうちに結びつけて把握することができるのである。従って、本実施例によれば、位置表示影画像Gsh1を用いることにより、地図の煩雑化を回避しつつ、文字と2次元的な位置、ひいては地物との対応関係を、容易に判断可能とすることができる。
【0038】
また、本実施例では、
図3に示すように、文字を縦書きで表示した上で、位置表示影画像Gsh1を表示している。仮に文字を横書きにすると、ユーザに板状の物体を想起させ、これに対応する位置表示影画像Gsh1も横長の比較的面積が大きい画像とならざるを得ない。これに対し、文字を縦書きにした場合には、ユーザに、柱状の3次元物体を想起させることができ、位置表示影画像Gsh1の面積を抑制することができる。従って、縦書きの文字との組み合わせで位置表示影画像Gsh1を用いることにより、文字の2次元的な位置を、より明確に表すことができる利点もある。
【0039】
C.文字の表示制御の概要:
図4は、文字の表示制御の概要を示す説明図である。本実施例では、3次元地図を表示する際の視点位置からの距離に応じて、文字の表示/非表示や文字の表示方向等を切り換えている。図示した例では、視点からの距離が近い手前側から、エリア1、エリア2、エリア3と3つのエリアに区分して、文字の表示制御を行う例を示した。視点から、どの程度の距離を各エリアに割り当てるかは、任意に決定可能である。また、区分するエリアの数も任意に設定可能であり、2つ、または4つ以上のエリアとしてもよい。
以下で説明する表示の制御は、本実施例においては、「建物名」の属性についてのみ適用しているが、他の属性の文字に適用することも可能である。
【0040】
まず、文字の表示/非表示の制御について説明する。本実施例では、エリアに応じて、文字の表示/非表示を切り換える。先に
図2を用いて説明した通り、文字データ26には、それぞれ表示レベルが設定されている。本実施例では、視点から最も遠いエリア3においては、表示レベルが「3」に設定された文字のみを表示する。エリア2では、表示レベルが「2」以上、すなわち、表示レベル「2」または「3」の文字を表示する。視点に最も近いエリア1においては、表示レベルが「1」以上、すなわち、表示レベル「1」〜「3」の文字を表示する。図示した例では、左側の方に示すように、「○○区」という文字列には、表示レベル「3」が設定されているので、エリア1〜3のいずれのエリアにある場合でも表示されることになる。「○○駅」という文字列には、表示レベル「2」が設定されているので、エリア1およびエリア2で表示され、エリア3では表示されない。「○○ビル」には、表示レベル「1」が設定されているので、エリア1においてのみ表示される。
このように表示レベルは、値が大きいほど、視点からより遠方でも表示される文字、それだけ重要性の高い文字であることを表している。
【0041】
また、本実施例では、同じく視点からの距離によって設定されたエリアごとに、文字の表示方向および表示行数を制御する。図の中央の列に示すように、「○○ビル」という建物名をエリア1で表示する際には、図示するように「縦書き」で表示し、位置表示影画像Gsh1も表示する。先に
図3に例示した表示に相当するものである。
次に、「○○タワー」のように、エリア2において建物名を表示する際には、縦書きからα度だけ斜めに傾けた状態で表示する。位置表示影画像Gsh1は、エリア1と同様、文字列の直下に表示する。傾ける角度αは、文字の読みやすさなどを踏まえて、任意に設定可能である。
そして、「○○ドーム」のように、エリア3において建物名を表示する際には、横書きで表示する。エリア3のように視点から遠く離れた位置では、地物の上方向の余剰なスペースが狭くなり、縦書きにするには、スペースが不足することがあるからである。また、エリア3では、位置表示影画像Gsh1は表示しない(図中の破線領域G参照)。視点から遠方にあるエリア3では、地物自体が比較的小さく表示されることになるため、位置表示影画像Gsh1を表示したとしても、文字と地物との対応関係は、それほど明確にならないからである。また、このような小さな地物に対して、位置表示影画像Gsh1を表示すると、地物すら認識できなくなるおそれがあるからである。
このように視点から遠方では横書き、視点に近い手前側に来るほど上下方向のスペースを十分に活用した縦書き、というように表示方向を変えることによって、3次元地図の画像内のスペースを有効活用し、文字を見やすく表示することができる。
【0042】
かかる制御は、文字の表示方向だけでなく、文字の表示行数を変化させることで実現してもよい。
例えば、図の右側の列に示すように、エリア1では、「ABC PRINCE HOTEL」という文字列を1行で示し、エリア2では、「ABC PRINCE」「HOTEL」というように2行に分けて表示し、エリア3では、「ABC」「PRINCE」「HOTEL」というように3行に分けて表示するのである。このように表示行数を変えることによっても、視点から遠方ほど縦方向の幅が狭く、手前側ほど縦方向の幅を広くとって文字を表示することが可能となる。
表示方向、表示行数の制御は、日本語表記、英文表記で使い分けるようにしてもよいし、いずれか一方のみを使うようにしてもよい。
【0043】
D.経路案内処理:
以下、実施例のナビゲーションシステムで経路探索および経路案内を行う場合の処理を例にとって、実施例における3次元地図の表示制御について説明する。
図5は、経路案内処理のフローチャートである。端末10とサーバ100の処理内容を区別して記載してはいないが、この処理は、両者が連携して実行するものである。
処理を開始すると、ナビゲーションシステムは、出発地、目的地、および表示モードの指示を入力する(ステップS10)。出発地は、現在位置をそのまま用いるものとしてもよい。表示モードとしては、比較的地面に近い運転者の視点からの仰瞰図を表示する表示モード(以下、「ドライバーズビュー」と呼ぶ)、および、高い視点から地物を見下ろした鳥瞰図を表示する表示モード(以下、「バーズビュー」と呼ぶ)が用意されている。
【0044】
次に、ナビゲーションシステムは、ユーザからの指定に基づき経路探索処理を実行する(ステップS12)。この処理は、地図データベース20に格納されたネットワークデータ29を用いて行う処理であり、ダイクストラ法などの周知の方法によって行うことができる。得られた経路は、端末10に送信される。
【0045】
経路探索の結果を受け、端末10は、3次元地図表示を行いながら、以下の手順で経路案内を実行する。
まず、端末10はGPS等のセンサから現在位置を入力し(ステップS14)、3次元地図を表示する際の視点位置、視線方向を決定する(ステップS16)。視線方向は、例えば、現在位置から目的地へ向かう経路上の将来位置を見た方向とすることができる。視点位置は、現在位置から所定距離だけ後ろとすることができ、ドライバーズビューでは比較的地面に近い高さに、バーズビューでは上空から見下ろす高さに設定することができる。いずれの表示モードにおいても、視点の高さ、バーズビューにおける見下ろし角度などをユーザが任意に調整可能としてもよい。
【0046】
そして、端末10は、ユーザから指定された表示モードに応じて(ステップS18)、ドライバーズビューが指定されている場合は、ドライバーズビュー表示処理を実行し(ステップS20)、バーズビューが指定されている場合は、バーズビュー表示処理を実行する(ステップS30)。ドライバーズビュー表示処理およびバーズビュー表示処理の内容は、それぞれの表示モードに沿った3次元地図を表示するための処理である。ドライバーズビュー表示処理およびバーズビュー表示処理については、後から詳しく説明する。
端末10は、ステップS14〜S30までの以上の処理を、目的地に到達するまで(ステップS40)、繰り返し実行する。
【0047】
D1.ドライバーズビュー表示処理:
図6は、ドライバーズビュー表示処理のフローチャートである。この処理は、経路案内処理(
図5)におけるステップS20に相当する処理であり、端末10が実行する処理である。
処理を開始すると、端末10は、視点位置、視線方向を入力し(ステップS100)、地図データベース20から、3次元モデルを読み込む(ステップS102)。そして、端末10は、設定された視点位置、視線方向に基づいて透視投影法によってレンダリングして地物を3次元的に描画した地物画像を生成する(ステップS103)。
【0048】
そして、端末10は、地物画像上に文字を表示するための処理に移行する。まず、端末10は、地物画像内に表示されている地物、すなわち、視点位置から視認可能な地物を抽出し(ステップS104)、視点位置から各地物までの距離Dを算出する(ステップS106)。
次に、端末10は、距離D、表示レベルに基づき、表示対象となる文字データを読み込む(ステップS108)。視点から地物までの距離Dが決まれば、その地物が
図4に示したいずれのエリアに属するものであるかを特定することができる。そして、その地物に紐づけられた文字データに設定された表示レベルを参照すれば、その文字の表示/非表示を決定することができる。こうして、表示対象とする文字のみを順次、抽出すればよい。
【0049】
表示対象となる文字が特定されると、端末10は、距離D、すなわち、エリア区分に基づいて、各文字の表示方向等を決定する(ステップS110)。先に
図4で説明した通り、本実施例では、「建物名」の属性の文字についてのみ表示方向等の切り換えの制御を行うから、表示対象となる文字が、「建物名」以外の属性の場合にはステップS110の処理はスキップしてよい。「建物名」については、距離D、すなわち、エリア区分に基づいて、その文字を、縦書きにするのか、斜め書きにするのか、または横書きにするのかが決定される。文字を表示する行数を決定するものとしてもよい。
【0050】
そして、端末10は、各文字の表示位置を決定し、地物画像に重畳して文字を表示する(ステップ112)。各文字の表示位置は、種々の方法で決定することができる。本実施例では、各文字の表示位置を、ステップS103で生成された地物画像内における2次元的な処理で決定するものとした。すなわち、地物画像において、各文字に対応する地物が表示されている領域(以下、「地物領域」という)を特定し、地物領域との位置関係で文字の画像内での表示位置を決定するのである。例えば、縦書きの文字については、地物領域と文字との重なりが大きくなるように位置を決定することができる。横書きの文字については、地物領域の上方に位置を決定してもよい。
【0051】
図7は、ドライバーズビューの表示例を示す説明図である。図示するように、比較的低い視点から、地物が3次元的に描かれる。視点位置に近いエリアに存在する地物については、「○○ビル」「ABCビル」のように、縦書きで建物名が表示される。視点位置から遠いエリアに存在する地物については、「○○タワー」「**ホテル」のように横書きで建物名が表示される。
また、「××交差点」のように、建物名以外の文字については、表示方向の制御の対象外であるから、視点に近いエリアに存在する場合でも、横書きで表示される。
【0052】
D2.バーズビュー表示処理:
図8、
図9は、バーズビュー表示処理のフローチャートである。経路案内処理(
図5)におけるステップS30に相当する処理であり、端末10が実行する処理である。
処理を開始すると、端末10は、視点位置および視線方向を入力し(ステップS200)、地図データベース20から、2次元データを読み込む(ステップS202)。バーズビューにおいても、3次元モデルを読込み、透視投影することは可能であるが、本実施例では、地図としての機能を重視し、地物の位置関係が把握しやすい態様での表示を実現するため、敢えて2次元データを用いるものとしている。
そして、端末10は、2次元データを用いて、建物立ち上げ処理を行う(ステップS204)。図中にこの処理の概要を示した。左側に示したのが、建物の2次元データで表されるポリゴンである。端末10は、このポリゴン形状を、高さ方向に所定の高さHだけ平行移動し、図の右側に示すように、3次元形状化するのである。この高さHは、建物の実際の高さとは無関係に、予め設定された値である。すなわち、バーズビューでは、全ての建物を一定の高さHで立体的に表示するのである。かかる表示を実現するため、2次元データからの立ち上げ処理に代えて、予め高さHの3次元モデルを用意しておくものとしてもよい。
【0053】
建物の高さを一定値Hに統一する理由は、次の通りである。3次元地図においては、建物を立体的に表示すると、高い建物の陰になる道路や、他の建物などが現れ、地図として重要な地理的情報が欠落してしまうことがある。一方、建物を2次元形状のままで表示すると、立体感が付与されないため、建物の存在を直感的に認識しづらくなり、地理を直感的に把握しやすいという3次元地図の有用性を減じてしまうことになる。そこで、本実施例では、こうした弊害を回避するため、建物を立体的に表示しつつ、他の建物や道路を隠さない程度に、高さを抑えるものとしたのである(
図3参照)。
高さHは、こうした趣旨に基づき、立体感を付与できる程度の下限値と、かつ、他の道路や建物を隠さない程度の上限値の間で、任意に設定できる。バーズビューの見下ろし角が大きく(鉛直に近く)なるほど、立体感が感じづらくなることを考慮して、バーズビューの見下ろし角が大きくなるほど高さHが大きくなるように変化させてもよい。
【0054】
また、本実施例では、全領域で高さHを一定値としたが、視点からの距離に応じて高さHを変化させてもよい。例えば、視点からの距離が遠方ほど高さHを小さくしたり、遠方では高さHを0にしたりする方法が考えられる。遠方では、地物は小さく表示されるため、立体感はそれほど重要ではなくなるからである。遠方において高さHを0とすれば、処理負荷が軽くなる利点も生じる。
こうして建物立ち上げ処理が完了すると、端末10は、透視投影法によってレンダリングを行い、地物を3次元的に描画した地物画像を生成する(ステップS206)。
【0055】
そして、端末10は、地物画像上に文字を表示するための処理に移行する。まず、端末10は、視点からの距離D、および表示レベルに基づき、表示対象となる文字データを抽出し(ステップS208)、視点からの距離、すなわち、エリア区分に基づいて、各文字の表示方向等を決定する(ステップS210)。これらの処理は、ドライバーズビューと同様である。
【0056】
次に、
図9に移り、端末10は、文字、位置表示影画像Gsh1の3次元位置、すなわち、3次元空間内での表示位置を決定する(ステップS212)。図中に、3次元位置の決定方法を示した。
交差点などのように、地物に紐づけられていない文字の場合、すなわち、文字データ26において表示位置として座標値が与えられている文字の場合(
図2参照)には、その表示座標値を、そのまま文字の3次元位置として用いる。「建物名」以外の文字では、位置表示影画像Gsh1の表示は行わないから、これに対する3次元位置は設定する必要はない。
【0057】
一方、「建物名」の場合、文字データ26(
図2参照)の表示位置に格納された地物IDを参照し、文字に紐づけられた地物の代表点位置を取得する。図中に示した建物代表点位置(LAT,LON,0)が、それである。代表点位置は、2次元座標(LAT,LON)として与えられているから、ここでは、高さ0とすることで3次元座標化した。
そして、位置表示影画像Gsh1は、本実施例では、この地物の上表面に表示する。従って、その表示位置は、建物代表点位置(LAT,LON,0)の高さ値を、建物立ち上げ処理で用いた高さHだけ増やした値となり、位置表示影画像Gsh1の3次元位置は(LAT,LON,H)と設定される。
さらに、文字については、建物の上空に浮遊しているかのように表示するから、建物の高さHよりもさらにΔHだけ上方の位置が文字の下端となるように設定する。従って、文字3次元位置は(LAT,LON,H+ΔH)と設定される。ΔHは、見栄えを考慮しながら、任意に設定可能である。
【0058】
このように実施例においては、建物代表点位置の直上に、位置表示影画像Gsh1、および文字が表示されるようにそれぞれの表示位置を設定した。位置表示影画像Gsh1、および文字は、建物との関係が把握可能な位置に表示されていればよいから、建物代表点位置からややずれた位置に表示するようにしてもよい。例えば、位置表示影画像Gsh1内に建物代表点位置が包含される程度の範囲で、位置表示影画像Gsh1および文字の位置をずらすことが考えられる。こうすることにより、例えば、建物代表点が、建物の縁線近くに設定されている場合でも、位置表示影画像Gsh1が建物の上面からはみ出さないように違和感なく表示させることが可能となる。
【0059】
端末10は、文字および位置表示影画像Gsh1の3次元位置を決定すると、これらを地物と同様の透視変換によって座標変換し、画像内の2次元位置、すなわち、投影画像内の2次元座標としての表示位置を決定する(ステップS214)。
【0060】
次に、端末10は、影画像Gsh2の表示位置を決定する(ステップS216)。影画像Gsh2は、文字に立体感を付与するために表示されるテクスチャ、すなわち、2次元画像であるから、その表示位置は、文字の2次元位置との相対関係に基づき2次元的に決定するものとした。図中に影画像Gsh2の表示位置の設定方法を示した。投影画像内の2次元座標をu,vで表すものとする。文字を表示するための2次元位置が(u,v)であるとすると、影画像Gsh2は、投影画像内でΔu、Δvだけ移動させた点を表示位置とする。従って、影画像Gsh2の表示位置は、(u+Δu、v+Δv)となる。相対的な移動量Δu、Δvは、見栄えを考慮して、任意に設定可能である。本実施例では、Δu、Δvは、全ての文字に対して共通としたが、文字ごと、または、文字の属性ごとに変化させてもよい。
【0061】
以上の処理で、文字、位置表示影画像Gsh1、影画像Gsh2の表示位置を決定すると、端末10は、地物画像上に、これらの文字、位置表示影画像Gsh1、影画像Gsh2を重畳表示し、3次元地図を完成させる(ステップS218)。
【0062】
図10は、バーズビューの表示例を示す説明図である。バーズビューでは、各建物は、実際の高さに依らず、一律の高さで描画されている。比較的視点に近い領域においては、文字CH1、Ch3のように、建物の名称を表す文字列が縦書きで表示される。文字列を縦書きにすることにより、文字CH3に示されるように、空の領域も有効活用して、見やすく表示することができる。
これらの文字の表示位置は、対応する建物の上空である。そして、建物の上面には、文字列CH1について示すように、代表点位置の真上の位置Ptに位置表示影画像Gsh1が表示され、立体感を付与するための影画像Gsh2も表示される。
【0063】
本実施例では、建物名は、視点から遠方では横書きで表示する。従って、
図10に示した地図においても、視点から遠方の領域では、文字列CH4に示すように、建物名は横書き表示に切り変わる。このときは、位置表示影画像Gsh1は表示されない。
建物名以外の文字、例えば、駅名については、文字列CH2に示すように、建物名とは異なり、吹出しの枠囲みとした表示態様で表示される(
図2参照)。建物名以外の属性では、位置表示影画像Gsh1は表示しないが、影画像S2のように、立体感を付すための影画像は表示される。
【0064】
以上説明した本実施例のナビゲーションシステムによれば、バーズビューで3次元地図を表示する際に、地物の上空に、文字列を表示するとともに、文字列の位置を表す位置表示影画像Gsh1を表示することができる。こうすることにより、3次元地図のリアリティを損ねることを抑制するとともに、地図の煩雑化を回避しつつ、地物と文字列との対応関係を明確にすることができ、見やすい3次元地図を提供することができる。
【0065】
また、本実施例では、位置表示影画像Gsh1および影画像Gsh2を予めテクスチャとして用意しておくため、CG(コンピュータ・グラフィック)におけるライティング技術を用いた複雑な計算を行って位置表示影画像Gsh1および影画像Gsh2を生成する必要がない。したがって、地物画像上に位置表示影画像Gsh1および影画像Gsh2を表示させる際の処理速度を向上させることができる。位置表示影画像Gsh1および影画像Gsh2は、表示の際に、文字列の長さ、属性等に応じて、サイズや形状を変化させてもよい。また、位置表示影画像Gsh1のように、比較的単純な形状の影画像の場合には、表示時に楕円等の幾何学形状から位置表示影画像Gsh1を生成するようにしてもよい。
【0066】
また、本実施例では、建物の実際の高さに依らず、一律の高さで、建物を描画する。こうすることによって、バーズビューにおいて、建物に立体感を付与しつつ、視点からの距離が遠い奥側の建物や道路が、視点からの距離が近い手前側の建物によって遮蔽されることを抑制することができ、地図としての情報の欠落を抑制することができる。
【0067】
また、本実施例では、ドライバーズビュー、バーズビューのいずれにおいても、視点からの距離が比較的近い領域では縦書き、遠方の領域では横書き、というように文字の表示方向を切り換える。つまり、視点からの距離が近くなるほど、文字列の縦方向の幅が大きくなるように表示を制御する。こうすることによって、視点に近い領域では、空などの背景部分など、3次元地図中のスペースを有効利用して、文字列を見やすく表示することができる。
【0068】
E.変形例:
以上、本発明のいくつかの実施の形態について説明したが、本発明はこのような実施の形態になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々なる態様での実施が可能である。例えば、以下のような変形が可能である。
【0069】
図11は、変形例におけるバーズビュー表示処理のフローチャートである。実施例(
図8)で示した処理に代わるものである。
変形例の処理では、端末10は、実施例と同様、視点位置、視線方向を入力し(ステップS300)、2次元データの読込、および建物立ち上げ処理を行う(ステップS302)。
そして、視点からの距離および表示レベルに基づき、表示対象となる文字を抽出し、各文字の表示態様を決定する(ステップS304)。この処理によって、「建物名」を表す文字のうち、位置表示影画像Gsh1を表示すべきものが特定されることになる。
そして、変形例においては、端末10は、位置表示影画像Gsh1のテクスチャを、建物の上面に貼り付ける(ステップS306)。図中にこの処理概要を示した。位置表示影画像Gsh1のテクスチャは、実施例と同様、文字データ26において格納されている(
図2参照)。変形例では、このテクスチャを、3次元空間において、建物立ち上げ処理によって生成された建物の3次元ポリゴンの上面に貼り付けるのである。テクスチャの貼り付け位置は、実施例と同様、建物代表点位置(LAT,LON,0)の直上とした。すなわち、テクスチャ位置を(LAT,LON,H)とし、ここにテクスチャ画像の重心が一致するように貼り付けるのである。
【0070】
端末10は、この状態で、透視投影によるレンダリングを行って、地物画像を生成する(ステップS308)。こうすることにより、地物画像は、既に位置表示影画像Gsh1が表示された状態で生成されることになる。
ステップS308の処理以降は、実施例と同様(
図9)、文字および影画像Gsh2の表示位置を設定し、地物画像に重畳して表示すればよい(
図9のステップS212〜S218)。ただし、変形例では、これらの処理において、位置表示影画像Gsh1に対する処理は、省略することができる。
かかる方法によっても、実施例と同様の3次元地図表示を実現することができる。
【0071】
その他の変形例として、文字および位置表示影画像Gsh1は、地物画像上において、地物の上空および上面で揺れ動くように表示するようにしてもよい。
また、本実施例では、ナビゲーションシステムとしての例を示したが、経路探索・経路案内機能とは無関係に、3次元地図を表示するための装置として構成することも可能である。