(57)【要約】【課題】  ３次元地図を高速に描画可能な地図表示システムを提供する。【解決手段】  地図データ加工部１０ａは、オリジナルの３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工し、地図データ表示部１０ｂは、シーングラフを参照して表示領域を特定し、特定された表示領域に応じた描画データを読み込み表示処理を行う。【選択図】        図１
2005056075.tif 000002
【特許請求の範囲】
【請求項１】
３次元地図表示機能を有する地図表示システムにおいて、
３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、前記３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する地図データ加工部と、
前記シーングラフデータを参照して表示領域を特定し、特定された前記表示領域に応じた前記描画データを読み込み表示処理を行う地図データ表示部と、
を有することを特徴とする地図表示システム。
【請求項２】
３次元地図データを加工する地図データ加工装置において、
前記３次元地図データを格納する記憶部と、
前記３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、前記３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する地図データ加工部と、
を有することを特徴とする地図データ加工装置。
【請求項３】
前記ツリー構造は、前記３次元地図の詳細度に応じた複数の階層のノードを有することを特徴とする請求項２記載の地図データ加工装置。
【請求項４】
前記ツリー構造は、前記階層ごとに前記ノードを４分割した構造であることを特徴とする請求項３記載の地図データ加工装置。
【請求項５】
前記地図データ加工部は、前記オブジェクトが所定の高さ以上であれば、前記詳細度が低い前記階層の前記ノードにおいても表示するように前記シーングラフデータを加工することを特徴とする請求項３記載の地図データ加工装置。
【請求項６】
前記ツリー構造は、ＸＭＬ形式で記述されていることを特徴とする請求項２記載の地図データ加工装置。
【請求項７】
前記描画データは逐次実行型のデータ形式であることを特徴とする請求項２記載の地図データ加工装置。
【請求項８】
前記地図データ加工部は、前記シーングラフデータと、前記描画データとを関連付けるためのタグ情報をそれぞれに付加することを特徴とする請求項２記載の地図データ加工装置。
【請求項９】
３次元地図表示機能を有する地図表示装置において、
３次元地図のデータ構造をツリー構造で表現したシーングラフデータを格納するシーングラフデータ記憶部と、
前記３次元地図に含まれるオブジェクトを描画するための描画データを格納する描画データ記憶部と、
前記シーングラフデータを参照して表示領域を特定する表示領域特定部と、
特定された前記表示領域に応じた前記描画データを読み込むデータ読み込み部と、
読み込んだ前記描画データをもとに表示処理を行う表示処理部と、
を有することを特徴とする地図表示装置。
【請求項１０】
現在位置を特定する現在位置特定部と、前記３次元地図中における視点及び視線を設定するカメラ位置設定部とをさらに有し、前記表示領域特定部は、特定された前記現在位置、前記視点及び視線をもとに、前記シーングラフデータを参照して前記表示領域を特定することを特徴とする請求項９記載の地図表示装置。
【請求項１１】
前記ツリー構造は、前記３次元地図の詳細度に応じた複数の階層のノードを有し、前記表示領域特定部は前記視点及び視線をもとに、前記視点と、前記ノードが示す前記３次元地図の地表面との距離に応じて前記詳細度を決定し前記表示領域を特定することを特徴とする請求項１０記載の地図表示装置。
【請求項１２】
前記オブジェクトごとのＰＯＩ情報を格納するＰＯＩ情報記憶部をさらに有し、
前記データ読み込み部は、前記表示処理部で表示処理された前記３次元地図においてユーザによる入力によって指定された前記オブジェクトを前記シーングラフデータより探索して、探索した前記オブジェクトの前記ＰＯＩ情報を読み込み、
前記表示処理部は、前記ＰＯＩ情報を画面上に表示することを特徴とする請求項９記載の地図表示装置。
【請求項１３】
前記データ読み込み部は、探索する前記シーングラフデータの前記階層を限定することを特徴とする請求項１２記載の地図表示装置。
【請求項１４】
３次元地図を表示する地図表示方法において、
前記３次元地図中における視点及び視線を設定し、
前記３次元地図のデータ構造を詳細度に応じて複数の階層のノードによるツリー構造で表現したシーングラフデータを探索して、前記視点及び視線をもとに、前記ノードが示す前記３次元地図の地表面と、前記視点との距離に応じて、前記ノードが示す前記３次元地図を表示するか否かを決定し、
前記ノードが示す前記３次元地図を表示する場合は、前記ノードの前記３次元地図に含まれるオブジェクトを描画するための描画データを読み込み、
読み込んだ前記描画データをもとに表示処理を行う、
ことを特徴とする地図表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーナビゲーションシステム並びに歩行者に目的地までの道のりを示す歩行者ナビゲーションシステムなどといった、ナビゲーションシステム一般の地図表示システム、地図データ加工装置、地図表示装置及び地図表示方法に関し、特に３次元地図表示機能を有する地図表示システム、地図データ加工装置、地図表示装置及び地図表示方法に関する。
【背景技術】
【０００２】
近年、カーナビゲーションシステム（以下カーナビと略す）に、地図を３次元で表示する技術が発達し、カーナビの画面上に３次元地図を表示することが可能になってきた。これによりカーナビで、現在位置と、周囲の建物や立体交差点などといった立体構造物の位置関係を、ユーザが３次元的に把握することが可能となってきた。
【０００３】
また、ＰＤＡ（個人用携帯端末）や携帯電話に、現在位置を把握するためのＧＰＳ（Global Positioning System）が搭載されたり、オプションで搭載できるようになっている。これにより、それらの端末を持つユーザを、現在位置をもとにして目的地まで誘導する歩行者ナビゲーションが実用化されるようになってきた。
【０００４】
さらに、それらの携帯端末装置が画面上に３次元グラフィックスをリアルタイムに高速に描画できる、ハードウェアによる３次元グラフィック描画エンジンが近年実用化され、携帯端末装置でも高速なグラフィック描画が可能となってきた。
【０００５】
また、カーナビにも、ハードディスクが搭載され、さらにＰＤＡのような携帯端末装置にも、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（Ｍｅｍｏｒｙ  Ｓｔｉｃｋはソニー株式会社の登録商標である）などのような大容量の外部記憶装置が装着できるようになり、この中に、３次元地図データのような大容量のデータを格納し、高速でそのデータにアクセスができるようになっている。
【０００６】
３次元グラフィックの表示技術のうち、複雑な構造を持つ対象を描く際の技術として用いられているものに、シーングラフがある。
図３３は、シーングラフで構築されるオブジェクトの例であり、（Ａ）は構築されるオブジェクトとして立体のロボットを示した図であり、（Ｂ）はオブジェクトを構成するパーツの一覧である。
【０００７】
また、図３４は図３３のオブジェクトの構造を示すシーングラフの例である。
また、図３５はシーングラフにより表現されたオブジェクトのパーツの配置の様子を示す図である。
【０００８】
例えば、図３３（Ａ）のロボット１４０のようなものを表現する場合、図３３（Ｂ）のように、頭または胴体となるパーツ１４１、手となるパーツ１４２、足となるパーツ１４３を予め定義し、部品ＩＤを図のように"１"、"２"、"３"などと割り付けて管理する。その組み合わせを、図３４のような、シーングラフで定義されているように、ルートから始まり、各パーツのスケールの変換・回転・トランスレートの順で、各パーツに変換をかけて、互いのパーツ同士の位置関係を記述する。
【０００９】
これにより、図３５のように、例えば、ロボットの頭部１４１ａ、胴体１４１ｂ、左腕１４２ａ、右腕１４２ｂ、左脚１４３ａ、右脚１４３ｂが表現され描画される。
一般に、このようなシーングラフを記述するフォーマット、並びにそれを取り扱うＡＰＩ（Application Program Interface）は複数存在し、代表的なフォーマットとしては、ＶＲＭＬ（Virtual Reality Modeling Language）、ＳｏｆｔＩｍａｇｅ社のＸＳＩファイルが、そして、シーングラフを取り扱うことが可能なＡＰＩとしては、Ｊａｖａ３Ｄ（登録商標）、ＯｐｅｎＩｎｖｅｎｔｏｒ（商標）などが知られている。
【００１０】
このように３次元構造物を定義したシーングラフで、ｋ−ｄツリー（k dimensional tree）（具体的には６−ｄツリー）を用いて検索を容易にするためにデータ保持の仕方を工夫するものもあった（例えば、特許文献１参照）。
【００１１】
一方、３次元オブジェクトの概観をできる限り損なうことなく高速な描画を実現する方法として、ＬＯＤ（Level Of Detail：詳細度レベル）がある。
図３６、３７、３８はＬＯＤの例を説明する図である。
【００１２】
ＬＯＤでは、例えば、予め描画する１つのオブジェクトの構成要素を図３６のように、詳細度のレベル別に、レベル１のオブジェクト１５０、レベル２のオブジェクト１５１、レベル３のオブジェクト１５２のように複数用意しておく。そして、描画する際には、図３７のように、視点（カメラ１５５の位置）からの距離に応じて、複数の詳細度のオブジェクトの中から最も適したものを選択して描画する。
【００１３】
例えば、最も近い距離にある場合、レベル１のオブジェクト１５０を描画し、それより遠い距離にある場合は、レベル２のオブジェクト１５１、さらに遠い距離にある場合は、レベル３のオブジェクト１５２を描画する。これにより、図３８のように、通常ならばどこにあっても全てのデータを描画しなくてはならないが、ＬＯＤを導入することにより、カメラから遠くにあるときは省略されたデータヲ、近くにあるときは詳細なデータを描画することが可能になり、見た目を損なうことなくグラフィック描画エンジンの負担を軽減することができるため、描画スピードを向上させることができるという効果が得られる。
【００１４】
また、特許文献２には、通信を用いて３次元データリアルタイムで送信・レンダリングするに際し、こま落ちなどを防ぐための方法として、ＬＯＤにより詳細度のレベル分けをして、詳細な部分の描画を後回しにすることにより、フレームレートのこま落ちを回避することが開示されている。
【００１５】
ＬＯＤには様々な方法が存在するが、その中でよく用いられ、かつ３次元地図のような構造を持つオブジェクトデータに相応しい技法として、４分木がある。
この方法は、３次元地図のようなある特定の平面で広域に広がる３次元データを、オブジェクトの詳細度によって、複数の階層のノードに分けて記録し、階層ごとにノードを４分割しておくというものである。
【００１６】
図３９、４０、４１は４分木を説明する図である。
図３９では、オリジナルなデータ１６０を、３階層のノード、すなわちレベル１：大きなオブジェクトを有するノード１６１、レベル２：中くらいのオブジェクトを有するノード１６２、レベル３：小さなオブジェクトを有するノード１６３に分けて、階層ごとに４分割していく。これにより、描画時には描画の単位をこのノードごととし、視点に近い位置では詳細度の高い階層までを描画し、視点から遠い位置は詳細度の低い階層までしか描画しないという方法を用いることにより、ＬＯＤが実現できる。
【００１７】
例えば、図４０のように、カメラ１７０からの距離が閾値１７１（ＦＡＲ  ＰＬＡＮＥ）を超えるような場合は描画せず、閾値１７１から閾値１７２の間の場合は、詳細度の最も低い階層を描画し、閾値１７２から閾値１７３はその下の階層まで、閾値１７３から閾値１７４までの場合は、さらにその下の階層まで、閾値１７４から閾値１７５（ＮＥＡＲ  ＰＬＡＮＥ）の場合は全ての階層までを描画する。また、閾値１７５以下の場合は、描画しないようにする。
【００１８】
４分木によるＬＯＤのツリーの実現方法は図４１のようになる。まず、地表面のような、広範囲な２次元平面状に構成されているデータの空間全体を覆うような正方形１８０の存在を仮定する。そして、その正方形を４つに等分するような分割面１８０ａ、１８０ｂ、１８０ｃ、１８０ｄを考えたとき、この分割面１８０ａ、１８０ｂ、１８０ｃ、１８０ｄと交わるような構成要素１８１、１８２は、広範囲にわたる巨大な構成要素であると考えられるので、上位のノードとしてノード１９０に格納し、その下位に、４つの、各分割領域に相当するノード１９１ａ、１９１ｂ、１９１ｃ、１９１ｄを子ノードとして付属させ、それぞれの構成要素をその位置に相応しい場所に帰属させる。
【００１９】
必要に応じて数回この処理を繰り返すことにより、地図は詳細度により階層化される。
具体的にこの方法を３次元地図に適用すると、山や海、さらには道路などと言った広範囲にわたるものは上位の階層のノードに記述でき、さらにその下にビルなどの巨大建造物が格納されるノード、さらにその下に住宅や信号・道路標識などが格納されるノードなどのように、自動的に地図がほぼ階層化される（階層を規定するための境界面と交わったものは例外）、この方法により効果的に３次元地図をＬＯＤにより描画できる。
【特許文献１】特開平１０−２９３８６２号公報（第１４図）
【特許文献２】特開２００２−２７９４４９号公報（段落番号〔００７２〕〜〔００７７〕）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかし、近年一般的になってきた３次元カーナビゲーションシステムを始めとする、各種３次元ナビゲーションシステム上では、リアルタイムで、高速かつ高精細な３次元地図の描画をする必要がある。従来のシーングラフを用いて３次元地図を表現した場合、処理すべきデータ量が膨大なものになってしまい、高速処理を行うことが困難であるという問題があった。
【００２１】
また、従来の４分木を用いた分類では、ランドマークとなるような高層建築は、細かい部分のノードに分類される可能性が高い。これにより、遠くにある高層建築は、例え視界に入る位置にあっても省略される可能性が高くなるという問題があった。これを回避するためには描画時に、もしそのノードが高層建築を含めば省略せずに描画する、という処理が必要となるが、毎回その判断を行っていると、描画が遅くなったり、データ省略を行う意味がなくなってしまったりするという問題があった。
【００２２】
また、高速に描画できるのみではなく、ユーザが表示された地図上のビルなどのランドマークを指定したときに、そのランドマークの適切なＰＯＩ（Point Of Interest）情報を表示することができる必要がある。
【００２３】
本発明はこのような点に鑑みてなされたものであり、３次元地図を高速に描画可能な地図表示システム、地図データ加工装置、地図表示装置及び地図表示方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明では上記課題を解決するために、３次元地図表示機能を有する地図表示システムにおいて、３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、前記３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する地図データ加工部と、前記シーングラフデータを参照して表示領域を特定し、特定された前記表示領域に応じた前記描画データを読み込み表示処理を行う地図データ表示部と、を有することを特徴とする地図表示システムが提供される。
【００２５】
上記の構成によれば、地図データ加工部は、３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工し、地図データ表示部は、シーングラフを参照して表示領域を特定し、特定された表示領域に応じた描画データを読み込み表示処理を行う。
【００２６】
また、３次元地図データを加工する地図データ加工装置において、前記３次元地図データを格納する記憶部と、前記３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、前記３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する地図データ加工部と、を有することを特徴とする地図データ加工装置が提供される。
【００２７】
上記の構成によれば、地図データ加工部は、記憶部に格納された３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフデータと、前記３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する。
【００２８】
また、３次元地図表示機能を有する地図表示装置において、３次元地図のデータ構造をツリー構造で表現したシーングラフデータを格納するシーングラフデータ記憶部と、前記３次元地図に含まれるオブジェクトを描画するための描画データを格納する描画データ記憶部と、前記シーングラフデータを参照して表示領域を特定する表示領域特定部と、特定された前記表示領域に応じた前記描画データを読み込むデータ読み込み部と、読み込んだ前記描画データをもとに表示処理を行う表示処理部と、を有することを特徴とする地図表示装置が提供される。
【００２９】
上記の構成によれば、表示領域特定部は、シーングラフデータ記憶部に格納されたシーングラフデータを参照して表示領域を特定し、データ読み込み部は、特定された表示領域に応じた描画データを読み込み、表示処理部は、読み込んだ描画データをもとに表示処理を行う。
【００３０】
また、３次元地図を表示する地図表示方法において、前記３次元地図中における視点及び視線を設定し、３次元地図のデータ構造を詳細度に応じて複数の階層のノードによるツリー構造で表現したシーングラフデータを探索して、前記視点及び視線をもとに、前記ノードが示す前記３次元地図の地表面と、前記視点との距離に応じて、前記ノードが示す前記３次元地図を表示するか否かを決定し、前記ノードが示す前記３次元地図を表示する場合は、前記ノードの前記３次元地図に含まれるオブジェクトを描画するための描画データを読み込み、読み込んだ前記描画データをもとに表示処理を行う、ことを特徴とする地図表示方法が提供される。
【００３１】
上記の方法によれば、まず、表示すべき３次元地図中における視点及び視線を設定し、シーングラフデータを探索して、視点及び視線をもとにシーングラフのノードが示す３次元地図の地表面と、視点との距離に応じて、そのノードが示す３次元地図を表示するか否かを決定し、そのノードが示す３次元地図を表示する場合は、そのノードの３次元地図に含まれるオブジェクトを描画するための描画データを読み込み、読み込んだ描画データをもとに表示処理を行う。
【発明の効果】
【００３２】
本発明は、オリジナルの３次元地図データを、３次元地図のデータ構造をツリー構造で表現したシーングラフと、３次元地図に含まれるオブジェクトを描画するための描画データに分け、そのシーングラフデータを参照して表示領域を特定し、その領域の描画データを読み込み表示処理を行うようにしたので、３次元地図を高速に描画することができる。
【００３３】
また、地図の詳細度に応じた複数の階層のノードでツリー構造を表現し、オブジェクトが所定の高さ以上であれば、詳細度が低い階層のノードにおいてもそのオブジェクトを表示するようにしたので、ランドマークとなるようなオブジェクトが省略されてしまうことを防止することができる。
【００３４】
また、画面上に表示処理された３次元地図においてユーザによる入力によって指定されたオブジェクトをシーングラフより探索して、探索したオブジェクトのＰＯＩ情報を読み込み、適切なＰＯＩ情報を画面上に表示することができる。
【発明を実施するための最良の形態】
【００３５】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の実施の形態の地図表示システムの機能を表す機能ブロック図である。
本発明の実施の形態の地図表示システム１０は、地図会社などから提供されるオリジナルの地図データや、地図内の特定のＰＯＩの情報を記録した、地図会社や各種の情報会社から提供されるオリジナルのＰＯＩ情報を加工する地図データ加工部１０ａと、加工した情報をもとに表示処理を行う地図データ表示部１０ｂとからなる。
【００３６】
地図データ加工部１０ａは、オリジナルの３次元地図データを格納しているオリジナル３次元地図ＤＢ（データベース）１１と、オリジナルの３次元地図を３次元地図のデータ構造をツリー構造で表現したシーングラフデータ（以下単にシーングラフと呼ぶ）と、３次元地図に含まれるオブジェクトを描画するための描画データとに分割して加工する地図加工部１２と、オリジナルのＰＯＩ情報を格納するオリジナルＰＯＩ情報ＤＢ（データベース）２１と、オリジナルのＰＯＩ情報を加工するＰＯＩ情報加工部２２とからなる。
【００３７】
また、地図データ表示部１０ｂは、地図加工部１２で分割されたシーングラフを格納するシーングラフＤＢ１３と、３次元地図の描画に必要な描画データを格納する３次元地図ＤＢ１４と、現在位置を特定する現在位置特定部１５と、シーングラフを管理するシーングラフ管理部１６と、３次元地図中における視点及び視線を設定するカメラ位置設定部１７と、カメラ位置設定部１７から、描画する３次元空間の視点・視線データをもとにシーングラフを参照して表示領域を特定する表示領域特定部１８と、特定した表示領域に応じた描画データを３次元地図ＤＢ１４から読み込むデータ読み込み部１９と、読み込んだ描画データをもとに表示処理を行う表示処理部２０と、ＰＯＩ情報加工部２２にて加工されたＰＯＩ情報を格納するＰＯＩ情報ＤＢ２３とからなる。
【００３８】
図２は、地図加工部で分割されたデータ構造の例である。
シーングラフＤＢ１３に格納されるシーングラフには、オリジナル３次元地図ＤＢ１１にある広域の地図全体のデータ構造がツリー構造で記述されている。一般に、シーングラフは、様々なツリー構造を扱えるものを意味するが、ここで用いるシーングラフは地図の機能に特化することにより、データ構造をシンプルにすることによって処理スピードを向上させることができる。
【００３９】
ここでのツリー構造は、３次元地図の詳細度に応じた複数の階層のノードを有しており、最上位の階層のノードが、最も詳細度が低くてよい場合に表示するノード、階層が下がるに従い詳細度を高くする場合に表示するノードが配置される。
【００４０】
また、図２のように、本発明の実施の形態においてシーングラフの構造は４分木構造に特化するものとする。すなわち、ある広い領域の３次元地図を、階層ごとに４分割した構造で記述する。
【００４１】
なお、このようなツリー構造をＸＭＬ（eXtensible Markup Language）で記述することにより、編集や閲覧を容易にすることができる。
一方、３次元地図に含まれる建物、地形など（以下オブジェクトと呼ぶ）を描画するための描画データは、一般に用いられているマテリアル・ジオメトリなどといった構造データではなく、逐次実行型のデータ形式、特に、３次元地図の描画に必要な３次元描画ＡＰＩの描画命令とほぼ１対１で対応するバイナリデータで記述する。これにより、データを描画命令に変換する時間が短縮するために、描画スピードを速くできることと、バイナリデータで記述することにより、データサイズを小さくすることが可能となる。
【００４２】
描画データは、シーングラフＤＢ１３に登録された、４分木によって分割された地図のエリアと関連付けられており（詳しくは後述する）、３次元地図ＤＢ１４に多数記録されている。
【００４３】
以下、図１の地図表示システム１０の動作を説明する。
まず、地図データ加工部１０ａにおいて、オリジナルの３次元地図データをオリジナル３次元地図ＤＢ１１から取り出し、地図加工部１２にて、シーングラフと、描画データに分け、それぞれをシーングラフＤＢ１３と、３次元地図ＤＢ１４に格納する。また、オリジナルのＰＯＩ情報も、オリジナルＰＯＩ情報ＤＢ２１から取り出し、ＰＯＩ情報加工部２２にて加工し、ＰＯＩ情報ＤＢ２３に格納する。
【００４４】
次に、地図データ表示部１０ｂにおいて、まず、現在位置特定部１５によって、地図上の注目する現在位置を特定する。この情報をもとに、シーングラフ管理部１６は、シーングラフＤＢ１３からシーングラフの構造を読み取る。
【００４５】
シーングラフ管理部１６は、読み取ったシーングラフの構造の情報を表示領域特定部１８に送る。さらに、表示領域特定部１８は、カメラ位置設定部１７から、描画する３次元空間の視点・視線データを得て、特定された現在位置、視点・視線データをもとに、シーングラフを参照して、表示領域を特定する。このとき、図２で示したようにシーングラフを４分木で構築した場合、カメラ位置とシーングラフの各ノードの空間上の位置を勘案して表示領域を特定する（詳細は後述する）。データ読み込み部１９は、３次元地図ＤＢ１４の中から、特定された表示領域に応じて描画データを読み出し、表示処理部２０により、表示処理を行い画面に描画する。
【００４６】
また、ユーザが画面に表示されている特定のビルなどのようなＰＯＩの情報提示を要求した場合、ＰＯＩ情報ＤＢ２３から、ユーザが指定したオブジェクトに対応した適切なＰＯＩ情報がデータ読み込み部１９に送られ、地図と共に表示される。
【００４７】
次に、本発明の実施の形態をより具体的に且つ詳細に説明する。
ここでは、以下のようなナビゲーションシステムを仮定して、本発明の実施の形態の地図表示装置を説明する。
【００４８】
図３は、本発明の実施の形態のナビゲーションシステムの概略の構成図である。
このようなナビゲーションシステムは、カーナビ３０とＧＰＳ３１、歩行者ナビゲーションが搭載されているＰＤＡや携帯電話などの携帯端末４０とＧＰＳ４１などの組み合わせからなり、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイなどの表示デバイス上の画面５０に、図３のような立体地図を表示する。
【００４９】
このシステムの使われ方としては、ＧＰＳ３１、４１の位置をもとに、現在地を中心とした町並みを表示したり、ユーザを指定した出発点から目的地まで、ナビゲートするため、コース移動シミュレーションのアニメーションをしたりするといった使い方が想定される。
【００５０】
次に、このシステムを実現する、一般的なナビゲーションシステムのハードウェア構成例を説明する。
図４は、本発明の実施の形態のナビゲーションシステムのハードウェア構成例である。
【００５１】
ナビゲーションシステムは、ＧＰＳ６０と、３Ｄグラフィック描画エンジン６１ａ、ＲＡＭ（Random Access Memory）６１ｂ、ＲＯＭ（Read Only Memory）６１ｃ、ＣＰＵ（Central Processing Unit）６１ｄ、外部デバイスとのインターフェース６１ｅとからなる情報処理装置６１、表示デバイス６２、外部記憶装置６３、外部入力装置６４と、から構成される。
【００５２】
ＧＰＳ６０は、現在位置を把握するために用いられる。
３Ｄグラフィック描画エンジン６１ａは、ＣＰＵ６１ｄからの命令をもとに３次元グラフィックスを始めとする、各種のグラフィック・テキストなどを表示デバイス６２に表示することが可能なハードウェアである。
【００５３】
ＲＡＭ６１ｂは、ＣＰＵ６１ｄが実行途中のプログラムや、演算途中のデータを一時的に格納する。
ＲＯＭ６１ｃは、ＣＰＵ６１ｄが実行する基本的なプログラムやデータを格納する。
【００５４】
なお、ＲＡＭ６１ｂまたはＲＯＭ６１ｃには３Ｄグラフィック描画エンジン６１ａに描画命令を送り、３次元グラフィックの描画を実現するために必要な、ＯＰＥＮ−ＧＬ（登録商標）などの３次元グラフィックＡＰＩが内蔵されている。
【００５５】
ＣＰＵ６１ｄは、ＲＡＭ６１ｂ、またはＲＯＭ６１ｃに格納されているプログラムに応じて、情報処理装置６１の各部の動作を制御する。
インターフェース６１ｅは、ＧＰＳ６０や、外部記憶装置６３、外部入力装置６４と、ＣＰＵ６１ｄとの情報の入出力を司る。
【００５６】
表示デバイス６２は、例えば、ＣＲＴや液晶ディスプレイなどであり、３Ｄグラフィック描画エンジン６１ａで処理された映像信号を画面に表示する。
外部記憶装置６３は、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＨＤＤ（Hard Disk Drive）、Ｍｅｍｏｒｙ  Ｓｔｉｃｋなどであり、地図など、様々な情報を格納する。
【００５７】
外部入力装置６４は、カーナビのリモートコントローラや、ＰＤＡの画面のタッチパネル、各種ボタンなどであり、ユーザがナビゲーションシステムを操作するために必要な情報をＣＰＵ６１ｄに送信する。
【００５８】
このようなナビゲーションシステムの概略の動作を説明する。
ＲＡＭ６１ｂまたはＲＯＭ６１ｃに記録されているナビゲーションプログラムをＣＰＵ６１ｄが実行すると、外部デバイスとのインターフェース６１ｅを介して、ＧＰＳ６０もしくは外部入力装置６４から得た情報をもとに、外部記憶装置６３から該当する地区の地図情報を読み込み、一旦ＲＡＭ６１ｂに書き込む。ＣＰＵ６１ｄが地図描画プログラムを実行すると、この情報をもとに地図の描画命令が３次元グラフィックＡＰＩに発行され、それにより３Ｄグラフィック描画エンジン６１ａに描画信号が送られ、地図が表示デバイス６２に表示される。
【００５９】
図４で示すナビゲーションシステムにおいて、外部記憶装置６３に記録された地図情報が、図１で示すシーングラフＤＢ１３、３次元地図ＤＢ１４、ＰＯＩ情報ＤＢ２３に相当する。さらに、図１の現在位置特定部１５、シーングラフ管理部１６、カメラ位置設定部１７、表示領域特定部１８、データ読み込み部１９、表示処理部２０は、図４のＲＡＭ６１ｂ並びにＲＯＭ６１ｃに、ＣＰＵ６１ｄが実行する命令群として記録されている。
【００６０】
なお、図１に示した地図データ加工部１０ａは、図示を省略したが、例えばＰＣ（パーソナルコンピュータ）であり、オリジナル３次元地図ＤＢ１１及びオリジナルＰＯＩ情報ＤＢ２１を記録する記憶装置を有する。さらに、例えばＣＰＵを有し、ＣＰＵの制御のもと、オリジナルの３次元地図データをシーングラフと描画データに分割し加工する。
【００６１】
次に、地図データ加工部１０ａにより分割され加工されるシーングラフの詳細及び３次元地図の描画データの詳細を説明する。
図５は、シーングラフの構造を示す図である。
【００６２】
ここでは、シーングラフを４分木に特化させたものとしている。
シーングラフは、全体の地図（Ｍａｐ）７０を複数のエリア（Ａｒｅａ）７１に分けている。そして各エリアは、緯度経度の形でエリアの示す領域が記述されている。図５の例では、ＮｏｒｔｈＷｅｓｔ７２ａで示される北西端の緯度経度と、ＳｏｕｔｈＥａｓｔ７２ｂで示される南東端の緯度経度とによって指定された領域としてエリアが記述される。そして、その領域を示す地図の構造が、４分木構造のノード（Ｎｏｄｅ）７３のツリーによって記述されている。１つのノードは、４つの子ノード７６を持つ、という構造が、設定されている４分木の階層の深さまで繰り返されている。以下、そのノードツリーの階層を、レベルという言葉で表現するものとする。ルートのノード７３のレベルを１、その４つの子ノード７６は、一様にレベル２、さらにその子ノードはレベル３、…といったように定義する。
【００６３】
これらのノードを構成する成分は、ノード以外に、そのノードを構成する３次元地図データのファイル名（Ｆｉｌｅ３Ｄ）７４と、その地図内に存在する建物や道路など、地図を構成する複数のオブジェクト（Ｏｂｊｅｃｔ）７５からなる。
【００６４】
図６は、オブジェクトのデータ構造の例である。
図のように、オブジェクト名（Ｎａｍｅ）７７、オブジェクトのＰＯＩとしてのＩＤ（ＰＯＩＩＤ）７８、オブジェクトを指し示すタグ（Ｔａｇ）７９と、そのオブジェクトのバウンディングボックス情報（ＢｏｕｎｄｉｎｇＢｏｘ）８０からなる。
【００６５】
図７は、オブジェクトのＰＯＩＩＤを説明する説明図である。
オブジェクト７５のＰＯＩＩＤ７８は、ＰＯＩ情報ＤＢ２３内でのＰＯＩ情報２３ａのＩＤを指す。例えば、このオブジェクト７５が東京タワーを指すものであれば、このＰＯＩＩＤ７８は、ＰＯＩ情報ＤＢ２３内の東京タワーに関するＰＯＩ情報２３ａのＩＤを指す。
【００６６】
図８は、オブジェクトのタグを説明する図である。
オブジェクト７５を指し示すタグ７９とは、この領域の３次元地図の描画データの中で、そのオブジェクト７５のデータが記載されている領域に記録されているタグのＩＤを指すものである。例えば、図５で示したＡｒｅａ７１の３次元地図の描画データが、図８のように３次元地図ＤＢ１４に格納されたＦｉｌｅ３Ｄ７４で指定された３次元地図の描画データ１４ａであるとすると、描画データ１４ａ内でオブジェクト７５のデータに相当する描画領域１４ａ−１にあらかじめタグが記述されており、そのタグのＩＤをシーングラフのタグ７９で指定する。
【００６７】
図９は、オブジェクトのバウンディングボックス情報を説明する図である。
バウンディングボックス情報８０は、図のように、そのオブジェクト７５ａ、７５ｂが存在する領域を包み込む立方体の座標群８１ａ、８１ｂのことである。この座標群８１ａ、８１ｂは、オブジェクト７５ａ、７５ｂ同士の空間内の位置関係の把握をするためのデータである。
【００６８】
以上の内容を踏まえ、シーングラフをＸＭＬ形式で記述すると以下のようになる。
図１０は、シーングラフで記述する対象の地図である。
また、図１１は、シーングラフのＸＭＬ記述の例である。
【００６９】
図１０では、全東京圏の地図８２を示しているが、地図８２は複数の領域８３に分割されている。これは、図５のＭａｐ７０が複数のＡｒｅａ７１に分かれていることに相当する。ここで、例として大田区北西部となる領域８３をＸＭＬ記述したものが図１１となる。
【００７０】
以下、図１１を図５のシーングラフを対応付けて説明する。
まず、Ａｒｅａ７１として、"大田区北西部"と記述し、その後、ＮｏｒｔｈＷｅｓｔ７２ａ、ＳｏｕｔｈＥａｓｔ７２ｂの緯度経度を指定する。さらに、その３次元地図の描画データが記述されているファイル名７４として"ｏｔａｋｕ＿ＮＷ＿ｒｏｏｔ"を記述する。その次に、複数のオブジェクト７５を指定する。
【００７１】
オブジェクトのデータ構造は、図６で示したように記述する。図１１の例では、オブジェクト名７７として、"ＪＲ大森駅"、"大森警察署"などがあり、以下それぞれに対して、ＰＯＩＩＤ７８、タグ７９、バウンディングボックス情報８０を記述する。例えば、オブジェクト名７７"ＪＲ大森駅"のオブジェクト７５の場合は、＜Ｏｂｊｅｃｔ  Ｎａｍｅ＝"ＪＲ大森駅"ＰＯＩＩＤ＝"ＪＲ＿ＯｍｏｒｉＳｔａｔｉｏｎ"Ｔａｇ＝"１"Ｂｂｏｘ＝"１２，１００，５，３０，５，４０，…"／＞などと記述する。このように、記述した場合、"ＪＲ大森駅"の描画データは、"ｏｔａｋｕ＿ＮＷ＿ｒｏｏｔ"内のタグ１が振られた領域に記録されていることになる。
【００７２】
上記のようなＡｒｅａ７１は、図５の４つの子ノード７６に対応して、さらに細かく４つの領域に分割される。そして、それぞれに対して前述したようなファイル名、オブジェクトが記述する。図１１の例では、ファイル名は、"ｏｔａｋｕ＿ＮＷ＿０１"、"ｏｔａｋｕ＿ＮＷ＿０２"、"ｏｔａｋｕ＿ＮＷ＿０３"、"ｏｔａｋｕ＿ＮＷ＿０４"と記述して、それぞれの子ノード７６の領域の３次元の描画データの所在を管理している。
【００７３】
以上でシーングラフの説明を終え、次に、３次元地図の描画データの詳細を説明する。
図１２は、３次元地図の描画データの構成を示す図である。
描画データは、地図データ加工部１０ａにおいて、例えば、ＣＰＵの制御のもと、バイナリ形式で記述される。その内容は大きく分けて、地図情報セグメント８４、ローディング情報セグメント８５、ランタイム情報セグメント８６の３つのセグメントからなる。
【００７４】
以下それぞれのセグメントの内容について説明する。
図１３は、地図情報セグメントの内容を説明する図である。
地図情報セグメント８４には、図のように、３次元グラフィックスが描画される右手座標系による３次元空間と、緯度経度で表現された地図が表現する実空間のスケール変換情報が入っている。具体的には、Ｘ軸、Ｙ軸、Ｚ軸で構成される一般的な３次元の右手座標系で表した場合、地表面は、ＸＺ平面８７上で表現されている。地図情報セグメント８４には、この空間に展開される地図領域の３次元地図の描画データの左上端点８８、右下端点８９の座標と、それに相当する実際のエリア９０の北西端の座標９１、南東端の座標９２の緯度経度が入っており、描画時にはこの情報をもとにスケール変換を行う。
【００７５】
図１４は、ローディング情報セグメントの内容を説明する図である。
ローディング情報セグメント８５には、オブジェクトの描画に実際に必要となる、オブジェクトの質感を表すマテリアル、テクスチャ、カラーといった情報のリストによって構成されている。ここには各々複数のマテリアル、テクスチャ、カラーが定義されており、定義された順に、定義された数まで番号付けがなされている。
【００７６】
マテリアルとは、材質の質感を表す環境、拡散、鏡面、放射の各カラーが、ＲＧＢもしくはＲＧＢＡの形式で指定されており、さらに光の反射を表す鏡面係数によって形成されており、マテリアルのリストの中にこれを複数定義することができる。
【００７７】
テクスチャのリストは、ビルの壁面のように、３次元のオブジェクトに貼り付けるための画像のリストである。実際のテクスチャは、ＪＰＥＧ（Joint Photographic Coding Experts Group）形式やＧＩＦ（Graphics Interchange Format）形式などといった既存、またはオリジナルの画像フォーマットで記録された画像データとして、図１で示した３次元地図ＤＢ１４に記録されており、テクスチャのリストではその画像のファイル名の一覧が記述されている。
【００７８】
カラーのリストには、オブジェクトのカラーの一覧が、ＲＧＢ、もしくはＲＧＢＡ形式で記録されている。
図１５は、ランタイム情報セグメントの内容を説明する図である。
【００７９】
図１２のランタイム情報セグメント８６には、実際に３次元地図を描画する描画命令と、描画命令のある範囲にＩＤをつけるためのタグ命令が存在する。タグ命令は、地図中の特定のビルや道路などといった地図中に埋め込まれているオブジェクトの描画範囲を指定するために指定されるものであり、タグのＩＤと範囲を指定する命令であり、セグメント内に複数埋め込むことができる。このタグのＩＤが、前述のシーングラフの中でＩＤ指定されたオブジェクトのタグに相当する。
【００８０】
描画命令は大きく分けて、１．描画開始命令、２．マトリックス・トランスフォーム命令群、３．行列のプッシュ・ポップ命令、４．マテリアル指定命令、５．テクスチャ指定命令、６．カラー指定命令、７．法線指定命令、８．テクスチャ頂点指定命令、９．頂点描画命令、１０．描画終了宣言命令からなる。これらの命令は、ＯＰＥＮ−ＧＬなどのような一般的な３次元グラフィックライブラリの基本的な描画命令と一致している。
【００８１】
以下、上記の描画命令についてそれぞれ説明する。
描画開始命令は、３次元グラフィックの描画の開始の宣言と、使用するプリミティブのタイプを宣言する。
【００８２】
図１６は、プリミティブの例を示す図である。
プリミティブとは、図１６のように、描画するポリゴンのタイプを指し、それぞれ頂点ｖ０、ｖ１、ｖ２、…で指定されたポイント、ライン、ラインストリップ、ラインループ、トライアングル、トライアングルストリップ、トライアングルファン、クアド、クアドストリップ、ポリゴン（Ｎ角形）などがある。
【００８３】
描画開始命令は、ＯＰＥＮ−ＧＬのｇｌＢｅｇｉｎ（）命令に相当する。また、描画終了宣言命令は、同じくＯＰＥＮ−ＧＬのｇｌＥｎｄ（）に相当する。この２つの命令に挟まれた、頂点描画命令により、３次元空間上にポリゴンが描画されている。
【００８４】
図１７は、マトリックス・トランスフォーム命令群を説明する図である。
マトリックス・トランスフォーム命令群は、図１７のように、空間上に描くオブジェクトの原点への移動、平行移動、回転、スケールの変換などといった３次元空間上の行列処理を行う命令群である。これらの命令を実行すると、その指定したパラメータの通りにオブジェクトを描く位置や、軸に対する回転角、倍率などのカレントのパラメータが設定される。また、これらを組み合わせて使うこともできる。
【００８５】
ＯＰＥＮ−ＧＬならば、これらはｇｌＬｏａｄＩｄｅｎｔｉｔｙ（）、ｇｌＴｒａｎｓｌａｔｅ（）、ｇｌＲｏｔａｔｅ（）、ｇｌＳｃａｌｅ（）命令に相当する。
行列のプッシュ・ポップ命令は、カレントのマトリックス・トランスフォーム命令のパラメータを保存または復帰させることができる命令で、ＯＰＥＮ−ＧＬならばｇｌＰｕｓｈＭａｔｒｉｘ（）、ｇｌＰｏｐＭａｔｒｉｘ（）がこれに相当する。これらを組み合わせることにより、ツリー上のシーングラフ構造を描画することが可能となる。
【００８６】
マテリアル指定命令、テクスチャ指定命令、カラー指定命令は、前述のローディング情報で指定したマテリアル、テクスチャ、カラーのＩＤを指定してオブジェクトのカレントの質感・テクスチャ・並びに・カラーとする。
【００８７】
法線指定命令、テクスチャ頂点指定命令、頂点描画命令は、前述した描画開始命令と、描画終了宣言命令の間で、ライティングの計算をするための法線、テクスチャ頂点の座標、指定されたプリミティブの空間上の頂点を表す。
【００８８】
図１８は、法線指定命令を説明する図である。
法線ｎ０、ｎ１、ｎ２は、描画する面９３や頂点ｖ０、ｖ１、ｖ２に対して指定される。
【００８９】
図１９は、テクスチャとテクスチャ座標を説明する図である。
テクスチャ頂点は、予めローディング情報セグメント８５で指定してあるテクスチャ画像９４のうち、予めテクスチャ指定命令で指定されているカレントの画像から、面９５に貼り付ける部分の座標ｔ０、ｔ１、ｔ２、ｔ３を指定し、その画像を貼り付けるように指定する。
【００９０】
カラーについても同様で、カラー指定命令で指定したカレントのカラーで指定された頂点や面を指定する。
また、頂点描画命令はカレントのプリミティブの頂点座標を指定する。
【００９１】
このような各描画命令を実行するバイナリ形式の描画命令は以下のようになる。
図２０は、バイナリ形式の描画命令の例である。
命令の基本的な長さは、基本セグメント長により、バイト数が決められている。例えば、このセグメント長が２バイトならば、命令を構成する基本的なセグメント（命令単位セグメント）９６の単位は２バイトとなる。また同時に、命令に必要な各種パラメータを表現するために、命令単位セグメント９６とは別に、パラメータ単位セグメント９７が定義される。これらを分ける理由は、描画命令のように種類が限られているものと異なり、空間座標などの実数を表現するためには４バイト以上のデータといった長さを必要とするのが一般的であるためである。
【００９２】
描画命令の種類は、図２０に示すように、その性質に応じて１セグメントの命令か、複数セグメントのものに分かれる。複数セグメントの命令は、命令単位セグメント＋複数のパラメータセグメントという構成になる。
【００９３】
例えば、描画終了宣言命令のように、パラメータを必要としない命令群は１セグメント命令となる。そしてプリミティブの種類をパラメータとする描画開始命令、ローディング情報セグメント８５で設定したマテリアル・テクスチャ・カラーのインデックスをパラメータとするマテリアル指定命令、テクスチャ指定命令、カラー指定命令は２セグメント命令になる。
【００９４】
同様に、テクスチャ画像の座標（２次元、ＸＹ座標）という２つのパラメータとするテクスチャ頂点指定命令や、描画命令ではないが、タグのＤと長さをパラメータとするタグ命令は３セグメント命令になる。そして頂点指定命令のように３次元空間座標といった３つのパラメータを必要とする命令群は４セグメント命令となる。以下、同様に命令の種類と必要性によってパラメータ数が決められる。
【００９５】
以上で３次元地図の描画データの説明を終える。
一方、オリジナルＰＯＩ情報も、前述の図６で示したようにオブジェクト７５に関連付けられたＰＯＩＩＤ７８に応じたＩＤを付加するように加工が行われる。
【００９６】
以上のようにして、地図データ加工部１０ａによって加工されたシーングラフ、描画データ及びＰＯＩ情報などのデータは、図４のナビゲーションシステムに提供され、外部記憶装置６３に記録される。提供の仕方としては、地図データ加工部１０ａで加工したこれらのデータを、ＣＤ−ＲＯＭ、ＤＶＤなどに記録して提供するか、インターネットなどのネットワークを介して提供するようにしてもよい。
【００９７】
なお、ネットワークを介して、リアルタイムでフレーム落ちがないように、逐次テクスチャ画像をダウンロードしながらナビゲーションシステムで表示処理に使うようにしてもよいが、処理速度などの点から、あらかじめナビゲーションシステムの外部記憶装置６３に記録してから用いるような前述の方法が望ましいといえる。
【００９８】
このように本発明の実施の形態では、図４で示したようなナビゲーションシステムで用いられるＣＰＵ６１ｄなどの処理が遅い情報処理装置６１に向けて、あらかじめ演算処理を少なくするためのデータ加工を行うので、ナビゲーションシステムの処理負担を減少できる。
【００９９】
次に、図４のナビゲーションシステムにおける処理の詳細を説明する。
まず、３次元地図の描画データの読み出し時における処理の流れを説明する。
シーングラフを用いた全体の処理については後述する。
【０１００】
図２１は、３次元地図の描画データの読み出し時における処理の流れを説明するフローチャートである。
３次元地図の描画データの読み出し処理が開始すると、ＣＰＵ６１ｄの制御のもと、インターフェース６１ｅを介して、外部記憶装置６３に記録されている３次元地図ＤＢ１４に記述されている描画データから、地図情報セグメント８４が読み出され、地図を描画するエリアの範囲が取得され、ＲＡＭ６１ｂに記録される（ステップＳ１）。
【０１０１】
次にローディング情報セグメント８５の読み出し・記録処理を行う。ここでは、ＣＰＵ６１ｄの制御のもと、図１４で示したようなマテリアルデータを読み出してＲＡＭ６１ｂに記録し（ステップＳ２）、次にテクスチャデータから必要となるテクスチャのファイル名を読み出し、それをロードしてＲＡＭ６１ｂに記録する（ステップＳ３）。続いてカラーデータを読み出し、ＲＡＭ６１ｂに記録する（ステップＳ４）。
【０１０２】
最後にランタイム情報セグメント８６を読み出し（ステップＳ５）、タグ命令が出現するか否かを判断し（ステップＳ６）、タグ命令が出現した場合はそのタグの位置とＩＤと長さをＲＡＭ６１ｂに記録した後にステップＳ８の処理に移り（ステップＳ７）。タグ命令が出現しない場合は、読み込んだランタイム情報をＲＡＭ６１ｂに記録し（ステップＳ８）、ＣＰＵ６１ｄは、ランタイム情報セグメント８６の読み込みが全て終了したか否かの判断を行い（ステップＳ９）、全て読み終わるまでステップＳ６からの処理を繰り返す。全て読み終えた場合には、３次元地図の描画データの読み出し処理を終了する。
【０１０３】
次に、通常の３次元地図の描画の処理の流れを説明する
図２２、２３は、通常の３次元地図の描画の処理の流れを説明するフローチャートである。
【０１０４】
３次元地図描画処理が開始すると、ＣＰＵ６１ｄの制御のもと、ＲＡＭ６１ｂの中からランタイム情報セグメント８６の先頭アドレスにアクセスしてランタイム情報を取得し（ステップＳ１０）、先頭部分の描画命令セグメントを読み出す（ステップＳ１１）。次にマトリックス・トランスフォーム命令並びにプッシュ・ポップ命令などといった、マトリックス関連命令が設定されているか否かを判断する（ステップＳ１２）。マトリックス関連命令が設定されている場合は、必要ならばそのパラメータを取得し（ステップＳ１３）、その命令を実行し（ステップＳ１４）、次の命令セグメントの読み込みを行い（ステップＳ１５）、ステップＳ１６の処理に進む。これにより、これから描画するプリミティブ群のカレントの位置・スケール・回転などを予め定義する。マトリックス関連命令が設定されていない場合はそのままステップＳ１６の処理に進む。
【０１０５】
ステップＳ１６の処理では、プリミティブ開始命令がなされているか否かを判断する。ここで、プリミティブ開始命令がなされている場合、その指定されたプリミティブのタイプを示すパラメータを取得し（ステップＳ１７）、カレントのプリミティブに設定する（ステップＳ１８）。その後、図２３のステップＳ１９の処理に移る。プリミティブ開始命令がなされていない場合、ステップＳ１２の処理に戻る。
【０１０６】
ステップＳ１８の処理でカレントのプリミティブが設定されると、これ以後、描画終了命令が発行されるまで、指定される頂点群は、指定されたプリミティブ群の頂点となる。例えば、図１６で示したようなプリミティブのタイプがトライアングルならば、その後指定される頂点群は、指定された順に３角形の各頂点となる。
【０１０７】
さらに、カラー・マテリアル・テクスチャ指定命令が読み込まれたか否かをステップＳ１９、Ｓ２２、Ｓ２５の処理で判断し、それぞれ読み込まれた場合、そのＩＤを示すパラメータを取得し（ステップＳ２０、Ｓ２３、Ｓ２６）、そのローディング情報セグメント８５で設定したものの中で、該当するカラー・マテリアル・テクスチャをカレントのテクスチャとして指定する（ステップＳ２１、Ｓ２４、Ｓ２７）。指定が終了すると、次の命令セグメントの読み込みを行い（ステップＳ３８）、ステップＳ１９の処理に戻る。
【０１０８】
ステップＳ１９、Ｓ２２、Ｓ２５の処理でカラー・マテリアル・テクスチャ指定命令のいずれでもない場合は、法線指定命令が読み込まれたか否かを判断し（ステップＳ２８）、これが読み込まれた場合、法線ベクトルのパラメータを取得し（ステップＳ２９）、カレントの頂点の法線とする（ステップＳ３０）。その後ステップＳ３８の処理に進む。
【０１０９】
法線指定命令ではない場合、同様に、テクスチャ頂点指定命令が読み込まれたか否かを判断し（ステップＳ３１）、これが読み込まれた場合、テクスチャ頂点座標をパラメータとして取得し（ステップＳ３２）、カレントの法線座標とする（ステップＳ３３）。その後ステップＳ３８の処理に進む。
【０１１０】
テクスチャ頂点指定命令ではない場合、最後にプリミティブの頂点描画命令が読み込まれたか否かを判断し（ステップＳ３４）、これが読み込まれた場合、頂点座標のパラメータを取得し（ステップＳ３５）、プリミティブの頂点を設定する（ステップＳ３６）。その後ステップＳ３８の処理に進む。例えば、プリミティブのタイプがトライアングルならば頂点が３つ指定された段階で、カレントのテクスチャ、カレントのマテリアル、またはカレントのカラーの３角形が描かれることになる。
【０１１１】
以上の処理が、描画終了宣言命令の出現まで繰り返される。すなわち、描画終了宣言命令の出現を判断し（ステップＳ３７）、描画終了宣言命令が出現しない場合は、ステップＳ３８の処理で、次の命令セグメントの読み込みが行われて、ステップＳ１９の処理に戻る。描画終了宣言命令が現れると、対応する３次元グラフィックＡＰＩがコールされ、図４で示したような３Ｄグラフィック描画エンジン６１ａに描画命令が発行される（ステップＳ３９）。
【０１１２】
このような処理が、全てのランタイム情報セグメント８６のデータが読み込まれるまで繰り返される。すなわち、ランタイム情報セグメント８６読み込みが終了したか否かを判断し（ステップＳ４０）、全てのランタイム情報セグメント８６のデータの読み込みが完了した場合は、描画処理を終了し、読み込みが終了していないデータがあれば、ステップＳ１２からの処理を繰り返す。
【０１１３】
次にシーングラフの構造と前述したような処理で表示される３次元地図の描画データを利用したナビゲーションシステムの処理の流れを説明する。
図２４、２５は、ナビゲーションシステムの処理の流れを説明する図である。
【０１１４】
まず、ＣＰＵ６１ｄの制御のもと必要なシステム起動時の処理を行う（ステップＳ５０）。このステップＳ５０の処理の具体的内容については後述する。
次に、例えば、ユーザにより外部入力装置６４で設定された視点の情報を、インターフェース６１ｅで受けて、ＣＰＵ６１ｄの制御のもと視点の確定を行う（ステップＳ５１）。その後、ＣＰＵ６１ｄは、図５で述べたようなシーングラフのノードツリーのうち、調べるノードのレベルＬをまず１（＝ルートノード）に設定し（ステップＳ５２）、続いてそのレベルＬにあるノードの数をノード数Ｎに代入する（ステップＳ５３）。ルートノードならばこの値は１、その子ノードならば４、…、というようになる。
【０１１５】
次に、定数Ｉ＝０とした後（ステップＳ５４）、レベルＬのＩ番目のノードをカレントノードに指定する（ステップＳ５５）。その後、カレントノードの距離評価計算を行う（ステップＳ５６）。距離評価計算の詳細は後述する。
【０１１６】
次に、カレントノードの距離評価計算の結果が描画可能範囲内か否かを判断する（ステップＳ５７）。つまり、その評価の結果、その評価値がレベルごとに設定された閾値以内、つまり、図４０で示したような、境界の距離よりも手前にあれば、そのエリアに対応したノードの地図の描画データを読み込む（ステップＳ５８）。次に、定数Ｉをインクリメントし（ステップＳ５９）、ステップＳ６０の処理で、定数ＩがレベルＬのノード数Ｎに達したと判断されるまで、ステップＳ５５からの処理を繰り返す。レベルＬのノード数Ｎに達した場合、レベルＬをインクリメントし（ステップＳ６１）、ステップＳ６２の処理で、全てのレベルの評価が終了されたと判断されるまで、ステップＳ５３からの処理を繰り返す。全てのレベルの評価が終了した場合、ステップＳ５８の処理で読み込んだ３次元地図の描画データをもとに、前述の図２１、図２２、図２３で示したような処理により、３次元地図を３Ｄグラフィック描画エンジン６１ａで描画させ、表示デバイス６２に表示する（ステップＳ６３）。
【０１１７】
次に、図２４のステップＳ５６における距離評価計算の詳細について説明する。
上記のような処理に必要な距離評価計算は、数多く繰り返されるために、できる限り高速に行う必要がある。そこで、以下のような方法を用いる。
【０１１８】
図２６は、距離評価計算に必要な要素を列挙した図である。
カレントのレベルをｍ、距離を評価すべきカレントの地表面１００の中心点Ｃの座標を（Ｃ０，Ｃ１，Ｃ２）と定義するものとする。次に、カメラの位置をＰ：（Ｐ０，Ｐ１，Ｐ２）、カメラの視線ベクトルＶを（Ｖ０，Ｖ１，Ｖ２）とする。
【０１１９】
さらに、視線ベクトルＶと同じＸ、Ｚ成分を持ち、ＸＺ平面と平行なベクトルをＶ'：（Ｖ０，０，Ｖ２）とし、Ｖ'を垂線とし、点Ｐを通る平面１０１を定義する。また、ＬＯＤの距離評価の基準となる平面を特に基準平面Ｓと呼ぶものとする。
【０１２０】
また、基準平面Ｓから、カレントの地表面１００までの距離をｄ、カレントのレベルｍの、地表面描画を実行するか否かを決定する基準線との距離をｌｍとする。
以上の定義をもとに、距離評価計算を以下のように定義する。
【０１２１】
ｌｍ＞ｄ＝｜Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２）｜／（Ｖ０２＋Ｖ２２）１／２                                                                ……（１）
すなわち、上式を満たしている場合、その平面の地図を描画するものとする。式（１）は、基準平面Ｓからカレントの地表面１００の中心点Ｃまでの距離を意味する。通常、ＬＯＤの計算は視点からの位置のみに依存するが、ナビゲーションの３次元地図の場合は、視点（カメラ位置Ｐ）はもとより、画面に近い部分の地図を精巧に描画したほうが有効であるという点と、視点（カメラ位置Ｐ）の位置が地表面１００に近く、その向きも地表面１００に平行であるか、地表面１００と視線ベクトルＶのなす角度が鋭角な鳥瞰視点を用いるため、式（１）による評価方法が最も有効となる。
【０１２２】
さらに、式（１）による距離計算では、計算の次元を２次元に限定でき、通常の距離評価計算の場合よりも１次元低くすることができ、計算量を減らすことができる。
なお、ＣＰＵ６１ｄで行う計算のコストは、一般的に加算・減算のものが軽く、乗算がこれに続き、式（１）で扱うような除算や平方根のような特殊な計算は重いとされる。そこで、式（１）は単純な計算により、このような重い負担を除去した同等の意味を持つ評価式を以下のようにして導出する。
【０１２３】
ｌｍ＞ｄ
⇔ｌｍ２＞ｄ２（ｌｍ，ｄ＞０より）
⇔ｌｍ２−ｄ２＞０
⇔ｌｍ２−（Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２））２／（Ｖ０２＋Ｖ２２）＞０
⇔ｌｍ２（Ｖ０２＋Ｖ２２）−（Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２））２＞０
……（２）
次に、式（２）中にある、繰り返し計算が不要なパラメータを予め固定した定数として定義する。距離評価計算は、視点確定（図２４のステップＳ５１）後、一度に多くの地表面を表すノードに対して行う。従って、その間、視点（カメラ位置Ｐ）と視線ベクトルＶは固定されるので、座標値であるＶ０とＶ２は固定となる。よって、（Ｖ０２＋Ｖ２２）も固定されるので、この段階で、この値を定数Ｗとおくものとする。
【０１２４】
さらに、ｌｍも予め固定された定数であるため、ｌｍ２も、レベルｍごとに固定された定数となる。よって、これをＬｍと定義し、この値は常に固定されるべきものであるので、システム起動処理（図２４のステップＳ５０）内であらかじめ定義しておく。同様にしてＶ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２）についてもこれを定数Ｄと定義すれば、以下の評価式が得られる。
【０１２５】
ＬｍＷ−Ｄ２＞０                                              ……（３）
図２７は、距離評価判定処理の詳細を説明するフローチャートである。
ここで示す距離評価判定処理は、描画処理全体を通じて分散して存在している処理であり、大きく分けて３段階に分けられる。
【０１２６】
まず、第１段階として、システム起動時の処理（図２４のステップＳ５０の処理に対応している）として、Ｌｍを導出する。ここでの処理では、まずレベルｍ＝１（ステップＳ７０）として、予め設定されているレベルｍごとの閾値ｌｍの２乗をＬｍに代入する（ステップＳ７１）。次にステップＳ７３の処理で、レベルｍが、予め用意されている４分木の最高レベルに達したと判断されるまで、レベルｍをインクリメントし（ステップＳ７２）、ステップＳ７１の処理を繰り返す。
【０１２７】
第２段階は、視点が定まったときに行う処理である。これは、図２４のステップＳ５１の処理の内部に相当する。ここでの処理では、カメラの位置を設定する（ステップＳ７４）ことで、視点（カメラ位置Ｐ）と視線ベクトルＶは固定されるので、Ｖ０、Ｖ２、Ｐ０、Ｐ２が固定値となり、Ｗが導出できる（ステップＳ７５）。
【０１２８】
第３段階は、各ノードへの距離評価計算処理を行う。これは、図２４のステップＳ５６の処理の内部に相当する。ここでの処理では、まず、描画エリアのノードを決定する（ステップＳ７６）。これにより、カレントの地表面１００の中心点Ｃが決定される。次に、Ｄを導出し（ステップＳ７７）、評価式である式（３）を実行する（ステップＳ７８）。そして、その結果が真であるか偽であるかを判断し（ステップＳ７９）、真であればそのノードの地図を描画させる（ステップＳ８０）。その後ステップＳ８１の処理で、描画が終了したと判断されるまで、ステップＳ７６からの処理を繰り返す。ステップＳ７９で偽と判断された場合には、ステップＳ８１の処理を行う。
【０１２９】
上記のようにして、式（３）の評価式を用いて距離評価計算を行うことにより、毎回の評価式が乗算２回、減算１回というＣＰＵ６１ｄへの負担が式（１）を用いた場合よりもはるかに軽く、そのため高速に行うことができる。
【０１３０】
前述したような、シーングラフで４分木を使ってＬＯＤを行った場合、以下のような問題がある。
通常用いられる４分木のＬＯＤは、図４１のように、評価する対象のエリアを機械的に４分割し、そのエリアの範囲内に収まらないものと、収まるものとで、ノードのツリーの上下関係を構築するような方法を用いる。しかし、３次元地図でこのような方法を用いると、例えば、東京タワーや、高層ビルなどのように、遠くから見えるランドマークの役割を果たすようなオブジェクトであるにもかかわらず、地表面に占める面積が小さいので、この機械的なデータ分割を用いたために、本来視界に入るべき場所にあるにもかかわらず、ＬＯＤの処理の関係上、画面から消えてしまうことがありうる。
【０１３１】
そこで、前述したシーングラフの４分木に高さの要素を加えた場合について以下説明する。
図２８は、高さの要素を加えた４分木を説明する図である。
【０１３２】
あるオブジェクト１１０が４分木を形成する境界に収まっていた場合、通常下位ノードに分類するが、ある閾値を越えていた場合は、上位のノードに分類する。
このようにすることにより、本来その位置に見えるはずの高層建築物が画面から消えてしまうことを防止することができる。
【０１３３】
次に、以上のような３次元地図のデータ構造において、ユーザの指定した地点ＰＯＩ情報を表示する方法について説明する。
図２９は、ユーザが指定した建造物を特定する際の処理を説明する図である。
【０１３４】
ユーザが例えば、表示デバイス６２に表示される画面上のある部分を指やスタイラスなどといった方法で指すと、ユーザがポイントしている点１２１の画面１２０上での座標を（ｘ，ｙ）とするものとする。このとき、図６で示したようなシーングラフに記されている建造物などをあらわす各オブジェクトのバウンディングボックスの射影が、この点に重なるようなオブジェクトのうち最も画面の手前にあるものを、その建物と特定することができる。図２９の場合は、オブジェクト１２６、１２７、１２８のうち、オブジェクト１２６、１２８のバウンディングボックス１２６ａ、１２８ａが画面１２０上で重なっているが、このうちバウンディングボックス１２６ａのほうが手前にあるため、この場合はオブジェクトＡが指定されたことになる。
【０１３５】
ユーザ指定による建造物特定の際の処理を以下フローチャートでまとめる。
図３０は、ユーザ指定による建造物特定の際の処理の流れを説明するフローチャートである。
【０１３６】
ＣＰＵ６１ｄは、まず外部入力装置６４などから入力されたユーザが指定したポイントに関する情報をもとに、図２９で示したように画面上の点の座標（ｘ，ｙ）を特定する（ステップＳ９０）。次に、特定した座標（ｘ，ｙ）をもとにシーングラフを探索する。まず、カレントのレベルを１と設定し（ステップＳ９１）、カレントのレベルに設定されているオブジェクトのバンディングボックスを取得する（ステップＳ９２）。そして、取得したバウンディングボックスを画面の３次元座標上に射影し（ステップＳ９３）、その図形がユーザの指定した点（ｘ，ｙ）と重なっているか否かを判断し（ステップＳ９４）、重なっていれば、そのオブジェクトのＩＤと座標をリストアップし、一時ＲＡＭ６１ｂに格納した後ステップＳ９６の処理に進む（ステップＳ９５）。重なっていなければそのままステップＳ９６の処理に進む。
【０１３７】
ステップＳ９６の処理では、全オブジェクトが終了したか否かを判断し、終了していなければ、次のオブジェクトのバウンディングボックスをカレントに設定し（ステップＳ９７）、ステップＳ９３からの処理を繰り返す。全オブジェクトが終了していれば、ステップＳ９８の処理に進む。
【０１３８】
ステップＳ９８の処理では、全レベルの探索が終了したか否かを判断し、終了していなければ、カレントのレベルをプラス１し（ステップＳ９９）、ステップＳ９２からの処理を繰り返す。全レベルの探索が終了していれば、ステップＳ９５の処理でリストアップされたオブジェクトのバウンディングボックスの座標の中から、３次元空間上で最も手前にあるものが選択されたものであると判断し、そのオブジェクトを抽出する（ステップＳ１００）。
【０１３９】
また、選択されたオブジェクトのＩＤは、３次元地図上のタグに対応しているので、これにより、選択したオブジェクトのみを抽出して画面に拡大表示したり、色を変えるなど特殊効果を施した描画を行うことが可能となる。
【０１４０】
３次元地図のインタラクションをこのように利用しようとした場合問題となるのは、広域の地図を表示した場合、都市部などにはあまりにも多くの建物がありすぎるために、特定の建物を指定するなどといった作業がしにくい場合がある。例えば、ユーザが画面上に出ている高層ビルを指しているつもりなのに、周辺に中小の建造物が多く存在するために、図３０のような処理を機械的に適用した場合、意中の建物を指定したと判定されることが難しい。そこで、図３０の処理のステップ９８において、探索の限界とするシーングラフの深さのレベルを実際に揃っているデータのレベルよりも低く設定すると、その探索範囲にある建物が、ある一定以上の広さ、もしくはある一定以上の高さの建物がほとんどとなり、ユーザにとっても探索が容易となると共に、探索するオブジェクト数を減らせるので、探索時間そのものも短くすることができる。その一例を以下に示す。
【０１４１】
図３１、図３２は、探索するレベルを限定した場合のオブジェクト探索を説明する図である。
図３１のような画面上で、ユーザが公園１３０を指定しようとした場合、周囲をビル１３１、１３２、１３３などのような様々な建造物に囲まれているので、指定が難しい。このような場合、図３２のように、公園１３０と、ビル１３１、１３２、１３３の間に明らかに大きさの差があれば、シーングラフでは異なる階層に属するので、シーングラフを探索の対象とするレベルとそれ以外のレベルに分ければ、ユーザは容易に公園１３０を指定できる。つまり、ある一定以上のレベルのシーングラフを探索しないようにすれば、目的のポイントを容易に指定することができる。
【産業上の利用可能性】
【０１４２】
カーナビゲーションシステム並びに歩行者に目的地までの道のりを示す歩行者ナビゲーションシステムなどといった、ナビゲーションシステムに適用できる。
【図面の簡単な説明】
【０１４３】
【図１】本発明の実施の形態の地図表示システムの機能を表す機能ブロック図である。
【図２】地図加工部で分割されたデータ構造の例である。
【図３】本発明の実施の形態のナビゲーションシステムの概略の構成図である。
【図４】本発明の実施の形態のナビゲーションシステムのハードウェア構成例である。
【図５】シーングラフの構造を示す図である。
【図６】オブジェクトのデータ構造の例である。
【図７】オブジェクトのＰＯＩＩＤを説明する説明図である。
【図８】オブジェクトのタグを説明する図である。
【図９】オブジェクトのバウンディングボックス情報を説明する図である。
【図１０】シーングラフで記述する対象の地図である。
【図１１】シーングラフのＸＭＬ記述の例である。
【図１２】３次元地図の描画データの構成を示す図である。
【図１３】地図情報セグメントの内容を説明する図である。
【図１４】ローディング情報セグメントの内容を説明する図である。
【図１５】ランタイム情報セグメントの内容を説明する図である。
【図１６】プリミティブの例を示す図である。
【図１７】マトリックス・トランスフォーム命令群を説明する図である。
【図１８】法線指定命令を説明する図である。
【図１９】テクスチャとテクスチャ座標を説明する図である。
【図２０】バイナリ形式の描画命令の例である。
【図２１】３次元地図の描画データの読み出し時における処理の流れを説明するフローチャートである。
【図２２】通常の３次元地図の描画の処理の流れを説明するフローチャートである（その１）。
【図２３】通常の３次元地図の描画の処理の流れを説明するフローチャートである（その２）。
【図２４】ナビゲーションシステムの処理の流れを説明する図である（その１）。
【図２５】ナビゲーションシステムの処理の流れを説明する図である（その２）。
【図２６】距離評価計算に必要な要素を列挙した図である。
【図２７】距離評価判定処理の詳細を説明するフローチャートである。
【図２８】高さの要素を加えた４分木を説明する図である。
【図２９】ユーザが指定した建造物を特定する際の処理を説明する図である。
【図３０】ユーザ指定による建造物特定の際の処理の流れを説明するフローチャートである。
【図３１】探索するレベルを限定した場合のオブジェクト探索を説明する図である（その１）。
【図３２】探索するレベルを限定した場合のオブジェクト探索を説明する図である（その２）。
【図３３】シーングラフで構築されるオブジェクトの例であり、（Ａ）は構築されるオブジェクトとして立体のロボットを示した図であり、（Ｂ）はオブジェクトを構成するパーツの一覧である。
【図３４】図３３のオブジェクトの構造を示すシーングラフの例である。
【図３５】シーングラフにより表現されたオブジェクトのパーツの配置の様子を示す図である。
【図３６】ＬＯＤの例を説明する図である。
【図３７】ＬＯＤの例を説明する図である。
【図３８】ＬＯＤの例を説明する図である。
【図３９】４分木を説明する図である。
【図４０】４分木を説明する図である。
【図４１】４分木を説明する図である。
【符号の説明】
【０１４４】
１０……地図表示システム、１０ａ……地図データ加工部、１０ｂ……地図データ表示部、１１……オリジナル３次元地図ＤＢ、１２……地図加工部、１３……シーングラフＤＢ、１４……３次元地図ＤＢ、１５……現在位置特定部、１６……シーングラフ管理部、１７……カメラ位置設定部、１８……表示領域特定部、１９……データ読み込み部、２０……表示処理部、２１……オリジナルＰＯＩ情報ＤＢ、２２……ＰＯＩ情報加工部、２３……ＰＯＩ情報ＤＢ
【図１】
2005056075.tif 000003
【図２】
2005056075.tif 000004
【図３】
2005056075.tif 000005
【図４】
2005056075.tif 000006
【図５】
2005056075.tif 000007
【図６】
2005056075.tif 000008
【図７】
2005056075.tif 000009
【図８】
2005056075.tif 000010
【図９】
2005056075.tif 000011
【図１０】
2005056075.tif 000012
【図１１】
2005056075.tif 000013
【図１２】
2005056075.tif 000014
【図１３】
2005056075.tif 000015
【図１４】
2005056075.tif 000016
【図１５】
2005056075.tif 000017
【図１６】
2005056075.tif 000018
【図１７】
2005056075.tif 000019
【図１８】
2005056075.tif 000020
【図１９】
2005056075.tif 000021
【図２０】
2005056075.tif 000022
【図２１】
2005056075.tif 000023
【図２２】
2005056075.tif 000024
【図２３】
2005056075.tif 000025
【図２４】
2005056075.tif 000026
【図２５】
2005056075.tif 000027
【図２６】
2005056075.tif 000028
【図２７】
2005056075.tif 000029
【図２８】
2005056075.tif 000030
【図２９】
2005056075.tif 000031
【図３０】
2005056075.tif 000032
【図３１】
2005056075.tif 000033
【図３２】
2005056075.tif 000034
【図３３】
2005056075.tif 000035
【図３４】
2005056075.tif 000036
【図３５】
2005056075.tif 000037
【図３６】
2005056075.tif 000038
【図３７】
2005056075.tif 000039
【図３８】
2005056075.tif 000040
【図３９】
2005056075.tif 000041
【図４０】
2005056075.tif 000042
【図４１】
2005056075.tif 000043
【手続補正書】
【提出日】平成16年9月28日(2004.9.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
例えば、最も近い距離にある場合、レベル１のオブジェクト１５０を描画し、それより遠い距離にある場合は、レベル２のオブジェクト１５１、さらに遠い距離にある場合は、レベル３のオブジェクト１５２を描画する。これにより、図３８のように、通常ならばどこにあっても全てのデータを描画しなくてはならないが、ＬＯＤを導入することにより、カメラから遠くにあるときは省略されたデータを、近くにあるときは詳細なデータを描画することが可能になり、見た目を損なうことなくグラフィック描画エンジンの負担を軽減することができるため、描画スピードを向上させることができるという効果が得られる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
図２６は、距離評価計算に必要な要素を列挙した図である。
カレントのレベルをｍ、距離を評価すべきカレントの地表面１００の中心点Ｃの座標を（Ｃ０，Ｃ１，Ｃ２）と定義するものとする。次に、カメラの位置をＰ：（Ｐ０，Ｐ１，Ｐ２）、カメラの視線ベクトルＶを（Ｖ０，Ｖ１，Ｖ２）とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１１９
【補正方法】変更
【補正の内容】
【０１１９】
さらに、視線ベクトルＶと同じＸ、Ｚ成分を持ち、ＸＺ平面と平行なベクトルをＶ'：（Ｖ０，０，Ｖ２）とし、Ｖ'を垂線とし、点Ｐを通る平面１０１を定義する。また、ＬＯＤの距離評価の基準となる平面を特に基準平面Ｓと呼ぶものとする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
また、基準平面Ｓから、カレントの地表面１００までの距離をｄ、カレントのレベルｍの、地表面描画を実行するか否かを決定する基準線との距離をｌｍとする。
以上の定義をもとに、距離評価計算を以下のように定義する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
ｌｍ＞ｄ＝｜Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２）｜／（Ｖ０２＋Ｖ２２）１／２                                                                ……（１）
すなわち、上式を満たしている場合、その平面の地図を描画するものとする。式（１）は、基準平面Ｓからカレントの地表面１００の中心点Ｃまでの距離を意味する。通常、ＬＯＤの計算は視点からの位置のみに依存するが、ナビゲーションの３次元地図の場合は、視点（カメラ位置Ｐ）はもとより、画面に近い部分の地図を精巧に描画したほうが有効であるという点と、視点（カメラ位置Ｐ）の位置が地表面１００に近く、その向きも地表面１００に平行であるか、地表面１００と視線ベクトルＶのなす角度が鋭角な鳥瞰視点を用いるため、式（１）による評価方法が最も有効となる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２３
【補正方法】変更
【補正の内容】
【０１２３】
ｌｍ＞ｄ
⇔ｌｍ２＞ｄ２（ｌｍ，ｄ＞０より）
⇔ｌｍ２−ｄ２＞０
⇔ｌｍ２−（Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２））２／（Ｖ０２＋Ｖ２２）＞０
⇔ｌｍ２（Ｖ０２＋Ｖ２２）−（Ｖ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２））２＞０
……（２）
次に、式（２）中にある、繰り返し計算が不要なパラメータを予め固定した定数として定義する。距離評価計算は、視点確定（図２４のステップＳ５１）後、一度に多くの地表面を表すノードに対して行う。従って、その間、視点（カメラ位置Ｐ）と視線ベクトルＶは固定されるので、座標値であるＶ０とＶ２は固定となる。よって、（Ｖ０２＋Ｖ２２）も固定されるので、この段階で、この値を定数Ｗとおくものとする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１２４
【補正方法】変更
【補正の内容】
【０１２４】
さらに、ｌｍも予め固定された定数であるため、ｌｍ２も、レベルｍごとに固定された定数となる。よって、これをＬｍと定義し、この値は常に固定されるべきものであるので、システム起動処理（図２４のステップＳ５０）内であらかじめ定義しておく。同様にしてＶ０（Ｃ０−Ｐ０）＋Ｖ２（Ｃ２−Ｐ２）についてもこれを定数Ｄと定義すれば、以下の評価式が得られる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
ＬｍＷ−Ｄ２＞０                                              ……（３）
図２７は、距離評価判定処理の詳細を説明するフローチャートである。
ここで示す距離評価判定処理は、描画処理全体を通じて分散して存在している処理であり、大きく分けて３段階に分けられる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２６
【補正方法】変更
【補正の内容】
【０１２６】
まず、第１段階として、システム起動時の処理（図２４のステップＳ５０の処理に対応している）として、Ｌｍを導出する。ここでの処理では、まずレベルｍ＝１（ステップＳ７０）として、予め設定されているレベルｍごとの閾値ｌｍの２乗をＬｍに代入する（ステップＳ７１）。次にステップＳ７３の処理で、レベルｍが、予め用意されている４分木の最高レベルに達したと判断されるまで、レベルｍをインクリメントし（ステップＳ７２）、ステップＳ７１の処理を繰り返す。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
第２段階は、視点が定まったときに行う処理である。これは、図２４のステップＳ５１の処理の内部に相当する。ここでの処理では、カメラの位置を設定する（ステップＳ７４）ことで、視点（カメラ位置Ｐ）と視線ベクトルＶは固定されるので、Ｖ０、Ｖ２、Ｐ０、Ｐ２が固定値となり、Ｗが導出できる（ステップＳ７５）。