(57)【特許請求の範囲】
【請求項１】
地物を３次元的に表現した３次元地図と、該３次元地図中の特定の位置を表す位置表示とを重畳して表示する３次元地図表示システムであって、
所定の投影方法によって前記地物を平面上に投影した２次元表示データとしての地物データと、所定以上の高さにある前記地物を前記投影方法によって平面上に投影した２次元のマスク画像を表すマスクデータとを格納する地図データベースと、
３次元地図を表示すべき範囲の指定を入力する表示範囲入力部と、
前記地図データベースから、前記指定に対応した地物データを読み込んで３次元地図を表示する表示制御部とを備え、
前記表示制御部は、
前記特定の位置の３次元座標を前記投影方法で投影することにより前記３次元地図内における表示用座標値を求め、
前記表示用座標値に所定形状の前記位置表示を行った場合に、該位置表示のうち前記地物によって遮蔽されずに視認できる部分に相当する可視形状を前記マスクデータに基づいて特定するマスク処理を実行し、前記３次元地図に重畳して前記可視形状で前記位置表示を行う
３次元地図表示システム。
【請求項２】
請求項１記載の３次元地図表示システムであって、
前記投影方法は、鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影である３次元地図表示システム。
【請求項３】
請求項１または２記載の３次元地図表示システムであって、
前記マスクデータが、地物の種類に応じた異なるマスク画像を表すように複数種類備えられており、
前記表示制御部は、前記特定の位置がいずれの前記マスク画像内に存在するかを判定し、該判定結果に基づいて前記複数種類のマスクデータを使い分けて前記マスク処理を実行する３次元地図表示システム。
【請求項４】
請求項１または２記載の３次元地図表示システムであって、
前記地図データベースは、
さらに道路網をノードおよびリンクで表すとともに、各道路の種別を格納したネットワークデータを備えるとともに、
前記マスクデータを地物の種類に応じた異なるマスク画像を表すように複数種類備えており、
前記表示制御部は、前記ネットワークデータに基づいて前記特定の位置がいずれの道路の種別に存在するかを判定し、該判定結果に基づいて前記複数種類のマスクデータを使い分けて前記マスク処理を実行する３次元地図表示システム。
【請求項５】
請求項１〜４いずれか記載の３次元地図表示システムであって、
前記表示制御部は、前記特定の位置が前記マスク画像内に存在するか否かを判定し、該判定結果に基づいて前記マスクデータに基づいて前記可視形状を特定する特定方法を切り替える３次元地図表示システム。
【請求項６】
請求項１記載の３次元地図表示システムで用いられるマスクデータを生成するマスクデータ生成システムであって、
前記地物の３次元形状を表す３次元モデルを記憶する３Ｄ地図データベースと、
前記３Ｄ地図データベースから前記マスクデータの生成対象となる地物を特定するマスク条件設定部と、
前記所定の投影方法によって、前記マスク条件特定部によって特定された地物を平面上に投影して２次元のマスク画像を生成する平行投影部とを備えるマスクデータ生成システム。
【請求項７】
コンピュータによって、地物を３次元的に表現した３次元地図と、該３次元地図中の特定の位置を表す位置表示とを重畳して表示する３次元地図表示方法であって、
前記コンピュータは、所定の投影方法によって前記地物を平面上に投影した２次元表示データとしての地物データと、所定以上の高さにある前記地物を前記投影方法によって平面上に投影した２次元のマスク画像を表すマスクデータとを格納する地図データベースを備えており、
３次元地図を表示すべき範囲の指定を入力する表示範囲入力工程と、
前記地図データベースから、前記指定に対応した地物データを読み込んで３次元地図を表示する表示制御工程とを備え、
前記表示制御工程は、
前記特定の位置の３次元座標を前記投影方法で投影することにより前記３次元地図内における表示用座標値を求め、
前記表示用座標値に所定形状の前記位置表示を行った場合に、該位置表示のうち前記地物によって遮蔽されずに視認できる部分に相当する可視形状を前記マスクデータに基づいて特定するマスク処理を実行し、前記３次元地図に重畳して前記可視形状で前記位置表示を行う
３次元地図表示方法。
【請求項８】
コンピュータによって、地物を３次元的に表現した３次元地図と、該３次元地図中の特定の位置を表す位置表示とを重畳して表示するためのコンピュータプログラムであって、
前記コンピュータは、所定の投影方法によって前記地物を平面上に投影した２次元表示データとしての地物データと、所定以上の高さにある前記地物を前記投影方法によって平面上に投影した２次元のマスク画像を表すマスクデータとを格納する地図データベースを備えており、
該コンピュータプログラムは、
３次元地図を表示すべき範囲の指定を入力する表示範囲入力機能と、
前記地図データベースから、前記指定に対応した地物データを読み込んで３次元地図を表示する表示制御機能とを前記コンピュータに実現させ、
前記表示制御機能として、
前記特定の位置の３次元座標を前記投影方法で投影することにより前記３次元地図内における表示用座標値を求め、
前記表示用座標値に所定形状の前記位置表示を行った場合に、該位置表示のうち前記地物によって遮蔽されずに視認できる部分に相当する可視形状を前記マスクデータに基づいて特定するマスク処理を実行し、前記３次元地図に重畳して前記可視形状で前記位置表示を行う機能を前記コンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地物を３次元的に表現した３次元地図を表示する３次元地図表示システムに関する。
【背景技術】
【０００２】
建造物や道路などの地物を３次元的に表示した３次元地図を経路案内に利用する技術がある。３次元地図の表示は、通常、建物等の３次元的な形状を表した３次元モデルを利用し、透視投影によってレンダリングする方法で行われる。３次元地図は、ユーザが現実に視認する景色に近い状態が表示されるため、これを経路案内に利用すると、現在位置や進むべき経路を直感的に把握しやすくなる利点がある。
【０００３】
特許文献１は、３次元地図を経路案内に用いる場合、現在位置を表すマークや経路案内用の誘導経路の表示について隠線処理を行う技術を開示する。この技術では、３次元地図を表示した場合に、誘導経路が手前の建物によって隠される位置にあるか否かを、３次元の座標空間内で判断し、建物に隠れる部分を切り落として表示する。こうすることによって、ユーザが、誘導経路と建物との遠近感を適格に把握できる利点がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８６９６０号公報
【特許文献２】特開平１０−２５３３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
３次元モデルを用いた透視投影によって３次元地図を表示する方法は、計算負荷が高いという課題がある。こうした課題を解決する技術として、特許文献２は、平行投影による３次元地図の表示技術を開示している。
【０００６】
図１は、平行投影による３次元地図の表示例を示す説明図である。図１（ａ）に示すように、平行投影では、現実の地物ＣＳＴの各点を通る所定の平行線ＰＲＪと投影面ＰＬとの交点で、投影結果ＰＩが得られる。
図１（ｂ）は平行投影によって描かれた地図の例である。例えば、建物ＢＬＤ１、ＢＬＤ２、ＢＬＤ３の辺は平行線で構成されている。平行投影では、透視投影と異なり投影方向に当たる平行線ＰＲＪを定義しさえすれば、「視点」を定義する必要がない。従って、３次元地図を表示する際にユーザの視点に応じてレンダリングをする必要がなく、平行投影して得られた２次元の画像データを予め用意しておくだけで軽い計算負荷で３次元地図を表示できる利点がある。
【０００７】
しかし、平行投影による３次元地図を用いて経路案内をする場合には、現在位置の表示等に課題が生じる。この方法では、３次元地図全体が予め２次元画像として用意されているので、建物の重なり具合を判断することができないのである。図１（ｃ）に示すように、道路ＲＤ上を走行中に現在位置を表すマークＰＰを表示しようとすると、建物ＢＬＤ４、ＢＬＤ５の上に描かれることになり、違和感があるとともに、道路ＲＤと現在位置との位置関係も把握しづらい表示になってしまう。
【０００８】
上述の課題は、平行投影によって描画された３次元地図に限らず、予め何らかの投影方法によって用意された２次元画像を用いて３次元地図を表示する際に共通の課題であった。
本発明は、かかる課題を解決するものであり、予め２次元画像として用意された３次元地図において、現在位置や経路案内について、地物による隠線処理を考慮した表示を実現することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、地物を３次元的に表現した３次元地図と、該３次元地図中の特定の位置を表す位置表示とを重畳して表示する３次元地図表示システムであって、
所定の投影方法によって前記地物を平面上に投影した２次元表示データとしての地物データと、所定以上の高さにある前記地物を前記投影方法によって平面上に投影した２次元のマスク画像を表すマスクデータとを格納する地図データベースと、
３次元地図を表示すべき範囲の指定を入力する表示範囲入力部と、
前記地図データベースから、前記指定に対応した地物データを読み込んで３次元地図を表示する表示制御部とを備え、
前記表示制御部は、
前記特定の位置の３次元座標を前記投影方法で投影することにより前記３次元地図内における表示用座標値を求め、
前記表示用座標値に所定形状の前記位置表示を行った場合に、該位置表示のうち前記地物によって遮蔽されずに視認できる部分に相当する可視形状を前記マスクデータに基づいて特定するマスク処理を実行し、前記３次元地図に重畳して前記可視形状で前記位置表示を行う
３次元地図表示システムとして構成することができる。
【００１０】
本発明では、地図データベースには、地物データを２次元表示データとして格納しているため、表示時にはレンダリングを行うまでなく軽い負荷で３次元地図を表示することができる。
また、マスクデータは、所定以上の高さにある地物が描かれている部分を特定する画像データであるから、３次元地図内でマスクデータと重ならない部分が、地物で遮蔽されずに視認できる部分となる。特定の位置に位置表示を行う際には、その位置表示とマスクデータとの重なり具合によって、位置表示のどの部分が地物に隠され、どの部分が隠されないかを特定することができる。この結果、位置表示の地物によって隠されない可視形状を求め、これを３次元地図上に表示することにより、図１（ｃ）で示した違和感のある表示を回避することができ、地物との奥行き感を持たせた位置表示を実現することができる。
【００１１】
本発明において、地物データは２次元表示データとして用意されたものであればよく、透視投影法を含め、種々の投影方法で生成したデータを用いることができる。地物データは、ラスタデータおよびポリゴンデータのいずれの形式で備えてもよい。ただし、解像度にもよるが、通常は、ポリゴンデータの方が、全体のデータ量を抑制でき、拡大して表示する際にも画像が粗くならないため高画質な地図を提供することができる利点がある。
位置表示としては、例えば経路案内時の現在位置、目的地などのように特定の地点を表すものであってもよいし、経路探索の結果得られた経路のように線状の位置を表すものであってもよい。また、市町村など面状の範囲を表すものであってもよい。
位置表示を行うべき「特定の位置」は、ユーザが指定する位置であってもよいし、ＧＰＳ等の位置検出装置によって検出された位置、経路探索などによって得られた結果などを用いてもよい。
表示すべき範囲（以下、表示範囲という）の指定は、緯度経度の座標他で範囲を直接指定する方法、表示範囲の代表点および拡大縮小の倍率などで指定する方法など種々の方法を採ることができる。ユーザが表示範囲を入力する方法の他、経路案内中の現在位置を入力し、表示範囲入力部が自動的に範囲を設定する方法を採っても良い。
【００１２】
本発明におけるマスク処理の理解を助けるため、マスク処理の処理例を示す。
図２は、マスク処理の処理例（１）を示す説明図である。この例では、地物データＰＩＣ１には、建物Ｂ２１、Ｂ２２および道路ＲＤ２が３次元的に描かれた２次元表示データが格納されている。また建物Ｂ２１、Ｂ２２を投影したマスク画像Ｂ２１Ｍ、Ｂ２２Ｍを記憶したマスクデータＰＩＣ２が用意されている。この状態で、指定された位置に位置表示ＰＰＭを表示する際には、マスク画像Ｂ２１Ｍ、Ｂ２２Ｍと位置表示ＰＰＭとを重畳することによって、地図を表示した際に建物Ｂ２１、Ｂ２２によって位置表示ＰＰＭが隠される遮蔽部分（図中に破線で示した部分）と、隠されない可視形状の部分とを特定することができる。これが本発明におけるマスク処理である。
こうして、マスク処理が完了すると、表示制御部は、地図データＰＩＣ１と、位置表示ＰＰＭとを重畳し、２次元画像データを用いながら、位置表示ＰＰＭと建物Ｂ２１，Ｂ２２との間に奥行き感を持たせた３次元地図ＰＩＣ３を表示することができる。
図２に示したのは、マスク処理の一例であって、本発明におけるマスク処理は、かかる態様に限定されるものではない。
【００１３】
マスク処理において、地物によって遮蔽される部分については、種々の表示方法をとることができる。
例えば、図２で示したように位置表示ＰＰＭのうち建物で遮蔽される部分を破線などの異なる線種で表示するようにしてもよい。また、遮蔽される部分を削除して表示してもよい。
図３は他のマスク処理例を示す説明図である。上図には、位置表示Ｍ１について、建物Ｍ１Ｂで遮蔽される部分を建物Ｍ１Ｂとブレンドし、薄く表示したマスク処理の例を示した。このように、遮蔽される部分は透明度を高めることによって可視形状に比較して薄い表示にしてもよい。
また、位置表示Ｍ１に対して遮蔽された部分の表示用の画像Ｍ２を用意しておき、両者を結合する形でマスク処理を行ってもよい。図３の下側には、可視形状部分に位置表示Ｍ１を用い、遮蔽される部分に画像Ｍ２を用いたマスク処理例を示した。
マスク処理としては、これらの例に限らず可視形状と遮蔽される部分とを区別可能な種々の表示態様を用いることができる。
【００１４】
本発明において、
前記投影方法は、鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影であるものとしてもよい。
透視投影では、投影する基準となる視点ＰＶを定める必要があるため、視点ごとに地物データを用意する必要がある。これに対し、平行投影では、視点を定める必要がないため、地図の表示範囲をどのように指定した場合でも単一の地物データを共通して利用することができる。従って、平行投影を用いることにより、地物データの容量を抑制することができる。また、平行投影では、左右方向、奥行き方向の縮尺が維持されるという特性があるため、地図としての機能を損なわないという利点もある。
【００１５】
また、本発明の３次元地図表示システムにおいては、
前記マスクデータが、地物の種類に応じた異なるマスク画像を表すように複数種類備えられており、
前記表示制御部は、前記特定の位置がいずれの前記マスク画像内に存在するかを判定し、該判定結果に基づいて前記複数種類のマスクデータを使い分けて前記マスク処理を実行するものとしてもよい。
このようにマスクデータを使い分けることにより、他種類の地物との多様な奥行き感を実現することができる。
例えば、建物、高速道路その他の高架道路によってそれぞれマスク画像を用意する方法をとることが可能である。マスクデータの使い分けも種々の方法をとることができ、例えば、複数種類のマスクデータのうち、いずれか一つを選択して使用するようにしてもよいし、複数のマスクデータを併用するようにしてもよい。
【００１６】
本発明の３次元地図表示システムにおいて、
前記地図データベースは、
さらに道路網をノードおよびリンクで表すとともに、各道路の種別を格納したネットワークデータを備えるとともに、
前記マスクデータを地物の種類に応じた異なるマスク画像を表すように複数種類備えており、
前記表示制御部は、前記ネットワークデータに基づいて前記特定の位置がいずれの道路の種別に存在するかを判定し、該判定結果に基づいて前記複数種類のマスクデータを使い分けて前記マスク処理を実行するものとしてもよい。
こうすることにより、道路種別に応じたマスクデータの使い分けができ、より違和感を抑えた表示を実現することができる。道路種別を考慮する例としては、例えば、特定の位置が、一般道路、高速道路その他の高架道路などのいずれに存在するかに応じてマスク処理の方法を切り替える態様をとることができる。
先に、特定の位置がいずれのマスク画像内に存在するかに応じてマスクデータを使い分ける方法を説明したが、これと道路種別との双方を考慮して使い分けるようにしてもよい。こうすることにより、更に柔軟なマスクデータの使い分けを実現することが可能となる。
【００１７】
本発明の３次元地図表示システムにおいて、
前記表示制御部は、前記特定の位置が前記マスク画像内に存在するか否かを判定し、該判定結果に基づいて前記マスクデータに基づいて前記可視形状を特定する特定方法を切り替えるものとしてもよい。
この態様は、マスクデータの使い分けをするかに関わらず適用することができる。特定の位置が、マスク画像内に存在するか否かの判断は、その特定の位置が地物によって遮蔽されるか否かを判断することになる。この判断結果に応じて、可視形状を特定する方法を切り替えれば、ユーザは可視形状を見ることによって、特定の位置が地物によって隠れる場所にあるのか否かを判別することが可能になるとともに、より違和感のない表示を実現することができる。
可視形状を特定する方法の切り替えは、種々の態様をとることができる。例えば、特定の位置がマスク画像内に存在する場合には位置表示全体を対象として可視形状を特定するようにし、そうでない場合は、位置表示の一部を対象として可視形状を特定してもよい。こうすることによって、特定の位置がマスク画像内に存在する場合は、そうでない場合よりも、可視形状が小さくなるから、地物によって遮蔽されている印象が強くなり、ユーザの直感に即した位置表示を実現することができる。
【００１８】
本発明において、上述した各特徴は、必ずしも全てを備えている必要はない。一部のみを備えるようにしてもよいし、適宜、組み合わせて適用してもよい。
また本発明は、上述した３次元地図表示システムとしての態様に限らず、種々の態様で構成することができる。
【００１９】
例えば、本発明は、３次元地図表示システムとしての構成だけでなく、かかる３次元地図表示システムで用いられるマスクデータを生成するマスクデータ生成システムとして構成してもよい。
即ち、
前記地物の３次元形状を表す３次元モデルを記憶する３Ｄ地図データベースと、
前記３Ｄ地図データベースから前記マスクデータの生成対象となる地物を特定するマスク条件設定部と、
前記所定の投影方法によって、前記マスク条件特定部によって特定された地物を平面上に投影して２次元のマスク画像を生成する平行投影部とを備えるマスクデータ生成システムとして構成することもできる。
かかるマスクデータ生成システムによれば、３次元モデルから、特定の地物を対象とするマスクデータを生成することが可能となる。こうして生成されたマスクデータは、本発明の３次元地図表示システムで利用可能である。
マスクデータ生成システムでは、マスク条件特定部において、マスク画像を生成する対象となる地物を複数設定することにより、地物の種類に応じた複数種類のマスクデータを生成可能としてもよい。
【００２０】
本発明は、その他、コンピュータによって３次元地図を表示する３次元地図表示方法として構成してもよいし、かかる３次元地図表示システムで用いられるマスクデータを生成するためのデータ生成方法として構成してもよい。かかる表示やデータ生成をコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。
また、かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【図面の簡単な説明】
【００２１】
【図１】透視投影による３次元地図の表示例を示す説明図である。
【図２】マスク処理の処理例（１）を示す説明図である。
【図３】マスク処理の処理例（２）を示す説明図である。
【図４】３次元地図表示システムの構成を示す説明図である。
【図５】地物データの内容を示す説明図である。
【図６】地物データのデータ構造を示す説明図である。
【図７】平行投影の投影方位を示す説明図である。
【図８】３次元地図の表示例を示す説明図である。
【図９】マスク画像例を示す説明図である。
【図１０】誘導線の設定例を示す説明図である。
【図１１】誘導マスク例を示す説明図である。
【図１２】平行投影データ生成処理のフローチャート（１）である。
【図１３】平行投影データ生成処理のフローチャート（２）である。
【図１４】地図表示処理のフローチャートである。
【図１５】経路案内処理のフローチャートである。
【図１６】アンジュレーションによる影響を示す説明図である。
【図１７】アンジュレーションを考慮した座標変換方法を示す説明図である。
【図１８】座標変換処理のフローチャートである。
【図１９】マスク処理例（１）を示す説明図である。
【図２０】マスク処理例（２）を示す説明図である。
【図２１】マスク処理例（３）を示す説明図である。
【図２２】マスク処理例（４）を示す説明図である。
【図２３】レイヤ制御の内容を示す説明図である。
【図２４】現在位置表示処理のフローチャート（１）である。
【図２５】現在位置表示処理のフローチャート（２）である。
【発明を実施するための形態】
【００２２】
本発明の実施例について以下の順序で説明する。
Ａ．装置構成
Ｂ．地物データ構造
Ｂ１．平行投影によるデータ
Ｂ２．複数の投影方位
Ｃ．マスクデータ
Ｄ．平行投影データ生成処理
Ｅ．地図表示処理
Ｆ．経路案内処理
Ｆ１．全体の処理
Ｆ２．座標変換
Ｆ３．現在位置表示処理
【実施例１】
【００２３】
Ａ．装置構成：
図４は、実施例における３次元地図表示システムの構成を示す説明図である。サーバ２００からネットワークＮＥ２等を介して提供される地図データに基づいて、ナビゲーション装置３００に地図を表示する構成例を示した。地図を表示する端末としては、パーソナルコンピュータ、携帯端末などを用いてもよい。また、３次元地図表示システムは、ナビゲーション装置３００のような端末とサーバ２００とからなるシステムの他、スタンドアロンで稼働するシステムとして構成してもよい。
図中には、３次元地図データを生成するデータ生成装置１００も併せて示した。
【００２４】
ナビゲーション装置３００には、主制御部３０４の下で稼働する種々の機能ブロックが構成されている。本実施例では、主制御部３０４および各機能ブロックは、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
送受信部３０１は、サーバ２００とのネットワークＮＥ２を介した通信を行う。本実施例では、３次元地図を表示するための地図データおよびコマンドの送受信が主として行われる。
コマンド入力部３０２は、ユーザによる操作等を通じて指示を入力する。本実施例における指示としては、３次元地図の表示範囲、拡大・縮小の指定、経路案内を行う際の出発地、目的地の設定などが揚げられる。
ＧＰＳ入力部３０３は、ＧＰＳ（Global Positioning System）の信号に基づいて緯度経度の座標値を得る。また、経路案内では、緯度経度の変化に基づいて進行方向を算出する。
地図情報記憶部３０５は、サーバ２００から提供された地図データを一時的に記憶しておくバッファである。経路案内時のように表示すべき地図が時々刻々と移動していく場合、地図情報記憶部３０５では不足する範囲の地図データをサーバ２００から受信して地図を表示する。
マップマッチング変換部３０７は、経路案内をする場合に、探索された経路および現在位置を、平行投影された３次元地図上の道路上にずれなく表示するため、経路位置および現在位置の座標値に対して必要な座標変換を施す。座標変換の方法については後述する。
表示制御部３０６は、地図情報記憶部３０５およびマップマッチング変換部３０７から提供されるデータに基づいて、ナビゲーション装置３００のディスプレイ３００ｄに３次元地図を表示する。
表示制御部３０６には、マスク制御部３０６Ａが備えられている。マスク制御部３０６Ａは、３次元地図内に車両の現在位置などを表示する際に、地物等によって遮蔽されずに見える部分（以下、「可視形状」という）を特定するマスク処理を行う。
【００２５】
サーバ２００には、図示する機能ブロックが構成されている。本実施例では、これらの機能ブロックは、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
地図データベース２１０は、３次元地図を表示するためのデータベースである。本実施例では、地物データ２１１、文字データ２１２、ネットワークデータ２１３、マスクデータ２１４を含む地図データを格納する。地物データ２１１は、道路、建物などの地物を３次元的に表示するためのデータであり、地物の３次元モデルを平行投影することで得られた２次元のポリゴンデータである。文字データ２１２は、地図に表示すべき文字、例えば、地物の名称や地名などのデータである。ネットワークデータ２１３は、道路をノード、リンクの集まりで表現したデータである。ノードとは、道路同士の交点や道路の端点に相当するデータである。リンクはノードとノードとを結ぶ線分であり、道路に相当するデータである。本実施例では、ネットワークデータ２１３を構成するノード、リンクの位置は、緯度経度および高さの３次元データで定められている。マスクデータ２１４は、マスク処理に用いる２次元のポリゴンデータである。
送受信部２０１は、ネットワークＮＥ２を介してナビゲーション装置３００とのデータの送受信を行う。本実施例では、３次元地図を表示するための地図データおよびコマンドの送受信が主として行われる。また、送受信部２０１は、ネットワークＮＥ１を介してデータ生成装置１００との通信も行う。本実施例では、生成された地図データの授受が主として行われる。
データベース管理部２０２は、地図データベース２１０からのデータの読み出し、書き込みを制御する。
経路探索部２０３は、地図データベース２１０内のネットワークデータ２１３を用いて、経路探索を行う。経路探索には、ダイクストラ法などを用いることができる。
【００２６】
データ生成装置１００には、図示する機能ブロックが構成されている。本実施例では、これらの機能ブロックは、パーソナルコンピュータに、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
送受信部１０５は、ネットワークＮＥ１を介してサーバ２００とデータの授受を行う。
コマンド入力部１０１は、キーボード等を介してオペレータの指示を入力する。本実施例では、地図データを生成すべき領域の指定、平行投影パラメータ、マスクデータを生成する際の条件の指定等が含まれる。
３Ｄ地図データベース１１０は、地図データを生成するために用いられる３次元モデルからなる３Ｄ地図データ１１１、およびネットワークデータ１１２を格納するデータベースである。道路、建物などの地物については、３次元形状を表す電子データが格納されている。３Ｄ地図データ１１１としては、従来、透視投影によって３次元地図を表示するために備えられる３次元モデルを利用することができる。ネットワークデータ１１２は、サーバ２００に格納されるネットワークデータ２１３と共通とすることができる。
平行投影部１０２は、３Ｄ地図データベース１１０における３Ｄ地図データ１１１を用いて平行投影による表示を行って２次元画像としての地物データを生成する。表示された投影図は、平行投影データ１０３に格納され、送受信部１０５を介してサーバ２００の地図データベース２１０の地物データ２１１に格納される。
平行投影部１０２は、マスクデータ２１４の生成も行う。地物データ２１１を生成する際には、３Ｄ地図データ１１１に格納されている地物全体を対象とする平行投影が行われるが、マスクデータ２１４を生成する際には、特定の地物のみを対象として平行投影が行われる。マスク条件設定部１０６は、このマスクデータ２１４を生成する際に用いられるべき地物を特定する。地物を特定するための条件の設定については、後述する。
【００２７】
Ｂ．地物データ構造：
Ｂ１．平行投影によるデータ：
図５は、地物データの内容を示す説明図である。３次元データＤ３から平行投影によって２次元画像データＤ１、Ｄ２が得られる様子を示している。３次元データＤ３は、平面Ｐ３上に、建物Ｍ３の形状をｘ、ｙ、ｚの３次元座標で表したデータである。
この建物Ｍ３を鉛直方向（図中の矢印Ａ１方向）に平面Ｐ１上に平行投影すると、建物Ｍ３が長方形Ｍ１のように２次元的に表現された２次元画像データＤ１となる。これは、従来の２次元地図データに相当する。
これに対し、本実施例では、鉛直方向に対して所定の投影角度だけ傾けた斜め方向（図中の矢印Ａ２方向）の平面Ｐ２上に平行投影する。この結果、２次元画像データＤ２上には、建物Ｍ２のように３次元的に建物が表示される。建物Ｍ２は３次元的に表現されてはいるものの、２次元画像データＤ２は、あくまでも投影された２次元の表示データである。本実施例では、投影面内のｕｖ座標内の座標値（ｕ１、ｖ１）、（ｕ２、ｖ２）などの点列で、建物Ｍ２を表示するためのポリゴンデータを規定した。建物Ｍ２の側壁、屋根部分で個別のポリゴンデータとしてもよいし、全体を一つのポリゴンデータとしてもよい。窓Ｗは、建物の壁面に貼り付けるテクスチャ、つまりラスタデータとして用意してもよいし、窓を個別のポリゴンデータとして用意してもよい。
本実施例の地物データは、このように斜め方向の平行投影によって各地物を投影した２次元データによって構成されている。マスクデータも同様の平行投影によって生成された２次元画像データである。
【００２８】
図６は、地物データのデータ構造を示す説明図である。一つの建物ＢＬ０１を例にとって、データ構造を説明する。
図の左側には、この建物ＢＬ０１の位置関係を２次元的に示した。地図データは、メッシュＭ０１、Ｍ０２に区切って整備されている。左下の緯度経度がＰ０１（ＬＡＴ０１、ＬＯＮ０１）で表されるメッシュＭ０１内の矩形が建物ＢＬ０１である。建物ＢＬ０１の緯度経度は座標Ｇ（ＬＡＴｂ、Ｌ０Ｎｂ）で表される。ここでは、建物ＢＬ０１はメッシュＭ０１からはみ出していない場合を例示した。
【００２９】
この位置に存在する建物ＢＬ０１を平行投影すると（矢印ＣＨ０１）、メッシュＭ０３、Ｍ０４に示すように建物ＢＬ０１は３次元的に表示される。本実施例では、メッシュＭ０３の左下の緯度経度Ｐ０２（ＬＡＴ０２、ＬＯＮ０２）は、メッシュＭ０１のＰ０１と一致している。本実施例では、このようにメッシュＭ０３、Ｍ０４は、各頂点の緯度経度が、平面上のメッシュＭ０１、Ｍ０２の頂点の緯度経度と一致するように定義した。もっとも、投影面におけるメッシュＭ０３、Ｍ０４は、平面におけるメッシュＭ０１、Ｍ０２と無関係に設定することも可能である。
平行投影の結果、建物ＢＬ０１は、メッシュＭ０３内の部分ＢＬ０３だけでなく、メッシュＭ０４内の部分ＢＬ０４によって描かれる。本実施例では、矢印ＣＨ０３、ＣＨ０４に示すように、一つの建物ＢＬ０１を表示するポリゴンのうち、メッシュＭ０３に属する部分ＢＬ０３と、メッシュＭ０４に属する部分ＢＬ０４とを分離し、それぞれ別個のポリゴンデータとして管理する。
【００３０】
図の右側に、それぞれのポリゴンデータの構造を例示した。各ポリゴンに対するデータには、名称、位置、形状、種別、文字、属性等が格納される。
本実施例では、名称としては、建物の名称ＢＬ０１を用いた。メッシュＭ０３に属する部分ＢＬ０３、およびＭ０４に属する部分ＢＬ０４には、共通の名称が付されることになるので、両者が同一の建物に対するポリゴンであることが判別可能となる。名称としてポリゴンに固有の名称を用いることもできる。この場合には、同一の建物に対するポリゴン同士を関連づける情報を別途用意しておくことが好ましい。
【００３１】
位置は、建物ＢＬ０１が存在する緯度経度の座標（ＬＡＴｂ、Ｌ０Ｎｂ）である。形状は、各メッシュ内で定義される相対的な２次元座標ｕｖで、ポリゴンを形成する点列を規定するデータである。部分ＢＬ０３に対する形状データのＰｂ１（ｕ１、ｖ１）、Ｐｂ２（ｕ２、ｖ２）等のデータは、頂点Ｐｂ１、Ｐｂ２の位置を、メッシュＭ０３内のｕｖ座標で表した値である。部分ＢＬ０４に対する形状データのＰｂ３（ｕ３、ｖ３）、Ｐｂ４（ｕ４、ｖ４）等のデータは、頂点Ｐｂ３、Ｐｂ４の位置を、メッシュＭ０４内のｕｖ座標で表した値である。
【００３２】
種別には、ポリゴンが表す地物の種類を格納する。文字は、地物の名称を示すデータであるが、本実施例では、文字データは地物データとは別に用意しているため、地物データには文字データの格納先を示すデータ（図中のＬＩＮＫ）を格納するものとした。格納先を表すデータとしては、建物ＢＬ０１に対する文字データに対するパス、アドレス、ＵＲＬ（Uniform Resource Locator）などを用いることができる。
属性は、地物に対する付加情報である。例えば、建物であれば高さ、階数；道路であれば車線幅、国道等の種別などを用いることができる。
【００３３】
図６には、地物データの構成例を示したが、マスクデータも同様のデータ構造で構成することができる。後述する通り、マスクデータは、現在位置の表示等を行う際に、地物によって遮蔽されない可視形状と、遮蔽される遮蔽部分とを特定するために用いられるものであって、地図表示自体に用いられるものではないから、建物ＢＬ０１を構成する各面を個別のポリゴンとして格納する必要はない。従って、建物ＢＬ０１を平行投影した状態（メッシュＭ０３、Ｍ０４に示した状態）を単色で塗りつぶした全体形状をマスクデータとして格納する方法をとることができる。こうすることによって、マスクデータの容量を抑制することができる。
なお、別の態様として、マスクデータを地物データと共通のデータとして構成してもよい。つまり、地物データに格納される各ポリゴンに対して、マスクデータとして用いるか否かを示すフラグを付す方法をとってもよい。こうすることで、地物データおよびマスクデータを合わせた全体のデータ容量を抑制することができる利点がある。
【００３４】
本実施例では、地物データは、現実の建物をそのまま平行投影するのではなく、高さ方向にのみ１よりも大きい係数を乗じた上で平行投影した。ユーザは通常、建物を下方から見上げることが多い。従って、上方から見る形で平行投影を施すと、投影図から得られる建物の高さ感覚は、現実に見上げた時の高さ感覚に合わないことがある。これに対し、上述のように、高さ方向にのみ拡大した仮想的な建物に対して平行投影を施せば、高さ感覚の違和感を緩和することができる。高さ方向に乗ずる係数は、視覚的な効果を考慮して任意に設定可能である。
【００３５】
Ｂ２．複数の投影方位：
平行投影パラメータは、投影角度と投影方位である。投影角度は、鉛直からどれだけ傾けた方向に投影するかを表すパラメータである。投影方位は、いずれの方位に傾けるかを表すパラメータである。地物データは、単一の投影方位に対して用意することもできるが、本実施例では、複数の方位に対して用意している。
【００３６】
図７は、平行投影の投影方位を示す説明図である。図示する通り、本実施例では、一つの領域ＡＲに対して、方位を４５度ずつずらして方位１〜方位８の８方位について、それぞれ平行投影を行い、地物データを生成した。例えば、方位１では北側から見た状態で平行投影した投影図が得られ、方位５では南側から見た状態で平行投影した投影図が得られる。方位１で死角になっていた建物でも、逆方向の方位５では死角にならず表示されることになる。多方位で地物データを用意しておけば、このように死角が生じた場合でも、その死角の地理は他の方位の地図で確認可能であるため、３次元的に表示することによって死角が生じることによる支障を緩和することができる。
本実施例では、８方位の地物データを用意したが、４方位としてもよいし、１６方位またはそれ以上としてもよい。本発明者が検討した結果によれば、１６方位で地物データを用意し、各方位の投影図を順次切り替えていけば、あたかも領域ＡＲの周りを周回しながら、領域ＡＲを見ているかのような表示を違和感なく実現することができることが分かっている。かかる観点からは、地物データは１６方位に対して用意することが好ましいとも言える。
マスクデータも地物データと同様の方位に対して用意されている。
【００３７】
Ｃ．マスクデータ：
以下、本実施例におけるマスクデータについて例示する。本実施例では、複数種類の地物に分けてマスク画像が用意されている。本実施例では、各地物に対して用意されたマスク画像を、レイヤと呼び、マスク画像が複数種類用意されていることをレイヤ構造と呼ぶこともある。
図８は、３次元地図の表示例を示す説明図である。３次元地図データを平行投影して描いた表示例を示した。この例では、ビルＢＬ１〜ＢＬ４、一般道路ＲＤ、高速道路ＨＷ１、ＨＷ２が描かれている。道路ＲＤ、高速道路ＨＷ１は、部分的にビルＢＬ１、ＢＬ３によって遮蔽されている。
図９は、マスク画像例を示す説明図である。図８に対応したマスク画像例を示した。図８に示した地物のうち、ビルＢＬ１〜ＢＬ４および高速道路ＨＷ１、ＨＷ２は、一般道路ＲＤ上を走行中に車両の現在位置を遮蔽する可能性がある地物である。本実施例では、このように車両の現在位置を遮蔽する可能性がある地物を抽出し、これらを対象として平行投影することによってマスク画像を生成している。マスク画像は、ビルＢＬ１〜ＢＬ４および高速道路ＨＷ１、ＨＷ２を区別せずに生成することも可能であるが、本実施例では、より違和感のない表示を実現するため、両者を区別してマスク画像を生成した。
図９で、ハッチングの種類を分けて示してある部分は、以下に示す通り、それぞれ別種類のマスク画像として生成されていることを表している。
図９に示すＢＬ１〜ＢＬ４およびこれと同種類のハッチングが施された画像は、所定以上の高さを有するビルのみを３次元地図データから抽出し、平行投影することによって得られたマスク画像である。マスク画像は、このようにビルを平行投影した上で、単色で塗りつぶしたシルエット状の画像として用意されている。
図９中のＨＷ１、ＨＷ２は同様に、高速道路に対応したマスク画像である（以下、高速道路レイヤと呼ぶこともある）。ビルに対応するマスク画像とは別のマスク画像として保管されている。また、図９中のＨＷ３は、高速道路のうち、いずれかのビルによって遮蔽されている部分を示すマスク画像（以下、非表示高速道路レイヤと呼ぶこともある）である。他のビルによって遮蔽されるか否かに関わらず高速道路全体を一つのマスク画像として用意してもよい。
【００３８】
本実施例では、地物だけでなく、誘導線によって生成されるマスク画像も用意している。誘導線とは、道路ネットワークを平行投影した画像に相当し、経路案内時に現在位置や経路を表示するために用いられる画像である。
図１０は、誘導線の設定例を示す説明図である。図示する通り、道路ＲＤ上に誘導線ＮＷ３が設定され、高速道路ＨＷ１上にも誘導線ＮＷ１、ＮＷ２が設定されている。誘導線ＮＷ２は、ビルＢＬ１によって遮蔽される部分を表している。同様に、他の一般道や高速道路ＨＷ２等にも誘導線が設定されているが、図の煩雑化を回避するため、図示を省略した。
図１１は、誘導マスク例を示す説明図である。図１０で示した誘導線のみを平行投影することで得られる画像である。本実施例では、誘導線については、一般道と高速道路とを区別せずに用意するものとした。ただし、誘導マスクＮＷ３、ＮＷ１のようにビル等の地物によって遮蔽されていない部分（以下、誘導マスクと呼ぶこともある）と、誘導マスクＮＷ２のように遮蔽される部分（以下、非表示誘導マスクと呼ぶこともある）とを区別して用意している。
かかる構造とすることにより、現在位置が地物によって遮蔽される位置であるか否かを容易に判断することができ、これによって現在位置の表示態様を切り替えることが可能となる。
【００３９】
Ｄ．平行投影データ生成処理：
次に、２次元画像データとしての地物データおよびマスクデータの生成処理について説明する。図１２、図１３は平行投影データ生成処理のフローチャートである。これは、データ生成装置１００の平行投影部１０２およびマスク条件設定部１０６（図４参照）が実行する処理であり、ハードウェア的には、データ生成装置１００のＣＰＵが実行する処理である。
処理を開始すると、データ生成装置１００は、データを生成する対象となる対象メッシュおよび平行投影パラメータ、即ち投影方位および投影角度を入力する（ステップＳ１００）。これらの条件は、ユーザが入力するものとしてもよいし、予め設定しておいてもよい。
【００４０】
以下に示す処理は、４回繰り返し実行される。１回目は地物データ、２回目は高速道路のマスクデータ、３回目は建物のマスクデータ、４回目は誘導マスクを生成するための処理である。
データ生成装置１００は、ステップＳ１００で指定された対象メッシュおよびその周辺所定範囲のメッシュから、処理回数に応じた内容の３Ｄ地図データまたはネットワークデータを読み込む（ステップＳ１０１）。図中に示した通り、１回目は地図データ、２回目は高速道路の３Ｄ地図データ、３回目は３Ｄ地図データのうち高速道路を除く建物の高さＴｈ以上の部分、４回目はネットワークデータを読み込む。２〜４回目は、それぞれマスクデータの生成が目的であるから、各データは単色化、即ち全ポリゴンを単色で塗りつぶした状態で読み込むものとした。
３回目に読み込むべき建物の高さＴｈは任意に設定可能である。高さＴｈを小さい値にすれば、現在位置を遮蔽する可能性のない地物などがマスク画像の対象となり、かえってマスク処理が適切に行われなくなるおそれがある。高さＴｈを大きくすれば、現在位置を遮蔽する可能性のある地物がマスク画像の対象から漏れる可能性がある。高さＴｈは、両者を考慮に入れながら設定することが好ましい。対象メッシュが都市部か否かなど、建物の数や密度に応じて高さＴｈを変えても良い。
対象メッシュの周辺からもデータを読み込むのは、図６のメッシュＭ０３、Ｍ０４に示したように、平行投影で地物データを生成する場合、処理対象となるメッシュに対しては、そのメッシュ内に存在しない地物の一部が投影されることもあるからである。対象メッシュの周辺からもデータを読み込み、これらを合わせて平行投影することにより、他のメッシュに存在する地物も含む地物データを得ることが可能となる。
【００４１】
こうして処理回数に応じたデータの読み込みが完了すると、データ生成装置１００は、これらを平行投影パラメータに基づいて平行投影し、２次元画像を生成する（ステップＳ１０２）。そして、平行投影で生成されたポリゴンデータから、対象メッシュに相当する領域を切り出し（ステップＳ１０３）、平行投影データをデータベースに格納する（ステップＳ１０４）。データ生成装置１００は、ステップＳ１０１〜Ｓ１０４の処理を４回繰り返し実行する（ステップＳ１０５）。
これらの処理により、１回目は地物データが生成される。２〜４回目はそれぞれマスクデータが生成される。２回目は高速道路レイヤ基本データ、即ち建物等によって遮蔽される部分とそうでない部分とを区別していない状態での高速道路のマスクデータが生成される。３回目は、建物レイヤ、即ち建物を対象とするマスクデータが生成される。４回目は、誘導マスク基本データ、即ち建物等によって遮蔽される部分とそうでない部分とを区別していない状態での誘導線のマスクデータが生成される。
【００４２】
次に、データ生成装置１００は、対象メッシュ内において、高速道路レイヤ基本データおよび建物レイヤのいずれにも属さない部分の形状を表す部分のポリゴンを、地表レイヤとする（ステップＳ１０６）。
また、データ生成装置１００は、高速道路レイヤ基本データに建物レイヤを重ね合わせることによって、建物に遮蔽されない表示部分と、遮蔽される非表示部分に分ける（ステップＳ１０７）。図中に、この処理の例を示した。この図は、ポリゴンＡ１〜Ａ３に相当する部分からなる高速道路基本レイヤに、建物レイヤを重ねた状態を表している。建物レイヤ内に属するポリゴンＡ２の部分は、平行投影した場合、高速道路のうち建物によって遮蔽される部分であることになる。従って、この部分は、非表示高架道路レイヤとなる。ポリゴンＡ１、Ａ３の部分は、平行投影しても建物に遮蔽されない部分である。従って、ポリゴンＡ１、Ａ３は高速道路レイヤとなる。
【００４３】
データ生成装置１００は、同様に、誘導マスク基本データに建物レイヤを重ね合わせて表示部分と非表示部分とに分ける（ステップＳ１０８）。誘導マスク基本データのうち、建物レイヤと重なる部分は、建物によって遮蔽される部分であることになるから、非表示誘導マスクとなる。その他の部分は、建物によって遮蔽されない部分となるから、誘導マスクとなる。
以上の処理を終えると、データ生成装置１００は、生成されたデータを地物データおよびマスクデータとしてデータベースに格納する（ステップＳ１０９）。
以上の処理を全メッシュについて実行することによって、本実施例の地物データ２１１を整備することができる。
【００４４】
Ｅ．地図表示処理：
図１４は、地図表示処理のフローチャートである。本実施例では、ナビゲーション装置３００の主制御部３０４および表示制御部３０６が実行する処理であり、ハードウェア的にはナビゲーション装置３００のＣＰＵが実行する処理である。
【００４５】
この処理では、まずＣＰＵは、表示位置、方位、範囲の指定を入力する（ステップＳ３００）。ユーザがキーボード等でこれらを指定するものとしてもよいし、ＧＰＳで得られる現在位置を表示位置として用いるものとしてもよい。
ＣＰＵは、従前の地図表示処理において既に取得しナビゲーション装置３００内に保持されている地図情報から、指定に対応する地図情報を抽出する（ステップＳ３０１）。地図情報とは、地物データ、文字データ、ネットワークデータ、マスクデータなど、地図を表示するために必要となる種々のデータの総称である。
図に抽出の様子を示した。メッシュで区切られた地図情報ＭＥのうち、ハッチングを付した部分が既にナビゲーション装置３００に保持されている地図情報である。領域ＩＡは、ユーザからの指定に対応する範囲を表している。この例では、保持されている地図情報のうち領域ＩＡに重なる部分、つまりメッシュＭＥ３、ＭＥ４を除く部分が抽出されることになる。
領域ＩＡと重複しないメッシュＭＥ３、ＭＥ４については、不要な情報として消去してもよいし、ナビゲーション装置３００のメモリが許容する限り、残しておくようにしてもよい。
【００４６】
ＣＰＵは、抽出した地図情報では、地図を表示するのに不足する場合には（ステップＳ３０２）、サーバ２００から不足部分の地図情報を取得する（ステップＳ３０３）。上述の例では、領域ＩＡを表示するためには、メッシュＭＥ１、ＭＥ２が不足しているから、これらの地図情報が取得されることになる。
【００４７】
こうして地図情報を取得し終えると、ＣＰＵは地物を表示する（ステップＳ３０４）。本実施例では、地物データは既に平行投影された後の２次元のポリゴンデータに過ぎないから、取得した地物データに従ってポリゴンを表示すれば３次元地図を表示することができる。
従来は３次元モデルを用いて、レンダリングと呼ばれる処理を行って透視投影図を作成し、３次元地図を表示していたため、レンダリングに要する処理負荷が非常に大きかったのに対し、本実施例では、非常に軽い負荷で３次元地図を表示可能となる大きな利点がある。
本実施例では、車両の現在位置を表示する際に、マスク処理を行って地物との奥行き感を実現することができる。このマスク処理については、次の経路案内処理の中で説明する。
【００４８】
Ｆ．経路案内処理：
Ｆ１．全体の処理：
図１５は、経路案内処理のフローチャートである。左側にナビゲーション装置３００の処理を示し、右側にサーバ２００の処理を示した。これらは、図４に示した種々の機能ブロックが協同して実行する処理であり、ハードウェア的には、ナビゲーション装置３００およびサーバ２００のＣＰＵが実行する処理である。
【００４９】
まず、ナビゲーション装置３００のユーザが、経路探索の出発地、目的地を指定する（ステップＳ２１０）。出発地は、ＧＰＳで取得される現在位置を用いてもよい。目的地は、地物名称、住所、緯度経度の座標値など種々の方法で設定可能である。ナビゲーション装置３００は、これらの指定結果をサーバ２００に送信する。
サーバ２００は、出発地、目的地の指定を入力すると（ステップＳ２００）、ネットワークデータ２１３（図４参照）を用いて経路探索を行う（ステップＳ２０１）。経路探索は、例えば、ダイクストラ法等を用いることができる。サーバ２００は探索結果、即ち経路となるべきネットワークデータをナビゲーション装置３００に出力する(ステップＳ２０２)。
経路探索処理は、必ずしもサーバ２００で行う必要はなく、ナビゲーション装置３００にネットワークデータを格納しておき、スタンドアロンで経路探索可能な構成としてもよい。
【００５０】
ナビゲーション装置３００は、探索結果を受信すると（ステップＳ２１１）、以下の手順で経路案内を行う。
まず、ナビゲーション装置３００は、ユーザの現在位置、進行方向を入力する（ステップＳ２２０）。現在位置は、ＧＰＳによって特定できる。進行方向は、従前の位置から現在位置までの変化に基づいて求めることができる。
次に、ナビゲーション装置３００は表示範囲決定処理を行う（ステップＳ２２０）。この処理は、現在位置、進行方向に基づいて地図の表示範囲を決定する処理であり（ステップＳ２２０）、次に示す手順で行うことができる。
ナビゲーション装置３００は、まず進行方向に基づいて、地図の方位を決定する。本実施例では８方位に対して地物データが用意されているため、使用すべき方位を、進行方向に応じて選択するのである。各方位には、破線で示すように、それぞれ４５度の角度領域を割り当てておき、ナビゲーション装置３００は、これらの８つの角度領域から進行方向が含まれるものを選択するようにすればよい。角度領域は地物データが用意されている方位数に応じて決めることができる。１６方位の地物データが用意されている場合には２２．５度とすればよいし、４方位の場合には９０度とすればよい。
【００５１】
次に、ナビゲーション装置３００は、座標変換処理を行う（ステップＳ２３０）。
本実施例では、経路を表すネットワークデータおよび現在位置は、高さを含む３次元の位置座標で規定されている。また道路も、いわゆるアンジュレーション、つまり地表面の高さ変化を反映するため、高さ情報を有する３Ｄデータを平行投影することで生成されている。従って、ネットワークデータを平行投影と同じ方法で投影した上で地図上に表示しないと、経路が道路からずれて表示されてしまう。
そこで、本実施例では、経路を道路上に適切に表示するため、現在位置およびネットワークデータに対して平行投影を施して表示位置を得る処理を行う。これが、座標変換処理（ステップＳ２３０）である。座標変換の処理方法については後述する。
【００５２】
以上の処理が完了すると、ナビゲーション装置３００は、指定された表示範囲に従って地図表示処理を実行する（ステップＳ３００）。この処理内容は、先に図１４で示した処理と同じである。
次に、ナビゲーション装置３００は、現在位置を表示する（ステップＳ３１０）。現在位置の他に経路探索で得られた経路を表示してもよい。経路は、道路とは異なる色、線などで示してもよいし、進行すべき方向や曲がり角などに、矢印その他を表示してもよい。
ナビゲーション装置３００は、ユーザが目的地に到着するまで（ステップＳ３１１）、ステップＳ２２０以降の処理を繰り返し実行し、経路案内を行う。
【００５３】
Ｆ２．座標変換：
図１６は、アンジュレーションによる影響を示す説明図である。
図中の面Ａ２Ｄは２次元地図における地表を表し、面Ａ３Ｄは３次元地図における地表を表している。右側に示す通り、本実施例におけるネットワークデータ２１３、および地物データの生成に用いられる３Ｄ地図データベース１１０は、面Ａ３Ｄに相当する３次元の情報を有するデータである。２次元平面Ａ２Ｄ内のメッシュＭ２Ｄに対応する範囲は、起伏のあるメッシュＭ３Ｄに対応する。
面Ａｐは平行投影による投影図を示している。矢印Ｖｐｊで示す方向に投影するため、２次元平面Ａ２Ｄ内のメッシュＭ２Ｄに対応する範囲は、やや斜めにずれた位置のメッシュＭＰ２となる。
一番下に示した面Ａｇは、ＧＰＳで得られた緯度経度の座標面である。
【００５４】
本実施例では、現在位置は、点Ｐ３Ｄ（ｘ、ｙ、ｚ）のように３次元の位置座標で与えられる。この座標は、２次元的には位置Ｃｐｇ（緯度、経度）に対応し、２次元地図が表示される面Ａ２Ｄでは、メッシュＭ２Ｄ内の点Ｐ２Ｄ（Ｘ、Ｙ）に相当する。
点Ｐ３Ｄを平行投影すれば、面Ａｐ上のメッシュＭｐ２内の点Ｐｐ２に表示される。これに対し、点Ｐ３Ｄの３次元座標のうち、２次元の要素（Ｘ、Ｙ）を、平行投影が施された座標値であると想定すると、面Ａｐ内では、本来のメッシュＭｐ２とは異なるメッシュＭｐ１内の点Ｐｐ１に表示されてしまう。本来の点Ｐｐ２との誤差Ｖｃが生じてしまうのである。
そこで、本実施例では、面Ａｐ内で点Ｐ３Ｄに対して、誤差Ｖｃ分の移動に相当する座標変換を施すことにより、点Ｐ３Ｄを平行投影した状態での表示を実現した。
【００５５】
図１７は、アンジュレーションを考慮した座標変換方法を示す説明図である。図１６で示した誤差Ｖｃに相応するベクトルを求め、これを補正量として座標変換を行う。この意味で、以下、誤差Ｖｃを補正ベクトルＶｃとも呼ぶ。
図中の矢印Ｖｐｊは平行投影の方向を示している。点Ｐ３Ｄは、この平行投影によって点Ｐｐ２に投影されるべきものとする。
点Ｐ３ＤのＸ、Ｙ座標のみを用いて投影した結果は点Ｐｐ１であるから、誤差Ｖｃは、点Ｐｐ１から点Ｐｐ２に向かうベクトルとなり、図中のベクトルＶｃに等しくなる。
【００５６】
補正ベクトルＶｃは、回転および平行移動を組み合わせたアフィン変換行列によって求めることができる。
点Ｐ３Ｄの高さを保持したまま、−Ｘ方向に平行移動するベクトルＶｃ０に相当する変換行列を求める。投影角度Ａｐを用いれば、ベクトルＶｃ０の大きさは、点Ｐ３Ｄの高さｚとｔａｎ（Ａｐ）の積で表されるから、ベクトルＶｃ０（Ｖｃ０ｘ、Ｖｃ０ｙ、Ｖｃ０ｚ）は、次の通り表される。
Ｖｃ０ｘ＝−ｚ×ｔａｎ（Ａｐ）；
Ｖｃ０ｙ＝０；
Ｖｃ０ｚ＝０；
【００５７】
補正ベクトルＶｃは、ベクトルＶｃ０をｚ軸回りに投影方位（−Ａｙ）だけ回転すればよい。従って、補正ベクトルＶｃ（Ｖｃｘ、Ｖｃｙ、Ｖｃｚ）は、次の通り表される。
Ｖｃｘ＝−ｚ×ｔａｎ（Ａｐ）×ｃｏｓ（Ａｙ）；
Ｖｃｙ＝  ｚ×ｔａｎ（Ａｐ）×ｓｉｎ（Ａｙ）；
Ｖｃｚ＝０；
従って、Ｐ３Ｄを鉛直に投影した点Ｐｐ１に対して、上述の補正ベクトルＶｃを適用すれば点Ｐｐ２を求めることができる。補正ベクトルＶｃは、実質的には（Ｖｃｘ、Ｖｃｙ）の２次元ベクトルであるから、平行投影の投影面内で補正が可能である。
【００５８】
上述の補正ベクトルＶｃは、ｙ軸を北、ｘ軸を東、ｚ軸を高さ方向に定義し、北を０度として東、南、西、北の向きの角度で投影方位を表すものとした場合の値である。ｘ、ｙ、ｚおよび投影方位の定義に応じて、それぞれ適した変換式を用いる必要がある。
【００５９】
図１８は、座標変換処理のフローチャートである。図１５のステップＳ２３０に相当する処理であり、ナビゲーション装置３００のマップマッチング変換部３０７（図４参照）が実行する処理である。
処理を開始すると、ナビゲーション装置３００は、平行投影パラメータＡｐ（投影角度）、Ａｙ（投影方位）を入力する（ステップＳ３０１）。そして、平行投影パラメータに基づいて座標変換行列を生成する（ステップＳ３０２）。行列の内容は、図１７で説明した通りである。
【００６０】
次に、ナビゲーション装置３００は、現在位置および表示範囲内のネットワークデータを入力し（ステップＳ３０３）、現在位置の座標変換を施す（ステップＳ３０４）。また、ネットワークデータの座標変換を全ネットワークについて実行する（ステップＳ３０５、Ｓ３０６）。ネットワークの座標変換を現在位置の座標変換に先だって行ってもよいし、両者を並行して行ってもよい。
こうして現在位置およびネットワークデータの座標変換を終えると、ナビゲーション装置３００は座標変換処理を終了する。この変換結果を用いて、地図表示が行われる（図１５のステップＳ３１０参照）。
【００６１】
Ｆ３．現在位置表示処理：
次に、地図内に車両の現在位置を表示する処理について説明する。本実施例では、建物等の地物で遮蔽される遮蔽部分と、そうでない可視形状とで位置の表示態様を変えるマスク処理を施すことで、建物等との奥行き感をもたせた表示を行うことができる。以下では、まずマスク処理の処理例を示した上で、現在位置表示処理のフローチャートを示す。
【００６２】
図１９〜図２１は、マスク処理例を示す説明図である。
図１９（ａ）には、建物ＢＬＤ１９ａによって、現在位置を示す位置表示ＰＰＭ１９ａの一部が遮蔽される場合の処理例を示した。図示するように、建物ＢＬＤ１９ａによって遮蔽部分は、位置表示ＰＰＭ１９ａを破線で示し、残りの部分を実線で示している。遮蔽部分は、建物レイヤのマスクデータと重畳する部分で特定することができる。こうすることによって、現在位置が建物ＢＬＤ１９ａによって遮蔽される位置にあることを直感的に認識することができ、奥行き感を持たせた位置表示を実現することができる。
図１９（ｂ）には、高速道路ＨＷ１９ｂによって、位置表示ＰＰＭ１９ｂの一部が遮蔽される場合の処理例を示した。位置表示のうち遮蔽部分は、高速道路レイヤと重畳する部分で特定することができる。位置表示ＰＰＭ１９ｂのうち、遮蔽部分を破線で、そうでない可視形状を実線で表示することにより、奥行き感のある表示を実現している。
図２０（ａ）には、高速道路ＨＷ２０ａ上を走行する場合の位置表示ＰＰＭ２０ａを例示した。位置表示の一部は、建物ＢＬＤ２０ａ１、ＢＬＤ２０ａ２等で遮蔽されている。遮蔽部分の形状を特定するためには、建物レイヤのマスクデータを用いるが、高速道路レイヤのマスクデータは用いない。高速道路レイヤのマスクデータを用いてしまうと、高速道路によって位置表示の一部が遮蔽されている状態での表示となってしまい、高速道路の下にある一般道路を走行しているかのような表示になってしまうからである。このように、車両の走行状態に応じて、マスクデータを使い分けることによって、適切な位置表示を実現することができる。
図２０（ｂ）には、同様に、高速道路ＨＷ２０ｂ上を走行する場合の位置表示ＰＰＭ２０ｂを例示した。位置表示の一部は、建物ＢＬＤ２０ｂによって遮蔽されている。この場合も、遮蔽部分の形状を特定するためには、建物レイヤのマスクデータが用いられるが、高速道路レイヤのマスクデータは用いない。こうすることにより、高速道路による遮蔽は行わず、建物ＢＬＤ２０ｂとの奥行き感を持たせた位置表示を実現することができる。
図２１には、地下構造の高速道路を走行する場合の例を示した。図２１（ａ）は高速道路の構造を示している。高速道路ＨＷ２１ａＵは地上を走行しており、高速道路ＨＷ２１ａＢ部分になると、地下を走行する状態となっている。現在位置ＰＰ２１ａは、地下部分である高速道路ＨＷ２１Ｂ上にある。図２１（ｂ）は、この状態での位置表示を例示する。位置表示ＰＰＭ２１ｂのうち地上に現れる可視部分は実線で描かれ、地下の部分、建物等によって遮蔽される部分は、破線で描かれる。遮蔽部分は、地表レイヤおよび建物レイヤのマスクデータと重畳する部分で特定することができる。高速道路レイヤのマスクデータは用いない。高速道路レイヤを用いない理由は、図２０で説明した通りである。地表レイヤを用いる理由は、地下部分について、適切なマスク処理を施すためである。こうすることにより、建物レイヤや高速レイヤのマスクデータが存在しない場所であっても、地下に位置する部分について遮蔽された状態での位置表示を実現することができる。
【００６３】
図２２は位置表示の可視形状を特定する方法について示す説明図である。図１９〜２１では、マスクデータの使い分けの例を示したが、図２２で示す例は、単一のマスクデータについて、現在位置とマスクデータとの位置関係に応じて、可視形状を特定する方法を切り替えるものである。
現在位置とマスクデータとの位置関係としては、現在位置、即ち位置表示の重心位置が視認できる場合／できない場合の２通りに分けられる。図中では、上の段に、重心位置が視認できる場合を示し、下の段に、視認できない場合を示した。重心位置が存在するか否かは、誘導マスク／非表示誘導マスクの各マスクデータを用いることにより判断することができる。つまり、経路誘導中であれば、現在位置は、誘導線に沿って移動しているはずであるから、誘導マスク／非表示誘導マスクのいずれかに存在するはずである。現在位置が誘導マスク内に存在する場合には、重心が視認できることを意味し、非表示誘導マスク内に存在する場合には、重心が視認できないことを意味することになる。
【００６４】
一方、可視形状を特定する方法としては、位置表示の全体を対象としてマスク処理を行う方法と、一部分のみを対象として行う方法とが考えられる。図中では、左欄に、位置表示の全体を対象としてマスク処理を行う場合を示し、右欄に、一部のみを対象としてマスク処理を行う場合を示した。
ここでは、一部を対象とする場合として、現在位置よりも手前の位置表示のみを対象とする例を示している。「手前」とは、例えば、進行方向ベクトルで位置表示を２分割し、その下半分とすることができる。また、別の方法として、位置表示のうち重心位置から下半分のみを対象としてもよい。また、マスクデータは平行投影で生成された２次元画像であるから、平行投影における投影方向を表すベクトルと、現在位置において投影面内で直交する直線を境界線とし、この境界よりも２次元画像内で下側にある部分が手前にあるとして、この部分のみをマスク処理の対象としてもよい。
表示Ｄ１は、重心位置が視認できる場合、かつ全体をマスク処理する場合の例である。この例では、建物ＢＬＤ２２１、ＢＬＤ２２２によって遮蔽された形で位置表示ＰＰＭ２２１が表示される。
表示Ｄ２は、重心位置が視認できる場合、かつ手前部分のみをマスク処理する場合の例である。この例では、建物ＢＬＤ２２１によって遮蔽された形で位置表示ＰＰＭ２２１が表示される。建物ＢＬＤ２２２による遮蔽は考慮しないため、位置表示ＰＰＭ２２２は、表示Ｄ１よりも視認しやすくなるとともに、建物ＢＬＤ２２２よりも位置表示が手前にあるという奥行き感が与えられる。
表示Ｄ３は、重心位置が視認できない場合、かつ全体をマスク処理する場合の例である。この例では、建物ＢＬＤ２２１、ＢＬＤ２２３によって遮蔽された形で位置表示ＰＰＭ２２３が表示される。
表示Ｄ４は、重心位置が視認できない場合、かつ手前部分のみをマスク処理する場合の例である。この例では、建物ＢＬＤ２２１によって遮蔽された形で位置表示ＰＰＭ２２４が表示される。重心位置が視認できないにもかかわらず、建物ＢＬＤ２２３よりも位置表示を優位に表示することによって、現在位置が本来の位置よりも、建物ＢＬＤ２２３側にあるかのような錯覚を与える表示となっている。
本実施例では、表示Ｄ１〜Ｄ４のそれぞれによって与えられる視覚的な効果を考慮し、重心が視認できる場合には、手前部分のみをマスク処理の対象とする表示Ｄ２を用い、重心が視認できない場合には、全体をマスク処理の対象とする表示Ｄ３を用いるものとした。こうすることによって、より違和感のないマスク処理を実現することができる。
【００６５】
次に、マスク処理におけるマスクデータの使い分け方法について説明する。先に図１９〜２１で説明した通り、本実施例では、車両の走行状況等に応じて、マスク処理に使用するマスクデータを使い分けている。この使い分けを、以下、レイヤ制御と称する。
図２３は、レイヤ制御の内容を示す説明図である。車両の走行状態に応じてマスクデータを使い分けるための規則を一覧表にしたものである。
まず、自車位置が一般道路にいる場合と、高速道路にいる場合とで、使い分けを行う。いずれの道路にいるかの判断には、経路探索で得られた経路がネットワークデータ上のリンクで特定されているため、その属性としてのネットワーク道路種別によって判定することができる。一般道路にいる場合は、ネットワーク道路種別は「一般道路」となるし、高速道路にいる場合には「高速道路」となる。本実施例では、一般道路と高速道路とで規則を分けるものとしたが、現在位置を遮蔽するか否かという観点では、一般道路における高架道路でも同じである。従って、非高架道路、高架道路という区分でレイヤ制御の規則を設定してもよい。
一般道路上にいる場合には、高速道路を含む地物との関係で、自車位置が、いずれにも隠れない場合、建物に隠れる場合、高速道路に隠れる場合などに分かれるが、本実施例では、いずれの場合も、建物レイヤ、高速道路レイヤ、非表示高速道路レイヤのマスクデータを用いてマスク処理を行うものとした。従って、一般道路上にいる場合の中で、更にレイヤを使い分けるための判断条件は設定されていない。
一方、高速道路上にいる場合には、自車位置が何も隠れない場合、建物に隠れる場合、および先に図２１で示した例やトンネルなどように、地表に隠れる場合がある。このうち、何も隠れない場合および建物に隠れる場合については、建物レイヤを用いてマスク処理を行えばよい。地表に隠れる場合には、建物レイヤおよび地表レイヤを用いてマスク処理を行う。
いずれの場合に当たるか否かの判断条件は、次の通りである。自車位置が、高速道路非表示レイヤ、または非表示高速道路レイヤに存在するときは、「何も隠れない」または「建物に隠れる」と判断する。自車位置が、建物レイヤまたは地表レイヤに存在する場ときは、「地表に隠れる」と判断する。
このように、自車位置が走行するネットワーク道路種別、および自車位置が存在するレイヤに基づいて、マスク処理に用いるレイヤを切り替えることにより、図１９〜２１で示した多彩なマスク処理を実現することができる。
【００６６】
以上で説明したマスク処理を含め、現在位置表示処理の処理内容を説明する。
図２４および図２５は、現在位置表示処理のフローチャートである。この処理は、経路案内処理（図１５）のステップＳ４００に相当する処理である。本実施例では、ナビゲーション装置３００の主制御部３０４および表示制御部３０６が実行する処理であり、ハードウェア的にはナビゲーション装置３００のＣＰＵが実行する処理である。
まず、ナビゲーション装置３００は、現在位置およびマスクデータを読み込む（ステップＳ４０１）。そして、ネットワークデータに基づいて現在の道路種別を取得する（ステップＳ４０２）。
道路種別が一般道路である場合には（ステップＳ４０３）、マスク処理対象のレイヤとして、建物レイヤ、高速道路レイヤ、非表示高速道路レイヤを設定する（ステップＳ４０４）。
道路種別が高速道路である場合には（ステップＳ４０３）、現在位置がとマスクデータとの位置関係を判断する。現在位置が、高速道路レイヤまたは非表示高速道路レイヤに存在する場合には（ステップＳ４０５）、マスク処理対象として、建物レイヤを設定する（ステップＳ４０６）。現在位置が、建物レイヤまたは地表レイヤに存在する場合は、マスク処理対象として、建物レイヤおよび地表レイヤを設定する（ステップＳ４０７）。
次に、図２２で説明したマスク処理方法の切り替えを行うため、現在位置と誘導マスク／非表示誘導マスクとの位置関係を判断する（ステップＳ４１０）。現在位置が非表示誘導マスク内に存在する場合には、位置表示全体をマスク処理の対象とする（ステップＳ４１１）。現在位置が誘導マスク内に存在する場合には、図中に例示したように、位置表示を進行方向に向かって上下に２分割し、下半分のみをマスク処理の対象とする（ステップＳ４１２）。
以上でマスク処理に用いるレイヤが設定され、マスク処理の方法が定まる。ナビゲーション装置３００は、マスク処理によって現在位置マークを表示するためのデータを生成し（ステップＳ４１３）、現在位置マーク表示データを表示する（ステップＳ４１４）。
【００６７】
以上、本発明の実施例について説明した。３次元地図表示システムは、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。
【産業上の利用可能性】
【００６８】
本発明は、地物を３次元的に表現した３次元地図を表示するために利用可能である。
【符号の説明】
【００６９】
１００…データ生成装置
１０１…コマンド入力部
１０２…平行投影部
１０３…平行投影データ
１１０…３Ｄ地図データベース
１１１…３Ｄ地図データ
１１２…ネットワークデータ
１０５…送受信部
２００…サーバ
２０１…送受信部
２０２…データベース管理部
２０３…経路探索部
２１０…地図データベース
２１１…地物データ
２１２…文字データ
２１３…ネットワークデータ
２１４…マスクデータ
３００…ナビゲーション装置
３０１…送受信部
３０２…コマンド入力部
３０３…ＧＰＳ入力部
３０４…主制御部
３０５…地図情報記憶部
３０６…表示制御部
３０６Ａ…マスク制御部
３０７…マップマッチング変換部
【図２】
0005837841.tif 000002
【図４】
0005837841.tif 000003
【図５】
0005837841.tif 000004
【図６】
0005837841.tif 000005
【図９】
0005837841.tif 000006
【図１１】
0005837841.tif 000007
【図１２】
0005837841.tif 000008
【図１３】
0005837841.tif 000009
【図１４】
0005837841.tif 000010
【図１５】
0005837841.tif 000011
【図１６】
0005837841.tif 000012
【図１７】
0005837841.tif 000013
【図１８】
0005837841.tif 000014
【図２２】
0005837841.tif 000015
【図２３】
0005837841.tif 000016
【図２４】
0005837841.tif 000017
【図２５】
0005837841.tif 000018
【図１】
0005837841.tif 000019
【図３】
0005837841.tif 000020
【図７】
0005837841.tif 000021
【図８】
0005837841.tif 000022
【図１０】
0005837841.tif 000023
【図１９】
0005837841.tif 000024
【図２０】
0005837841.tif 000025
【図２１】
0005837841.tif 000026