【実施例1】
【0017】
A.システム構成:
図2は、3次元地図表示システムの構成を示す説明図である。本実施例の3次元地図表示システムは、経路探索を行い、3次元地図を表示しながら経路案内をするシステムである。3次元地図表示システムは、経路探索、経路案内機能を伴わず、単にユーザからの指示等に従って3次元地図を表示するシステムとして構成してもよい。
3次元地図表示システムは、先に
図1(b)に示したように、陰影壁ポリゴンを利用することによって、地物ポリゴンに陰影を付して立体感を与えた表示を実現できるものである。
実施例の3次元地図表示システムは、サーバ200と端末300とをネットワークNE2で接続して構成されている。端末300としては、スマートフォンを用いるものとしたが、携帯電話、携帯側情報端末、パーソナルコンピュータなど、地図を表示可能な種々の装置を利用可能である。
図2には、さらに、地図データを生成する地図データ生成装置100も併せて示した。地図データ生成装置100は、CPU、RAM、ROMを備えるパーソナルコンピュータを利用して構成されており、原地図データベース104から、描画用地図データベースを生成する装置である。描画データ生成装置100は、ネットワークNE1でサーバ200に接続されており、生成された描画用地図データベースは、サーバ200に格納される。
地図データ生成装置100、サーバ200、端末300には、それぞれ図示する機能ブロックが備えられている。本実施例では、これらの機能ブロックは、それぞれの機能を実現するためのコンピュータプログラムをインストールすることによってソフトウェア的に構成したが、これらをハードウェア的に構成することも可能である。
また、本実施例で示した地図データ生成装置100、サーバ200、端末300が備える機能は、一例に過ぎず、全ての機能を1台で実現するスタンドアロンの装置として構成することも可能である。また、図示したよりも多数のサーバ等からなる分散システムとして構成してもよい。
以下、各装置ごとに構成を説明する。
【0018】
(1)地図データ生成装置100について
原地図データベース104は、地図で描画されるべき地物の形状等を表す地物ポリゴンデータ、ラインデータを格納したデータベースである。本実施例では、3次元の形状を表す3次元地図データを格納するものとした。原地図データベース104を、そのまま用いて透視投影等によって3次元地図を描画することも可能なデータである。本実施例では、立体感を向上させるため、地図データ生成装置100で、加工し、描画用地図データベース103を生成するのである。
コマンド入力部101は、原地図データベース104に対する加工について、オペレータからの指示等を入力する。
陰影壁ポリゴン生成部102は、原地図データベース104に格納された地物ポリゴンに、陰影を付すための陰影壁ポリゴンを設定する。
描画用地図データベース103は、原地図データベース104に対して、陰影壁ポリゴン生成部102によって生成された陰影壁ポリゴンを加えた描画用の地図データを格納する。
送受信部105は、サーバ200との間でデータの送受信を行う。本実施例では、描画用地図データベース103に格納された地図データは、送受信部105により、ネットワークNE1経由でサーバ200に送信される。
【0019】
(2)サーバ200について
地図データベース210には、描画用地図データベース211およびネットワークデータ213が格納されている。描画用地図データベース211には、地物の3次元形状を表す地物ポリゴンデータおよび文字データが格納されている。また、地図データ生成装置100で生成された陰影壁ポリゴンも同様に格納されている。ネットワーデータ213は、道路をリンクおよびノードで表した経路探索用のデータである。
データベース管理部202は、地図データベース210のデータの入出力を管理する。
経路探索部203は、ネットワークデータ213を利用して、端末300のユーザから指定された出発地から目的地までの経路を探索する。経路探索は、ダイクストラ法など周知の方法によって行うことができる。
送受信部201は、ネットワークNE2を介して、端末300との間で、種々のデータやコマンドの送受信を行う。
【0020】
(3)端末300について
主制御部304は、端末300に備えられた各機能ブロックの動作を統合制御する。
送受信部301は、ネットワークNE2を介してサーバ200との間で、データやコマンドの送受信を行う。
コマンド入力部302は、ユーザからの経路案内等に関する指示などを入力する。指示としては、例えば、経路案内の出発地、目的地の指定、地図表示時の表示スケールの指定などが挙げられる。
位置・通行情報取得部303は、GPS(Global Positioning System)等のセンサから端末300の現在位置を取得したり、ネットワークNE2経由で、交通渋滞や通行規制の情報を取得する。
地図情報記憶部305は、地図を表示する際に、サーバ200から取得した3次元地図データベース211を一時的に記憶する。本実施例では、端末300は、予め全ての地図データを記憶しておくのではなく、地図の表示範囲に応じて必要となる地図データを適宜、サーバ200から取得する。地図情報記憶部305は、こうして取得された地図データを記憶している。また、併せて、経路探索の結果も記憶する。
表示制御部306は、地図情報記憶部305に記憶されている地図データを用いて、端末300のディスプレイ300dへの地図表示を行う。地図表示は、指定された視点位置、視線方向からの透視投影によって行う。本実施例では、表示制御部306としては、グラフィックスライブラリを用いており、法線ベクトルが視線方向側を向いているポリゴンのみを描画するようになっている。
【0021】
B.陰影壁ポリゴンの設定例:
本実施例では、陰影壁ポリゴンを用いて、地物ポリゴンに陰影を付与する。陰影ポリゴンとは、一方の面からのみ視認可能な架空の板状のポリゴンである。以下に陰影壁ポリゴンの例を示す。
【0022】
図3は、陰影壁ポリゴンの設定例を示す説明図である。川および池などの水系に陰影壁ポリゴンを設定した例を示した。
図示するように、川を表す川ポリゴン、および池を表す池ポリゴンは、地表面ポリゴンの上に重ねて描かれる。現実には、地表面よりも川および池の水面の方が低い位置にあるが、3次元地図表示では、現実の上下関係とは異なり、地表面よりも川ポリゴン、池ポリゴンの方が上に存在する。
本実施例の陰影壁ポリゴンは、このように地表面の上に位置するポリゴンの周囲に設定されている。
【0023】
図の下方に示すように、池ポリゴンに対しては、その周囲を囲むように、鉛直に陰影壁ポリゴンが設定される。陰影壁ポリゴンは、内側、つまり池ポリゴン側から見た時に不透過となっており、外側から見たときに透過状態となるよう設定されている。本実施例では、法線ベクトルが視線方向を向いているときにのみ描画されるから、上述した透過状態の設定は、陰影壁ポリゴンについては、池の内側を向くように法線ベクトルを設定すればよい。
陰影壁ポリゴンの内側は、陰影を表現する色、例えば、黒またはグレーなどに設定されている。池の法面を表すよう茶色系の色等に設定してもよい。また、法面を表すテクスチャを貼り付けても良い。
【0024】
図中に視線方向VAから見た状態の投影
図IMGAを示した。陰影壁ポリゴンの内側のみが視認できるため、視線方向VAから見た場合は、図示するように池を越えた対岸側の陰影壁ポリゴンが描かれ、池に陰影が付与される。
逆に、視線方向VBから見た場合は、投影
図IMGBに示されるように、対岸の陰影壁ポリゴンが描かれ、池に陰影が付与される。
このように、池の周囲に陰影壁ポリゴンを設定することにより、視線方向に応じた陰影が付与されることになる。
【0025】
図の上方に示すように、川ポリゴンに対しては、その両側に沿うように、鉛直に陰影壁ポリゴンを設定する。陰影壁ポリゴンは、内側、つまり川ポリゴン側から見た時に視認可能であり、外側から見たときに透過状態となるよう設定されている。かかる設定は、陰影壁ポリゴンについて、それぞれ川の内側を向くように法線ベクトルを設定すればよい。
陰影壁ポリゴンの内側は、陰影を表現する色、例えば、黒またはグレーなどに設定されている。川の法面を表すよう茶色等に設定してもよい。
図の右上側に川を視線方向VCから見た状態の投影
図IMGCを示した。視線方向VCから見た場合、川ポリゴンの手前側に設定された陰影壁ポリゴンは描画されず、対岸側の陰影壁ポリゴンが描画される。陰影壁ポリゴンも、地物ポリゴンと同様、透視投影によって描かれるから、遠方に行くほど細く描画され、陰影自体にも遠近感が付与される。
【0026】
実施例の陰影壁ポリゴンは、
図3で示したように、ポリゴンの境界に設定されるものには限られない。
図4は、陰影壁ポリゴンの設定例(2)を示す説明図である。
図4(a)は、道路ポリゴンに沿って、端から一定の距離の位置に陰影壁ポリゴンを設定した例を示している。陰影壁ポリゴンは、道路中央側から見た時に不透過となっており、端側から見た時に透過状態となる。
図4(a)の右側に、道路の投影図を例示した。中央側から見ると、陰影壁に沿って陰影が付与され、道路の両側にある歩道が擬似的に表現される。
図4(b)は、道路ポリゴンの両端を結ぶように一定間隔で数枚の陰影壁ポリゴンを設定した例を示している。陰影壁ポリゴンは、道路ポリゴンの一方側から見た時に不透過となっており、逆側から見た時に透過状態となっている。
図4(b)の右側に、道路の投影図を例示した。道路に交差する方向に一定間隔で陰影が付与され、階段が擬似的に表現される。
図4(c)は、経路案内表示に沿って陰影壁ポリゴンを設定した例を示している。経路案内表示は、図示するようにラインデータで表されている。陰影壁ポリゴンは、経路案内表示に沿って、その下側に鉛直に設定されている。陰影壁ポリゴンは、一方から見た時に不透過とされ、反対面から見た時に透過とされる。図(c)の右側に、経路案内表示の投影図を例示した。陰影壁ポリゴンは、この例では、屈曲した中央の部分だけ不透過となるため、この部分に陰影が付与され、立体感のある経路案内が表現される。
【0027】
陰影壁ポリゴンは、
図3、4で例示した態様に限られない。陰影ポリゴンは、この他にも種々の部位に設定することができ、これによって多種多様な陰影を付すことが可能である。
【0028】
C.陰影壁ポリゴン生成処理:
陰影壁ポリゴンは、地図データ生成装置100によって生成される。本実施例では、オペレータが手動で陰影壁ポリゴンを生成する方法と、自動または半自動で生成する方法とをとることができる。以下にそのための処理について説明する。
【0029】
図5、6は、陰影壁ポリゴン生成処理のフローチャートである。陰影壁ポリゴン生成部102が主として実行する処理であり、ハードウェア的には地図データ生成装置100のCPUが実行する処理である。
処理を開始すると、地図データ生成装置100は、原地図データを読み込む(ステップS10)。
次に、地図データ生成装置100は、陰影壁ポリゴン設定箇所を入力する(ステップS11)。設定箇所は、例えば、境界ポリゴンを指定する方法、ライン形状を指定する方法をとることができる。境界ポリゴンとは、
図3において川ポリゴン、池ポリゴンなど陰影壁を外周に設定する対象となる地物ポリゴンを言う。
境界ポリゴンの指定は、オペレータが個別に行うものとしてもよいし、地物ポリゴンの種別などに基づいて、自動判定するものとしてもよい。例えば、陰影壁ポリゴンを設定すべき地物ポリゴンとして、川・池などの水系のポリゴン(海を除く)、半地下の道路などの種別を予め指定しておき、ステップS11の処理では、地図データ生成装置100は、この指定に従って、境界ポリゴンを選択するのである。
ライン形状の指定とは、
図4に示したように、ポリゴンの境界以外の部分に陰影壁ポリゴンを設定する場合の指定方法である。本実施例では、オペレータが個別に手動で指定するものとした。
図4に示したように、陰影壁ポリゴンの設定方法についてパターン化できる場合には、こうしたパターンを使用して、ライン形状を簡易に設定可能としてもよい。例えば、予め歩道というパターンを用意しておくことにより、陰影壁ポリゴンを設定すべき道路を選択した後、「歩道」パターンを選択すると、道路の端から所定の位置に陰影壁ポリゴンの形状を自動設定する方法などが考えられる。
【0030】
境界ポリゴンが指定された場合、地図データ生成装置100は、境界ポリゴンの外周形状を特定する(ステップS12)。 グラフィックスライブラリの制約上、ポリゴンは、三角形の集合として定義されている。従って、陰影壁ポリゴンを設定すべき位置を特定するためには、三角形の集合からなる境界ポリゴンの外周を特定する必要がある。
図中に外周形状の特定方法を示した。ここでは、頂点P11、P12、P13からなる三角形ポリゴンPOL1と、頂点P21、P22、P23からなる三角形ポリゴンPOL2とが存在する場合を例に考える。地図データ生成装置100は、まず、任意の頂点をスタートポイントとして選択する。例えば、点P11を選択したとする。
次に、その頂点を含むポリゴンに沿って辺を移動し、次の頂点を探索する。ポリゴンには、法線ベクトルの方向に応じた、各辺には向きが設定されているため、次の頂点の探索は、辺に設定された方向に沿って行えばよい。図の例では、点P12が探索される。
地図データ生成装置100は、同様の処理を繰り返すが、移動しようとする辺が、隣接するポリゴンと共有されているときは、隣接のポリゴンに移行する。図の例では、点P12から次の点P13に移動しようとしても、この辺は、隣接するポリゴンPOL2の点23,点P21を結ぶ辺と共有されている。従って、地図データ生成装置100は、点P12から隣接するポリゴンPOL2の点P21に移行して、同様の処理を行うのである。点P12、P21は、ポリゴンの構成上は別個の点となるが、ポリゴンPOL1、POL2の間にすき間がある訳ではないので、両者は同じ座標値を持つ点である。
点P21に移行すると、地図データ生成装置100は、同様の処理により、点P22、P23と探索を行う。こうした処理の結果、点P11、P12(P21)、P22、P23(P13)という外周形状を特定することができる。
【0031】
図6に移り、地図データ生成装置100は、陰影壁ポリゴンの立ち上げを行う(ステップS13)。
図中に立ち上げの様子を示した。ステップS12で特定された外周形状、およびステップS11で指定されたライン形状を、鉛直方向に高さHだけ平行移動することによって生成される側面を、陰影壁ポリゴンとするのである。立ち上げの高さHは、投影表示した際の陰影の幅に影響する。高さHが高くなれば、陰影の幅が広くなり、視認しやすくなるものの、高くし過ぎれば、違和感を与えることになる。逆に高さHを低くすれば、陰影付与による立体感が弱くなり、さらに低くすれば陰影が認識できないほどになる。高さHは、これらの事象を考慮しながら、設定すればよい。
【0032】
陰影壁ポリゴンの形状が定まると、地図データ生成装置100は、属性を設定する(ステップS14)。本実施例における属性としては、透過/不透過設定と、不透過面色設定である。
透過/不透過設定とは、いずれの面から見た時に透過状態とするかの設定であり、陰影壁ポリゴンの法線ベクトルの設定とも同義となる。図の例では、閉曲面として陰影壁ポリゴンが設定されており、外側が透過状態、内側が不透過に設定されている。透過/不透過の設定は、オペレータが個別に指定してもよいし、閉図形の場合には、内側を不透過とするというように、予めパターン化しておき、これに基づいて自動設定するようにしてもよい。
ライン形状を立ち上げて陰影壁ポリゴンを設定する場合も同様である。
【0033】
不透過面色設定とは、陰影壁ポリゴンにおいて、不透過と設定されている面の色などの設定を言う。陰影壁ポリゴンは、陰影を付与するためのものであるから、黒、グレーなどとしておいてもよい。また、陰影壁ポリゴンが設定される場所に応じて、土を表す茶色の明度が低い色など、種々の色を選択可能である。併せて、不透過面に貼り付けるテクスチャを指定してもよい。
地図データ生成装置100は、以上の処理によって陰影壁ポリゴンの生成が完了すると、これを描画用地図データベースに格納して(ステップS15)、処理を完了する。
【0034】
D.地図表示処理:
以上で設定された陰影壁ポリゴンを利用して地図を表示する場合の処理について説明する。
図7は、地図表示処理のフローチャートである。この処理は、経路探索を行った後の経路案内の際に用いることもできるし、経路探索と無関係に地図を表示する際に用いることもできる。この処理は、主として端末300の表示制御部306が実行する処理であり、ハードウェア的には端末300のCPUが実行する処理である。
【0035】
処理を開始すると、端末300は、視点および視線方向を入力し(ステップS20)、これに基づいて描画用地図データを読み込む(ステップS21)。本実施例では、まず地図情報記憶部305を参照し、データに不足がある場合に、サーバ200から必要なデータをダウンロードするものとした。
【0036】
次に、端末300は、陰影表示モードの判定を行う(ステップS22)。陰影表示モードとは、陰影壁ポリゴンを用いて陰影を付与した表示を行うモードのことである。本実施例における陰影の付与(
図1参照)は、擬似的なものであるため、視線方向によっては、表示に不自然さを与えることもある。従って、端末300は、陰影の付与を行ってよいか否かを表示条件、特に視線方向等に基づいて判断する。
もっとも、ステップS22の判定を省略し、必ず陰影表示モードを採用するものとしても構わない。
【0037】
図中に陰影表示モードを採用するための条件を図中に示した。
まず、陰影壁有のモードがユーザによって指定されていることである。ユーザが陰影付与を希望していないときは、陰影表示モードを採用する必要はないからである。
第2に、3次元地図表示モードが指定されていることである。陰影は、3次元地図において立体感を付与するためのものであり、2次元での表示が指定されているような場合には陰影表示モードを採用する必要はないからである。
第3に、視線方向の鉛直方向からの角度αが、所定の最小値αmin以上、最大値αmax以下となっていることである。角度αは、小さくなるほど地図は2次元表示に近づく。従って、角度αが最小値αminよりも小さい場合には、陰影を効果的に付与できなくなるため、陰影表示モードを採用しないものとした。逆に、角度αが大きい場合は、視線方向は水平に近づき、
図1に示したような鳥瞰図ではなく、いわゆるドライバーズビューの状態となる。かかる状態では、陰影壁ポリゴンは、陰影として視認されるのではなく、壁として視認される可能性がある。そこで、本実施例では、角度αが大きい場合も陰影表示モードを採用しないものとした。このように、本実施例では、陰影表示モードを行う視線方向には、制限を設けている。制限値αmin、αmaxは、上述した不自然な表示とならないよう、任意に選択すればよい。
本実施例では、以上の3つの条件を全て満たすときに、陰影表示モードを用いるものとした。判断の条件は、これらに限るものではなく、この中の一部の条件だけを用いても良いし、他の条件を追加してもよい。
【0038】
以上の処理が完了すると、端末300は描画用地図データを投影して、地図描画処理を行う(ステップS23)。この際、陰影表示モードが採用されているときは、陰影壁ポリゴンを表示する。また、その他の場合には、陰影壁ポリゴンは表示対象から除外することになる。
陰影壁ポリゴンを表示する際には、不透過に設定された面のみが描かれ、
図1に示した陰影が付与された地図が表示される。透過に設定されている面は描かれないため、地図表示に違和感を与えない。
陰影壁を生成しながら表示してもよい。
【0039】
以上、本発明の実施例について説明した。以上の実施例1で説明した種々の特徴点は、必ずしも全てを備えている必要はなく、適宜、一部を省略したり組み合わせたりして適用してもよい。
また、本発明は、上述した実施例の他、種々の変形例をとることができる。例えば、実施例においてソフトウェアで処理している部分はハードウェアに置き換えることもでき、その逆も可能である。実施例では、端末300のディスプレイ300dに地図を表示する例を示したが、プリンタ等に地図を印刷する場合にも
実施例では、陰影壁ポリゴンが予め地図データ生成装置100によって生成されている例を示したが、陰影壁ポリゴンを適宜、生成しながら地図表示を行うようにしてもよい。かかる態様は、例えば、地図データ生成装置100における陰影壁ポリゴン生成部102をサーバ200に設けることにより実現できる。
実施例では、陰影壁ポリゴンが地物ポリゴン面に鉛直に設定されている例を示したが、陰影壁ポリゴンは鉛直方向から斜めに傾けて設定してもよい。