【実施例1】
【0014】
実施例の地図データ生成システムは、コンピュータ上の画面を見ながらオペレータがマウス等のポインタで指示することで既存の3次元モデルを配置等して3次元地図データを生成するシステムである。実施例における地図データ生成システムは、3次元地図データを生成するためのエディタに相当する。以下の説明では、最初に、実施例における各種表示例を説明し、その後、実施例としての地図データ生成システムの構成およびソフトウェア処理内容について説明する。
【0015】
A 表示画面構成:
図1は地図データ生成システムの表示例を示す説明図である。コンピュータのディスプレイに表示される状態を示した。
図示する通り、地図データ生成システムの画面は、4つのビューV1〜V4で構成される。ビューV1は、現地を撮影した撮影画像を表示する。ビューV2(以下、「2Dビュー」と言うこともある)は、2次元地図を表示する。ビューV3は、3次元地図を表示する。この3次元地図は、透視投影の視線ベクトル方向および画角を、撮影画像のカメラ方向および画角と合わせてある。ビューV4は撮影画像とは異なる視線ベクトルおよび画角で3次元地図を表示する。ビューV3,V4を以下、3Dビューということもある。
本実施例では、4つのビューV1〜V4を別々のウィンドウで表示するようにしたため、その配置や表示/非表示の切り替えは自在に可能である。
ビューV2〜V4は、いずれの共通の3次元地図データを用い、視線ベクトルおよび画角を変えて透視投影したものである。2次元地図を表示するビューV2は、鉛直上方からの透視投影を表示しているに過ぎない。こうすることにより、共通のソフトウェア構成で、多様な表示を実現することができる。
図1では、地図表示として、3つのビューV2〜V4を例示したが、これらの一部を省略してもよいし、視線ベクトルおよび画角を変えた更に多くのビューを用意しても良い。
【0016】
B 各種モデルの配置例:
図2は3次元モデルの配置例を示す説明図である。
図2(a)は撮影画像を表示するビュー(
図1のビューV1に相当)を示している。この撮影画像中にある消火栓OBJaのモデルを表す3次元地図データを生成する場合を例にとって説明する。
図2(b)は3次元地図を表示するビュー(
図1のビューV3に相当)である。オペレータが、予め用意された3次元モデルの中から配置対象として「消火栓」を選択すると、消火栓モデルOBJbが、デフォルトの位置に表示される。この画面上で、消火栓モデルOBJbをマウスでドラッグしたり、これを配置すべき点をクリックしたりして、その配置場所を指定すると、
図2(c)の消火栓モデルOBJcに示すように、オペレータの指示に従って、モデルが移動し、配置される。
通常は、
図2(b)、
図2(c)に示すような3次元地図表示では、画面上の一点を指定したところで、3次元空間の座標を特定することはできないが、本実施例では、後述する通り、座標の指定に拘束条件を設けることにより、画面上で指定された点に応じて3次元空間内の一点が定まるようにしているのである。処理内容については後述するが、このように画面内でマウスを利用して3次元モデルを自在に配置可能とすることにより、3次元モデルの配置による処理負荷を軽減することが可能となる。
【0017】
図3は路面標示の自動生成例を示す説明図である。3次元地図を表示するビュー(
図1のビューV3に相当)を例示した。
道路面には、道路白線など種々の路面標示が描かれるが、これらの中には、予め設定した規則に従い道路形状に応じて自動的に生成可能なものもある。図の例では、道路ポリゴンPOLをオペレータが指定すると、道路の中央線L4を自動的に生成し、車線数に応じて、道路白線L1〜L3を生成する。また、道路ポリゴンと交差点との境界を基準として所定の位置に停止線L5を生成する。この他に横断歩道なども自動生成可能としてもよい。
図3では、
図1のビューV3に相当する画面内で道路ポリゴンPOLを指定する例を示したが、二次元地図を表示するビュー(
図1のビューV2)で道路ポリゴンを指定するようにしてもよい。
【0018】
図4は路面標示の配置例を示す説明図である。3次元地図を表示するビュー(
図1のビューV3に相当)において、矢印Mの路面標示を配置する例を示した。
矢印Mは、道路上にあるから、オペレータがマウスで矢印Mをドラッグしたり、画面上の特定の点をクリックしたりすることによって矢印Mの位置を特定することは可能である。しかし、矢印Mは、道路上のどこにでも配置できるものではなく、車線の中央に配置されるものである。また停止線よりも手前に配置され、交差点内には配置されない。本実施例では、路面標示を配置すべき場所がこのように制限されていることを考慮し、路面標示に対しては、所定の規則に従って配置を規制するようにした。図の例では、矢印Mは、道路白線L2、L3の中心線CLに沿って、停止線L5の手前側でのみ配置可能となる。オペレータが、中心線CLからずれた位置をマウスで指定した場合であっても、道路面上という拘束条件だけでなく、中心線CL上という拘束条件を考慮するため、矢印Mは図中のA方向にしか移動しない。マウスの位置を、中心線CLの位置に対応づける方法については、後述する。
このように、路面標示Mの配置場所に規制を設けることにより、路面標示Mを中心線CL上に容易に位置づけることが可能となり、配置の負荷軽減を図ることができる。
【0019】
C ガイドライン描画例:
図2〜4では、3次元地図の表示内で3次元モデルや路面標示を自動生成したり配置したりする例を示した。3次元地図を活用する場合には、単に3次元モデルによる表示だけでなく、経路案内で用いる案内用の矢印(以下、「ガイドライン」という)や、案内用の記号などを表示することが好ましい。これらのガイドラインや記号などは、二次元の図形となるため、3次元モデルにはなじまないものである。本実施例では、以下に示す通り、3次元表示とは別に、これらの二次元の画像を表示するためのレイヤを設けることによって、ガイドライン等を容易に表示可能としている。
【0020】
図5は二次元画像の描画例を示す説明図である。3次元地図の表示レイヤLA1(
図1のビューV3に相当)の上に、二次元用のレイヤLA2を用意する。二次元用のレイヤLA2には、図示するようにガイドラインを通常の2次元のポリゴンとして描画する。これらのレイヤLA1、LA2を重ねて表示することによって、3次元地図上にガイドラインを標示した画像IMGを生成することができる。
こうすることによって、ガイドライン等の二次元画像を、容易かつ見栄え良く表示することが可能となる。
【0021】
図6はガイドライン表示例(1)を示す説明図である。
図6(a)は、3次元空間内でガイドラインGLa1に相当するポリゴンデータを設定し、3次元表示させたものである。ガイドラインGLa1が曲がる部分や先端の矢印部分(図中のA1領域)で、形状が歪んでいることが分かる。
図6(b)は、二次元画像の表示レイヤ上で、ガイドラインGLb1のポリゴンを生成した例である。ガイドラインのポリゴンを二次元画像として用意すれば済むため、このように容易に滑らかな曲線を描くことができ、先端の矢印部分も違和感のない形状とすることができる。
図7はガイドライン表示例(2)を示す説明図である。
図7(a)は3次元空間内でガイドラインGLa2を設定したものである。領域A2部分で形状が歪んでいることが分かる。これに対し、二次元画像の表示レイヤを用いれば、
図7(b)のガイドラインGLb2のように滑らかな形状を実現することができる。
図8はガイドライン表示例(3)を示す説明図である。
図8(a)は3次元空間内でガイドラインGLa3を設定したものである。領域A3部分で形状が歪んでいることが分かる。これに対し、二次元画像の表示レイヤを用いれば、
図8(b)のガイドラインGLb3のように滑らかな形状を実現することができる。
【0022】
D 地図データシステムの構成:
図2〜8で示した種々の表示および3次元モデルの自動生成、配置を実現するためのシステム構成等について,以下、説明する。
図9は実施例における地図データ生成システムの構成を示す説明図である。実施例としての地図データ生成システム100は、コンピュータに、図示する種々の機能を実現するためのコンピュータプログラムをインストールすることによって実現できる。
【0023】
地図データ生成システム100は、4種類のデータベースを備えている。
撮影画像データベース110は、現地をディジタルカメラ等で撮影した静止画(以下、「撮影画像」という)の画像データ(以下、「撮影画像データ」)を格納するデータベースである。動画像から各場面を切り出し、静止画として表示可能なデータベースとして構成してもよい。撮影画像は、それぞれカメラの撮影条件、即ち、撮影方向(方位および仰ぎ角)と画角と対応づけて格納されている。
ガイドラインデータベース112は、
図6〜8で示したガイドラインのデータを格納するデータベースである。先に説明した通り、ガイドラインは、3次元地図上に重ねて描かれる2次元画像であるから、ガイドラインのデータは、2次元のポリゴンデータ(以下、「ガイドラインデータ」ということもある)として格納されている。
3次元地図データベース114は、3次元地図表示を実現するための3次元地図データを格納している。地表面を表す3次元地図データとともに、道路、建物、路面標示その他の地物を表す3次元地図データを格納する。地物の3次元地図データは、例えば、それぞれ3次元的に形状を規定するポリゴンデータと、地物の位置を表す座標値の形式で記憶させることができ、さらに地物の属性データを関連づけて記憶してもよい。3次元地図データベース114には、標識、信号機、ありふれた建物のように既存の3次元モデルを配置することで生成されるデータと、地物固有のポリゴンデータとが含まれる。3次元モデルを利用して生成されるデータについては、地物ごとにポリゴンデータを格納する形式に変えて、3次元モデルへのリンクを格納する方法をとってもよい。
3次元モデルデータベース116は、上述した汎用的な地物の3次元形状を表す3次元モデルを格納する。また、本実施例では、
図3で説明したように、一部の路面標示については自動生成することができるから、3次元モデルデータベース116は、自動生成の対象となる路面標示について、自動生成するための規則も格納している。
これらのデータベースは、コンピュータ自体に格納してもよいし、外部記憶媒体やサーバから供給するようにしてもよい。
【0024】
以下、コンピュータプログラムによって実現される各機能ブロックについて説明する。
撮影画像表示部102は、撮影画像データベース110に格納された撮影画像データを用いて、撮影画像ビュー(
図1のビューV1)を表示する。
3次元表示部104は、3次元地図データベース114に格納された3次元地図データを用いて3次元および2次元の地図(
図1のビューV2〜V4)をそれぞれ表示する。2DビューV2は、3次元地図データを用いて、視線ベクトルを鉛直下方に設定した状態で透視投影することによって描画することができる。3次元表示部104は、撮影画像データに対応づけて格納された撮影条件に合わせた視線ベクトルおよび画角でビューV3を表示する。こうすることにより、ビューV3に、撮影画像ビューV1に対応した3次元地図を表示することができる。
2次元表示部106は、ガイドラインデータベース112に格納されたガイドラインデータを2次元画像として表示する。この2次元画像を描画したレイヤが、3Dビュ−V3に重畳して表示されることによって、
図6〜8に示したガイドラインの画像が生成される。
【0025】
地図データ生成システム100では、オペレータは、ビューV3,V2などの画面上で、マウス等のポインタによってドラッグ、クリック等の操作を行い、3次元モデルの配置や路面標示の生成などを行う。座標入力部140は、上述の過程で、オペレータがマウス等のポインタで指定した点の座標を入力する。この座標値は、画面内で定義される「表示上の2次元座標」となる。
ガイドラインは単に2次元のポリゴンであるから、ガイドラインを生成する過程では、オペレータが指定した表示上の2次元座標を、そのままポリゴンの形状を定義するデータ入力として用いることができる。ガイドラインデータ生成部120は、このように座標入力部140で入力された座標値を用いて、ガイドラインのポリゴンを生成する機能を奏する。
一方、3次元モデルの配置等を指示する場合には、座標入力部140で入力された表示上の2次元座標だけでは、3次元モデルを配置する3次元座標を定義することはできない。そこで、座標変換部142は、予め用意された所定の拘束条件を適用することによって、表示上の2次元座標を、3次元座標値に変換する。
3次元地図データ生成部130は、変換された3次元座標に基づいて、以下の機能ブロックによって、3次元地図データを生成する。
3次元モデル配置部132は、3次元モデルデータベース116に格納された3次元モデルを、変換された3次元座標に基づいて3次元空間内で配置する。
道路沿モデル生成部134は、変換された3次元座標に基づいてオペレータが指定した道路を特定し、この道路に沿って設置される中央分離帯やガードレールなどの地物のデータを生成する。
路面標示生成部136は、オペレータが指定した道路に対して、路面標示を自動生成する(
図3参照)。
路面標示配置部138は、オペレータの指示に応じて、自動生成の対象となっていない路面標示を配置する(
図4参照)。
以上の3次元地図データ生成部130で生成される過程のデータは、3次元地図データベース114に反映され、3DビューV3,V4および2DビューV2に反映される。従って、オペレータは、これらのビュー2〜4を、撮影画像ビューV1と対比して見ながら、3次元地図データを生成することができる。
【0026】
E 3次元モデル配置処理:
次に、地図データ生成装置100の各機能を実現するための処理内容について説明する。まず、実施例における座標変換の考え方を示した後、各処理内容を説明する。
図10は座標変換の拘束条件を示す説明図である。3次元画像は、視点EPから2次元平面のビューVWに透視した状態で描かれる。視点EPと点Paを結ぶ直線LA上の点は全てビューVW内の点Paに透視されることになるから、ビューVW内で点Paが指定されたとしても、この点に基づいて、ただちに3次元空間内の一点を特定することはできない。
これに対し、例えば、指定された点は地表面上の点であるという拘束条件を与える場合を考える。ここでは、地表面を3次元座標の高さ(Z座標値)0の平面αであるとする。かかる拘束条件を考慮すると、点Paは、直線LA上かつ平面α上の点ということになるから、3次元空間内の点PAと特定することができ、その座標値を(XA、YA,0)と求めることができる。
同様に、地表面αだけではなく、3次元空間内の特定の平面β上の点であるという拘束条件を用いることもできる。この場合、ビューVW内で点Pbが指定されると、視点EPと点Pbとを結ぶ直線LBと平面βとの交点PBと特定することができ、その座標値(XB、YB,ZB)を特定することができる。
拘束条件は、このように平面で与えるだけでなく、直線で与えるようにしてもよい。例えば、地表面α内の直線L上の点であるとの拘束条件を与える場合を考える。かかる場合には、拘束条件に対応する直線Lを含み、地表面αに垂直な平面βを考え、平面β内で指定された点Pbに対応する点PBを求めることができる。そして、指定された点は、この点PBから直線Lに垂線を下ろした点PB1(XB,YB,0)と特定することができる。点PB1は、直線LB上の点ではないから、ビューVW内で指定された点と、3次元空間内で特定される点との間にはずれが生じることになる。これは、上述の拘束条件は、指定された位置は一次元の自由度しか有さず、実質的には3次元中の2次元の座標値を拘束することによるものである。しかしながら、かかる扱いをすることにより、ビューVW上で直線Lからずれた点を指定した場合でも、直線L上の点に変換されるため、点を指示する際のオペレータの負担を軽減することができる。
直線Lを拘束条件とする他、平面α上の点PCに対して高さを指定するという拘束条件とすることもできる。この場合には、点PCを通って、平面αに垂直な平面βを想定し、指定された点Pbに対応する平面β上の点PBを特定する。そして、この点PBの高さ値ZBを用いて、点PCの直上の点PC1(XC、YC,ZB)が指定されていると特定することができる。
以下で座標変換を言うときには、これらのうちのいずれかの変換方法を意味する。
【0027】
図11は3次元モデル配置処理のフローチャートである。コンピュータのCPUが実行する
図2に示した処理であり、
図9の3次元モデル配置部132の処理内容に相当する。
処理を開始すると、CPUは、オペレータの指示に従って、配置対象となる3次元モデル(以下、3次元モデルデータベース116に格納された3次元モデルから変形される可能性もあるという意味も含めて、「オブジェクト」ということもある)を選択し(ステップS10)、オペレータがマウス等で指定した表示上の2次元座標(x、y)を入力する(ステップS11)。この2次元座標値に応じて3次元モデルを配置する方法は、入力モードによって異なる。
位置指定の入力モードの場合は(ステップS12)、高さ=0との拘束条件によって座標変換を行う(ステップS13)。これは
図10で示した平面α上の点であるとの拘束条件での座標変換に相当する。この座標変換によって2次元座標(x、y)は、3次元座標(X,Y,0)に変換される。ここでは、地表面という拘束条件という意味で、高さ=0という拘束条件を例示したが、地表面のポリゴンデータが用意されている場合には、
図10における平面αの代わりに地表面のポリゴンデータを用いることによって、地表面との交点という拘束条件とすることもできる。
CPUは、得られた3次元座標(X,Y,0)に基づいて、オブジェクトを配置し(ステップS14)、3次元地図データベースを更新する(ステップS17)。この更新によって、3Dビューの画面も変更されることになる。
【0028】
一方、位置固定の入力モードの場合は(ステップS12)、オブジェクトの位置(X,Y)を用いて座標変換を行う(ステップS15)。これは
図10で示した平面α上の点PCに対して高さを与えるとの拘束条件で点PC1を求めるとの座標変換に相当する。この座標変換によって2次元座標(x、y)は、3次元座標(X,Y,Z)に変換される。
CPUは、得られた3次元座標(X,Y,Z)に基づいて、オブジェクトの高さを修正し(ステップS16)、3次元地図データベースを更新する(ステップS17)。指定された点に応じてオブジェクトを高さ方向にだけ拡大縮小するようにしてもよいし、オブジェクトを相似変化させるようにしてもよい。この更新によって、3Dビューの画面も変更されることになる。
【0029】
オブジェクトの位置または高さの修正が必要な場合は(ステップS18)、オペレータが新たな点を指定すれば、ステップS11以降の各処理によって、3次元空間内で自在にオブジェクトの位置または高さを変更することができる。
【0030】
図12は道路沿モデル生成処理のフローチャートである。コンピュータのCPUが実行する処理であり、
図9の3次元モデル配置部132の処理内容に相当する。
処理を開始すると、CPUは、オペレータの指示に従って、生成対象となるオブジェクトを選択する(ステップS30)。図の右側に、この処理で生成対象となるオブジェクトを例示した。ガードレールGや中央分離帯Cなど、道路RDに沿って配置されるオブジェクトが対象となる。それぞれ複数種類のタイプの中から選択可能としてもよい。
CPUは、オペレータがマウス等で指定した表示上の2次元座標(x、y)を入力し、これに基づいてオブジェクトを配置すべき道路ポリゴンを選択する(ステップS31)。2次元座標(x、y)が地表面であるとの拘束条件に基づいて3次元座標に変換して、指定された点を含む道路ポリゴンを特定すればよい。
次に、CPUは、道路ポリゴン、オブジェクトに基づきオブジェクトの生成ラインを設定する(ステップS32)。図中に設定方法を例示した。道路ポリゴンRDPが指定されている場合を考える。まず、オブジェクトは道路に沿って生成されるから、道路ポリゴンRDPを構成する点P1〜P4のうち道路の進行方向に沿う点列P1−P2およびP3−P4を特定する。中央分離帯Cが選択されている場合には、この点列の中央に位置する線CLを生成ラインとする。ガードレールGが選択されている場合には、点列を所定の距離だけ移動させた線GLを生成ラインとする。
CPUは、次に、オペレータが指定する表示上の2次元座標(x、y)を入力し(ステップS33)、オブジェクト生成ラインを用いて座標変換を行う(ステップS34)。これは、オブジェクト生成ライン上の点に高さを与える指定であるものとして、
図10で示した平面α上の点PCに対して高さを与えるとの拘束条件で点PC1を求めるとの座標変換に相当する。この座標変換によって2次元座標(x、y)は、3次元座標(X,Y,Z)に変換される。
CPUは、得られた3次元座標(X,Y,Z)に基づいて、オブジェクトの高さを設定し(ステップS35)、3次元地図データベースを更新する(ステップS36)。この更新によって、3Dビューの画面も変更されることになる。
オブジェクトの高さの修正が必要な場合は(ステップS37)、オペレータが新たな点を指定すれば、ステップS33以降の各処理によって、3次元空間内で自在にオブジェクトの高さを変更することができる。
【0031】
F 路面標示自動生成処理:
図13は路面標示自動生成処理のフローチャートである。コンピュータのCPUが実行する
図3に示した処理であり、
図9の路面標示生成部136の処理内容に相当する。
処理を開始すると、CPUは、オペレータの指示に従って、生成対象となるオブジェクトを選択する(ステップS50)。本実施例では、道路白線(中央線および車線帯の区分線)、および停止線などを生成対象とする。
次に、CPUは、オペレータがマウス等で指定した表示上の2次元座標に基づいてオブジェクトを配置すべき道路ポリゴンを選択する(ステップS51)。2次元座標が地表面であるとの拘束条件に基づいて3次元座標に変換して、指定された点を含む道路ポリゴンを特定すればよい。
CPUは、指定された道路ポリゴンに対して、予め設定された規則に従ってオブジェクトを自動生成する(ステップS52)。図中に道路白線の生成例を示した。まず、指定された道路の幅Wに対して半分の幅W/2の位置に、中央線LL1を生成することができる。また、中央線LL1から、車線数に応じて、予め指定された車線帯幅WLごとに区分線LL2,LL3を引く。停止線等も予め定められた規則に従って自動生成することができる。
【0032】
本実施例では、自動生成されたオブジェクトは、オペレータの指示に従って、修正可能とした。
オブジェクトを修正する場合には(ステップS53)、CPUは、オペレータがマウス等で指定した表示上の2次元座標(x、y)を入力し(ステップS54)、高さ=0との拘束条件によって座標変換を行う(ステップS55)。なお、オペレータは2Dビューで修正を指示してもよい。この場合も原理的には、座標変換は3Dビューで指定された場合と同様の方法で行うことになるが、アルゴリズム上は、2Dビュー内で得られた2次元座標(x、y)を原点移動させるだけで3次元座標に変換することが可能である。
CPUは、得られた3次元座標(X,Y,0)に最も近いオブジェクトを特定し、そのオブジェクトの端点を座標に従って修正する(ステップS56)。図中に修正例を示した。元来端点E1まで描かれていた道路白線LLに対し、(X,Y、0)なる点が指定されたとすると、この点から道路白線LLに下ろした垂線の足E2までオブジェクトの長さが修正される。この状態は、3次元地図データに反映され、3Dビュー、2Dビューなどの画面で確認することができる。
【0033】
G 路面標示配置処理:
図14は路面標示の配置処理例を示す説明図である。
図14(a)は路面上に矢印を配置する例を示した。まずオペレータは、路面標示の配置対象となる道路ポリゴンSPLaを指定する。道路ポリゴンSPLa上には、道路白線RL1、RL2が引かれているものとする。オペレータが、道路白線RL1、RL2内の点PP1を指定した場合を考える。オペレータは、矢印M1を、道路ポリゴンSPLaのうち道路白線RL1、RL2に囲まれた領域ARL内に配置することを意図していると考えられ、矢印は車線の中央に配置されることを考えると、特に、道路白線RL1、RL2の中央に当たる直線CRL上に配置することが指示されていると考えられる。そこで、地図データ生成システムは、指定された点PP1を直線CRL上に垂直に投影した点PC1を特定し、この点PC1に元ついて矢印M1を配置する。道路SPLaが指定された状態で、オペレータが領域ARL外を指定した場合は、直線CRLと道路ポリゴンSPLaとの交点PC2が指定されたものとして矢印M2を配置する。
【0034】
路面標示配置処理は、道路の中央線や車線区分線を配置対象としてもよい。この処理は、
図13で説明した路面標示自動生成処理によって適正な道路白線が生成されなかった場合などに利用することができる。
図14(b)は、道路ポリゴンSPLbが指定された場合に、道路白線を配置する処理例を示している。この例では、オペレータが指定した点が、いずれの道路白線に対応するものかを特定する必要がある。そこで、道路ポリゴンSPLb内をいくつかの領域に分け、領域ごとに道路白線に対応づけるものとした。例えば、中央線RL3は、道路のほぼ中央に引かれるものである。従って、道路幅Wの半分W/2の位置を中心として、車線幅WLの領域ARL3を設定した。領域ARL3内の点PP3が指定された場合には、オペレータは中央線RL3の修正などを指示しているものとして処理を行う。区分線RL4の場合には、中央線RL3の領域ARL3に隣接する車線幅WLの領域ARL4を設定し、この中の点PP4が指定された場合には、区分線RL4の修正などを指示しているものとして処理を行う。
このように指定された道路ポリゴン、オブジェクトの種類、指定された点に応じて、拘束条件を設けて処理を行うことにより、道路ポリゴンからはみだしたり、中央から偏った位置に配置されるなどの弊害を回避して、路面標示を配置することができる。
【0035】
図15は路面標示配置処理のフローチャートである。コンピュータのCPUが実行する
図4に示した処理であり、
図9の路面標示配置部138の処理内容に相当する。
処理を開始すると、CPUは、オペレータの指示に従って、生成対象となるオブジェクトを選択する(ステップS70)。本実施例では、路面に標示される矢印、速度規制の数字などを配置対象とする。
CPUは、オペレータがマウス等で指定した表示上の2次元座標に基づいてオブジェクトを配置すべき道路ポリゴンを選択する(ステップS71)。2次元座標が地表面であるとの拘束条件に基づいて3次元座標に変換して、指定された点を含む道路ポリゴンを特定すればよい。
【0036】
次に、CPUは、オペレータがマウス等で指定した表示上の2次元座標(x、y)を入力し(ステップS72)、高さ=0との拘束条件によって座標変換を行う(ステップS73)。なお、オペレータは2Dビューで座標を指示してもよい。
CPUは、オペレータに指定された道路ポリゴン、指定された座標値、およびオブジェクトの種類に基づいて拘束条件を設定し(ステップS74)、この拘束条件に基づいて座標を修正する(ステップS75)。例えば、
図14(a)の例であれば、指定された点を直線CRLに投影した点に修正することになる。
図14(b)の例であれば、指定された点を、その位置に応じて、道路白線RL3またはRL4上の点に修正することになる。
CPUは、修正後の座標に基づいてオブジェクトを配置し(ステップS76)、3次元地図データベースを更新する(ステップS77)。この更新によって、3Dビューの画面も変更されることになる。修正が必要な場合には(ステップS78)、オペレータが新たな点を指定すれば、ステップS72以降の各処理によって、オブジェクトの配置および形状を修正することができる。
【0037】
H ガイドラインデータ生成処理:
図16はガイドラインデータ生成処理のフローチャートである。コンピュータのCPUが実行する
図5〜8に示した処理であり、
図9のガイドラインデータ生成部120の処理内容に相当する。
処理を開始すると、オペレータはガイドラインの生成対象となる経路を選択する(ステップS90)。経路探索などを実行して経路が得られている場合には、経路探索結果を利用してもよいし、そうでない場合は、経路となるべきリンクを順次指定する方法をとってもよい。
CPUは、3次元空間内で指定された経路に対応するリンクを滑らかに結ぶ曲線を生成する(ステップS91)。図中に処理例を示した。リンクL1〜L4、ノードN1、N2からなる道路において、リンクL1、L3、L4を通る経路が指定されている場合、これらを滑らかに結ぶ曲線CGLが生成される。かかる曲線は、例えば、スプラインとすることができる。
CPUは、こうして生成された曲線を用いて3Dビューを表示する(ステップS92)。これによって
図6(a)、
図7(a)、
図8(a)に示した状態の画像を表示することができる。
【0038】
オペレータは、この画像中に示された曲線を下絵としてガイドラインを生成することができる。CPUは、オペレータが画面上で指定した点の二次元座標を入力し(ステップS93)、これに従って、ガイドラインの形状を決めるポリゴンデータを生成する(ステップS94)。この処理では、ガイドラインは2次元ポリゴンとして形成されるため、画面上で指定された二次元座標を座標変換する必要はない。
ガイドラインのポリゴンデータの生成が完了すると(ステップS95)、CPUは、このポリゴンを格納することでガイドラインデータベースを更新する(ステップS96)。下絵として用いた曲線のデータは、この処理と合わせて削除すればよい。これらの更新によって、3Dビューの画面には、
図6(b)、
図7(b)、
図8(b)に相当する画像が表示される。
図16の処理例では、3次元空間で設定した曲線を下絵として用いる例を示したが、ステップS90〜92を省略し、下絵なしでガイドラインを生成するようにしてもよい。また、ガイドラインの生成と合わせて、有料道路や速度規制などを示すマークなどを表すデータを生成するようにしてもよい。
【0039】
以上で説明した実施例の地図データ生成システムによれば、3Dビュー、2Dビュー(
図1参照)内でオペレータがマウス等でドラッグやクリック等の操作を行うことにより、3次元モデルの配置、修正、路面標示の自動生成、配置等を直感的に容易に行うエディタを提供することができる。従って、3次元地図データの生成負荷を軽減することができる。
また、3次元地図表示に重ねてガイドラインを表示することができ、このガイドライン用のデータは2次元画像として生成することができる。従って、3次元空間内で生成する場合に比べて滑らかで見やすいガイドラインを容易に作成することができる利点もある。
【0040】
以上、本発明の実施例について説明したが、上述の実施例で説明した種々の処理は、必ずしも全てを備えている必要はなく、一部を省略したり他の処理と置換したりしても構わない。また、上述の例において、ソフトウェア的に実行されている処理は、ハードウェア的に実行してもよいし、その逆も可能である。