(57)【特許請求の範囲】
【請求項１】
コンピュータを使用して三次元地図データを修正する三次元地図データ処理方法であって、
二次元化コンピュータプログラム（１２）が、図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データ（１０）を原地図記憶装置から読み出し、高さを除去した二次元地図データを生成する二次元化演算ステップと、
オペレータの指示を受け入れて当該二次元地図データを編集し、編集済み二次元地図データ（１４）を二次元地図記憶装置に出力する編集ステップ（１６）と、
線データの平面位置及び図形属性を対比演算する第１の対比コンピュータプログラム（１８）が、当該編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データ（１０）に同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置（２４）に格納する第１の対比演算ステップと、
線データの平面位置を対比演算する第２の対比コンピュータプログラム（２０）が、当該編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さデータを補充した三次元地図データを生成し、当該三次元地図記憶装置（２４）に格納する第２の対比演算ステップと、
線データを要素点単位に平面位置に関して対比演算する第３の対比コンピュータプログラム（２２）が当該編集済み二次元地図データ（１４）の線データの各要素点を当該原地図データ（１０）の線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データの各要素点に当該原地図データ（１０）の対応する要素点の高さデータを補充した三次元地図データを生成し、当該三次元地図記憶装置（２４）に格納する第３の対比演算ステップと、
高さデータを補充する高さ補充コンピュータプログラム（２８）が、当該三次元地図記憶装置（２４）に記憶される三次元地図データから内挿により当該編集済み二次元地図データ（１４）の所定の要素点の高さを決定及び補充し、当該三次元地図記憶装置（２４）に格納する高さ内挿演算ステップ
とを具備することを特徴とする三次元地図データ処理方法。
【請求項２】
当該線データが、始点と終点を有する線データ、始点、終点及び１以上の中間点を有する線データ、並びに、２以上の中間点を有する閉じた線データの何れかからなる請求項１に記載の三次元地図データ処理方法。
【請求項３】
当該第１の対比コンピュータプログラム（１８）が、当該第１の対比演算ステップにおいて、対応する線データを当該原地図データ（１０）から発見できなかった当該編集済み二次元地図データ（１４）の線データを未処理記憶手段（２６）に記憶し、
当該第２の対比コンピュータプログラム（２０）が、当該第２の対比演算ステップにおいて、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて、当該原地図データ（１０）と対比演算する
請求項１又は２に記載の三次元地図データ処理方法。
【請求項４】
当該第２の対比コンピュータプログラム（２０）が、当該第２の対比演算ステップにおいて、対応する線データを当該原地図データ（１０）から発見できなかった当該編集済み二次元地図データ（１４）の線データを未処理記憶手段（２６）に記憶し、
当該第３の対比コンピュータプログラム（２２）が、当該第３の対比演算ステップにおいて、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて、当該原地図データ（１０）と対比演算する
請求項１乃至３の何れか１項に記載の三次元地図データ処理方法。
【請求項５】
当該第１、第２及び第３の対比演算ステップの少なくとも１つは、当該編集済み二次元地図データ（１４）の注目する線データの、当該原地図データ（１０）から対応する要素点を発見できない要素点に対し、当該原地図データ（１０）の対応する線データの隣接する要素点から高さデータを推測する請求項１乃至４の何れか１項に記載の三次元地図データ処理方法。
【請求項６】
更に、建物立体化コンピュータプログラム（３０）が、当該三次元地図記憶装置（２４）に記憶される三次元地図データのうちの地表面を構成する線データから、地表面を示す多面体を形成し、当該建物を示す線データの当該地表面への投影から壁面を示すデータを生成し、当該壁面を示すデータを当該建物を示す線データに補充することにより、建物を示す線データを立体化する建物立体化処理ステップを具備する請求項１乃至５の何れか１項に記載の三次元地図データ処理方法。
【請求項７】
コンピュータを使用して三次元地図データを修正する三次元地図データ処理装置であって、
図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データ（１０）を原地図記憶装置から読み出し、高さを除去した二次元地図データを生成する二次元化演算手段（１２）と、
オペレータの指示を受け入れて当該二次元地図データを編集し、編集済み二次元地図データ（１４）を二次元地図記憶装置に出力する編集手段（１６）と、
当該編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データ（１０）に同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置（２４）に格納する第１の対比演算手段（１８）と、
当該編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置（２４）に格納する第２の対比演算手段（２０）と、
当該編集済み二次元地図データ（１４）の線データの各要素点を、当該原地図データ（１０）の線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データの各要素点に当該原地図データ（１０）の対応する要素点の高さデータを補充した三次元地図データを生成し、三次元地図記憶装置（２４）に格納する第３の対比演算手段（２２）と、
当該編集済み二次元地図データ（１４）の所定の要素点の高さを、当該三次元地図記憶装置（２４）に記憶される三次元地図データから、内挿により決定及び補充し、当該三次元地図記憶装置（２４）に格納する高さ内挿演算手段（２８）
とを具備することを特徴とする三次元地図データ処理装置。
【請求項８】
当該線データが、始点と終点を有する線データ、始点、終点及び１以上の中間点を有する線データ、並びに、２以上の中間点を有する閉じた線データの何れかからなる請求項７に記載の三次元地図データ処理装置。
【請求項９】
更に、当該編集済み二次元地図データ（１４）の内の未処理のデータを記憶する未処理記憶手段（２６）を具備する請求項７又は８に記載の三次元地図データ処理装置。
【請求項１０】
当該第２の対比演算手段（２０）は、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて当該原地図データ（１０）と対比演算した結果に従い、当該未処理記憶手段（２６）の記憶情報を更新する請求項９に記載の三次元地図データ処理装置。
【請求項１１】
当該第３の対比演算手段（２２）は、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて、当該原地図データ（１０）と対比演算した結果に従い、当該未処理記憶手段（２６）の記憶情報を更新する請求項９又は１０に記載の三次元地図データ処理装置。
【請求項１２】
当該高さ内挿演算手段（２８）は、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて高さを内挿する請求項９乃至１１の何れか１項に記載の三次元地図データ処理装置。
【請求項１３】
当該第１、第２及び第３の対比演算手段の少なくとも１つは、当該編集済み二次元地図データ（１４）の注目する線データの、当該原地図データ（１０）から対応する要素点を発見できない要素点に対し、当該原地図データ（１０）の対応する線データの隣接する要素点から高さデータを推測する請求項７乃至１２の何れか１項に記載の三次元地図データ処理装置。
【請求項１４】
更に、生成された三次元地図データのうちの建物を示す線データを立体化する建物立体化処理手段であって、当該三次元地図記憶装置（２４）に記憶される三次元地図データのうちの地表面を構成する線データから、地表面を示す多面体を形成し、当該建物を示す線データの当該地表面への投影から壁面を示すデータを生成し、当該壁面を示すデータを当該建物を示す線データに補充する建物立体化処理手段を具備する請求項７乃至１３の何れか１項に記載の三次元地図データ処理装置。
【請求項１５】
図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データ（１０）をベースとして、高さを除去され修正された編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データ（１０）に同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さを補充した３次元地図データを生成し、三次元地図記憶装置（２４）に格納する第１の対比演算機能（１８）と、
当該編集済み二次元地図データ（１４）の線データを当該原地図データ（１０）の線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データに当該原地図データ（１０）の対応する線データの高さデータを補充した３次元地図データを生成し、三次元地図記憶装置（２４）に格納する第２の対比演算機能（２０）と、
当該編集済み二次元地図データ（１４）の線データの各要素点を、当該原地図データ（１０）の線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データ（１０）にある場合に、当該編集済み二次元地図データ（１４）の線データの各要素点に当該原地図データ（１０）の対応する要素点の高さデータを補充した三次元地図データを生成し、三次元地図記憶装置（２４）に格納する第３の対比演算機能（２２）と、
当該三次元地図記憶装置（２４）に記憶される三次元地図データから、内挿により当該編集済み二次元地図データ（１４）の所定の要素点の高さを決定及び補充し、当該三次元地図記憶装置（２４）に格納する高さ内挿演算機能
とをコンピュータに実現させるための三次元地図データ処理プログラム。
【請求項１６】
更に、
当該原地図データ（１０）から、高さを除去した二次元地図データを生成する二次元化演算機能（１２）と、
オペレータの指示を受け入れて当該二次元地図データを修正し、当該編集済み二次元地図データ（１４）を生成する編集機能（１６）と、
を具備することを特徴とする請求項１５に記載の三次元地図データ処理プログラム。
【請求項１７】
当該線データが、始点と終点を有する線データ、始点、終点及び１以上の中間点を有する線データ、並びに、２以上の中間点を有する閉じた線データの何れかからなることを特徴とする請求項１５又は１６に記載の三次元地図データ処理プログラム。
【請求項１８】
当該第１の対比演算機能（１８）が、対応する線データを当該原地図データ（１０）から発見できていない当該編集済み二次元地図データ（１４）の線データを未処理記憶手段（２６）に記憶し、
当該第２の対比演算機能（２０）が、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて、当該原地図データ（１０）と対比する
ことを特徴とする請求項１５乃至１７の何れか１項に記載の三次元地図データ処理プログラム。
【請求項１９】
当該第２の対比演算機能（２０）が、対応する線データを当該原地図データ（１０）から発見できていない当該編集済み二次元地図データ（１４）の線データを未処理記憶手段（２６）に記憶し、
当該第３の対比演算機能（２２）が、当該未処理記憶手段（２６）に記憶される当該編集済み二次元地図データ（１４）の線データについて、当該原地図データ（１０）と対比する
ことを特徴とする請求項１５乃至１８の何れか１項に記載の三次元地図データ処理プログラム。
【請求項２０】
当該第１、第２及び第３の対比演算機能の少なくとも１つは、当該編集済み二次元地図データ（１４）の注目する線データの、当該原地図データ（１０）から対応する要素点を発見できない要素点に対し、当該原地図データ（１０）の対応する線データの隣接する要素点から高さデータを推測する請求項１５乃至１９の何れか１項に記載の三次元地図データ処理プログラム。
【請求項２１】
更に、当該三次元地図記憶装置（２４）に記憶される三次元地図データのうちの地表面を構成する線データから、地表面を示す多面体を形成し、当該建物を示す線データの当該地表面への投影から壁面を示すデータを生成し、当該壁面を示すデータを当該建物を示す線データに補充することにより、建物を示す線データを立体化する建物立体化処理機能を具備することを特徴とする請求項１５乃至２０の何れか１項に記載の三次元地図データ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、三次元地図データを編集・修正する方法、装置及びプログラムに関する。
【０００２】
【従来の技術】
航空写真に基づく地図データは、一般に次のようにして作成される。すなわち、先ず、航空写真を図化機にセットし、写真上の道路境界線及び建物外周線などをこれらの線上に沿った特徴点を結ぶ線でトレースし、トレースした線を、所謂、ベクトルデータ形式で表現される線データとしてコンピュータに取り込み、編集元となる三次元の原地図データとする。次に、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）上で、原地図データを二次元に変換し、その二次元地図データを適宜に修正して、二次元地図データベースを完成する。
【０００３】
【発明が解決しようとする課題】
最近、地図データに対して、三次元の情報、即ち高さの情報に対する需要が高まって来ており、三次元地図データを効率良く作成する手法の確立が望まれている。
【０００４】
三次元地図データを作成するには、二次元地図データベースの作成工程をそのまま三次元地図データに適用する方法が考えられる。即ち、三次元の原地図データを三次元の状態で直接、編集して、三次元の地図データベースを作成する。具体的には、原地図データをＣＡＤ上で三面図として表示し、三面図上で原地図データの要素となる各図形（地図構成データ）の各頂点の平面位置及び高さ（即ち、（ｘ，ｙ，ｚ）座標値）を修正する方法、立体視し、その立体表示上で各図形の各頂点の平面位置及び高さを修正する方法、及び両者を併用する方法が考えられる。
【０００５】
しかし、何れの方法も、個々の図形の各頂点データ（（ｘ，ｙ，ｚ）座標値）を人手で修正することに相当するので、少数の三次元データを処理するのには使用できても、地図データのように多数の要素図形を含む三次元データで、個々の図形の各頂点データを人手で修正するのは実質的に不可能である。
【０００６】
本発明は、より簡易な操作で三次元地図データを作成できる三次元地図データ処理方法、装置及びプログラムを提示することを目的とする。
【０００７】
【課題を解決するための手段】
本発明に係る三次元地図データ処理方法は、コンピュータを使用して三次元地図データを修正する三次元地図データ処理方法であって、二次元化演算ステップ、編集ステップ、第１、第２及び第３の対比演算ステップ、並びに高さ内挿演算ステップを具備することを特徴とする。
二次元化演算ステップでは、二次元化コンピュータプログラムが、図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データを原地図記憶装置から読み出し、高さを除去した二次元地図データを生成する。
編集ステップでは、オペレータの指示を受け入れて当該二次元地図データを編集し、編集済み二次元地図データ（１４）を二次元地図記憶装置に出力する。
第１の対比演算ステップでは、線データの平面位置及び図形属性を対比演算する第１の対比コンピュータプログラムが、当該編集済み二次元地図データの線データを当該原地図データの線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データに同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置に格納する。
第２の対比演算ステップでは、線データの平面位置を対比演算する第２の対比コンピュータプログラムが、当該編集済み二次元地図データの線データを当該原地図データの線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データにある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さデータを補充した三次元地図データを生成し、当該三次元地図記憶装置に格納する。
第３の対比演算ステップでは、線データを要素点単位に平面位置に関して対比演算する第３の対比コンピュータプログラムが当該編集済み二次元地図データの線データの各要素点を当該原地図データの線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データにある場合に、当該編集済み二次元地図データの線データの各要素点に当該原地図データの対応する要素点の高さデータを補充した三次元地図データを生成し、当該三次元地図記憶装置に格納する。
高さ内挿演算ステップでは、高さデータを補充する高さ補充コンピュータプログラム（２８）が、当該三次元地図記憶装置に記憶される三次元地図データから内挿により当該編集済み二次元地図データの所定の要素点の高さを決定及び補充し、当該三次元地図記憶装置に格納する。
【０００８】
編集済み二次元地図データは、編集ステップにより、水平位置を修正されたデータであり、水平面内での作業であるので、この修正作業は容易である。第１の対比演算ステップでは、図形属性を含めて編集済み二次元地図データと原地図データを対比演算するので、対比の確度が高い。この対比は、自動の逐次処理で実現されるので、大量のデータがあっても高速に処理できる。編集済み二次元地図データに確度の高い原地図データの高さデータを補充するので、水平位置及び高さ共に高い精度の三次元地図データを得ることができる。
【０００９】
第２の対比演算ステップでは、図形属性を対比しないので、第１の対比演算ステップよりも対応の確度は低くなる。しかし、編集済み二次元地図データに原地図データの対応する線データの高さデータを補充するので、第１の対比演算ステップよりも確度が低いものの、高い精度の高さデータを具備する三次元地図データを得ることができる。
【００１０】
第３の対比演算ステップでは、線データを要素点単位で対比するので、第２の対比演算ステップの結果よりは確度が落ちる。しかし、オペレータがマニュアルで操作するよりも迅速に且つ高い確度で、各要素点の高さを決定できる。
【００１２】
本発明に係る方法は、好ましくは、生成された三次元地図データのうちの建物を示す地図構成データを立体化する建物立体化処理ステップであって、生成された三次元地図データのうちの地表面を構成するデータから、地表面を示す多面体を形成し、当該建物を示す地図構成データの当該地表面への投影から壁面を示すデータを生成し、当該建物を示す地図構成データに補充する建物立体化処理ステップを具備する。
【００１３】
本発明に係る三次元データ処理装置は、コンピュータを使用して三次元地図データを修正する三次元地図データ処理装置であって、図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データを原地図記憶装置から読み出し、高さを除去した二次元地図データを生成する二次元化演算手段と、オペレータの指示を受け入れて当該二次元地図データを編集し、編集済み二次元地図データを二次元地図記憶装置に出力する編集手段と、当該編集済み二次元地図データ（１４）の線データを当該原地図データの線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データに同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置に格納する第１の対比演算手段と、当該編集済み二次元地図データの線データを当該原地図データの線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データにある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さデータを補充した三次元地図データを生成し、三次元地図記憶装置に格納する第２の対比演算手段と、当該編集済み二次元地図データの線データの各要素点を、当該原地図データの線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データにある場合に、当該編集済み二次元地図データの線データの各要素点に当該原地図データの対応する要素点の高さデータを補充した三次元地図データを生成し、三次元地図記憶装置に格納する第３の対比演算手段と、当該編集済み二次元地図データの所定の要素点の高さを、当該三次元地図記憶装置に記憶される三次元地図データから、内挿により決定及び補充し、当該三次元地図記憶装置に格納する高さ内挿演算手段とを具備することを特徴とする。
【００１８】
本発明に係る装置は、好ましくは、生成された三次元地図データのうちの建物を示す地図構成データを立体化する建物立体化処理手段であって、生成された三次元地図データのうちの地表面を構成するデータから、地表面を示す多面体を形成し、当該建物を示す地図構成データの当該地表面への投影から壁面を示すデータを生成し、当該建物を示す地図構成データに補充する建物立体化処理手段を具備する。
本発明に係る三次元地図データ処理プログラムは、図形属性付きの線データとして表現される複数の地図構成データを有する三次元の原地図データをベースとして、高さを除去され修正された編集済み二次元地図データの線データを当該原地図データの線データと平面位置及び図形属性に関して対比演算し、対比演算の結果として当該原地図データに同じ図形属性を具備する対応する線データがある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さを補充した３次元地図データを生成し、三次元地図記憶装置に格納する第１の対比演算機能と、当該編集済み二次元地図データの線データを当該原地図データの線データと平面位置に関して対比演算し、対比演算の結果として対応する線データが当該原地図データにある場合に、当該編集済み二次元地図データの線データに当該原地図データの対応する線データの高さデータを補充した３次元地図データを生成し、三次元地図記憶装置に格納する第２の対比演算機能と、当該編集済み二次元地図データの線データの各要素点を、当該原地図データの線データの要素点と平面位置に関して対比演算し、対比演算の結果として対応する要素点が当該原地図データにある場合に、当該編集済み二次元地図データの線データの各要素点に当該原地図データの対応する要素点の高さデータを補充した三次元地図データを生成し、三次元地図記憶装置に格納する第３の対比演算機能と、当該三次元地図記憶装置に記憶される三次元地図データから、内挿により当該編集済み二次元地図データの所定の要素点の高さを決定及び補充し、当該三次元地図記憶装置に格納する高さ内挿演算機能とをコンピュータに実現させるための三次元地図データ処理プログラムである。
【００１９】
【実施例】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【００２０】
図１は、本発明の一実施例の概略構成ブロック図を示す。航空写真を図化機により読み取って作成した三次元地図データ（原地図データ）が記憶装置１０に格納される。以下では、記憶装置１０に記憶される原地図データを「原地図データ１０」と表記する。
【００２１】
原地図データ１０は、複数の地図構成データからなる。地図構成データには、線データＬｉと点データＴｉとがある。線データＬｉは、線の始点Ｐｓを示す三次元座標（ｘ，ｙ，ｚ）、線の終点Ｐｅを示す三次元座標（ｘ，ｙ，ｚ）及び図形属性を必須要素として具備し、オプションとして１以上の中間点Ｐｍの座標（ｘ，ｙ，ｚ）を具備する。図形属性は、その線が、建物、道路、河川、水田及び畑等の境界線並びに等高線の何れであるかを示す。例えば、ある線が、道路と水田の両方の境界を示す場合がありうる。この場合、道路境界であり、且つ水田の境界であることを示す図形属性値を別途、設ける。すなわち、本実施例では、図形属性は１つの値のみを採り得るが、その値は、複数の境界を規定し得る。汎用的には、図形属性として、複数の値を採り得る構成も考えられる。
【００２２】
点データＴｉは、建物名称・道路名等の注記及び種々の地図記号などを地図に重ねて表示するのに使用される。点データＴｉは、三次元座標（ｘ，ｙ，ｚ）と、その位置に表示すべき文字列ｔｅｘｔからなる。その文字列に注記及び地図記号等が格納される。
【００２３】
図形属性により、地物は以下の次の３種類に分類できる。即ち、
（１）地表面を構成する図形
（２）景況により変化する図形
（３）地表面とは高さが異なる図形
である。本明細書では、地表面を構成する図形を「地表高図形」と呼び、景況により変化する図形を「任意高図形」と呼び、地表面とは高さが異なる図形を「地物高図形」と呼ぶことにする。どの図形をどれに分類するかは、ユーザが自由に設定できる。一例として、道路・河川を地表高図形とし、柵を任意高図形とし、建物・高架を地物高図形とする。
【００２４】
二次元化装置１２が、記憶装置１０に記憶される原地図データから高さｚの情報を除去して二次元化し、二次元地図データを作成する。作成された二次元地図データは記憶装置１４に格納される。以下、記憶装置１４に記憶される二次元地図データを「二次元地図データ１４」又は「二次元データ１４」と表記する。二次元地図データ１４は、各点のｚ座標値が失われていることを除いて、原地図データ１０と同じデータ構造からなる。従って、原地図データ１０のコピーであって、ｚ座標値を０としたものを二次元地図データ１４としてもよい。
【００２５】
オペレータは、従来の二次元地図データの編集作業と同様の作業により、編集装置（具体的には、ＣＡＤソフトウエア）１６を使って、二次元地図データ１４を編集し、その編集結果で二次元地図データ１４を更新する。名称・道路名等の注記及び地図記号の追加、線の移動・追加・削除、並びに図形属性の変更が行われる。これは、二次元上での作業であり、地道なものではあるが、技術的な困難は無い。
【００２６】
例えば、建物外周線が道路境界線を越えて道路側に突出している箇所や、道路境界線の始終点が一致していない箇所に対して、オペレータは、編集装置１６により、図形の平面位置及び形状を修正する。また、図化機により生成される原地図データ１０の図形属性が、別途行った現地調査の結果と異なっていると判断された場合、オペレータは、正しい図形属性に変更する。更に、オペレータは、必要に応じて注記などを追加する。
【００２７】
編集装置１６で追加された注記、記号、線及び既存線の端点・中間点については、高度（ｚ）の情報が欠落している。そこで、詳細は後述するが、既存の線に追加された点については、対比装置１８，２０，２２が、その既存の線の他の点の高度データから内挿する。その他の追加された注記・記号・線については、高さ内挿装置２８により、高度情報を補完する。
【００２８】
編集装置１６による編集の後、対比装置１８，２０，２２が段階的に、原地図データ１０の各線データと、編集装置１６により修正された二次元地図データ１４の各線データとを対比し、二次元地図データ１４に対応する三次元地図データを生成し、記憶装置２４に格納する。以下、記憶装置２４に格納される三次元地図データを「三次元地図データ２４」と表記する。未処理記憶装置２６には、各対比装置１８，２０で対応を発見できなかった、二次元地図データ１４の該当する線（の識別情報）、即ち、未処理データ（の識別情報）を記憶する。以降の処理に備えて、予め、原地図データ１０及び二次元地図データ１４に収容されているデータ（線及び点データ）をその座標値（ｘ，ｙ）でソートして、それぞれ記憶装置１０，１４（又は作業用メモリ）に格納してあるものとする。
【００２９】
各対比装置１８，２０，２２の動作を簡単に説明する。対比装置１８は、原地図データ１０の各線データと二次元地図データ１４の各線データを、平面位置（ｘ，ｙ）及び図形属性に関して対比する。二次元地図データの線データの各要素点に位置的に対応する要素点を具備し、且つ、図形属性が一致する線データを原地図データ１０から発見できた場合、両線が一致した又は対応すると判定する。二次元地図データ１４は、編集作業によって平面位置が、若干、移動している場合がありうるので、座標値の比較では一定量の誤差を許容する。そのような誤差は、例えば、国土交通省公共測量作業規程に定められている。
【００３０】
平面位置及び図形属性が一致した場合、一致した線に関して、原地図データ１０の高さ座標ｚと二次元地図データ１４の平面座標（ｘ，ｙ）及び図形属性とから３次元地図データを生成し、記憶装置２４に書き込む。平面位置及び図形属性が一致する線が発見されない場合、二次元地図データ１４の該当する線データを、未処理データとして未処理記憶装置２６に記憶する。
【００３１】
三次元地図データを生成する際、対比装置１８はまた、原地図データ１０の対応する線に存在せず二次元地図データ１４にのみ存在する点、及び両線間で許容誤差以上離れている二次元地図データ１４の線の点（編集装置１６で追加・変更された点）について、原地図データ１０の対応する線の各点の高さデータから内挿法により推定する。
【００３２】
図２は、対比装置１８による対比動作のモデル図を示す。図２（ａ）は、原地図データ１０の一部の平面図を示し、同（ｂ）は、二次元地図データ１４の対応する箇所の平面図を示し、同（ｃ）は対比装置１８によるマッチングの様子を示し、同（ｄ）は、対比装置１８により生成される３次元地図データ２４の平面図を示す。図２（ａ）に示す原地図データ１０で、線Ｐ１−Ｐ２，Ｐ３−Ｐ４は道路境界を示し、線Ｐ５〜Ｐ１０は、建物の境界を示し、図２（ｂ）に示す二次元地図データ１４で、点Ｑ１〜Ｑ１０は、それぞれ、図２（ａ）に示す原地図データ１０の点Ｐ１〜Ｐ１０に対応する。原地図データ１０では、Ｐ５〜Ｐ１０で示される建物が道路に食い込んでいるが、これを、図２（ｂ）に示す二次元地図データ１４のように、オペレータが編集装置１６により修正した。図２（ｄ）で、点Ｒ１〜Ｒ１０はそれぞれ、対比装置１８により生成される３次元データ２４の線データの要素点を示す。
【００３３】
対比装置１８は、図２（ｃ）に示すように、原地図データ１０と二次元地図データ１４とを対比又はマッチングし、その結果、互いに対応するデータであると判定すると、上述の方法で３次元地図データ２４を生成する。生成された３次元地図データ２４で線を構成する各点Ｒ１〜Ｒ１０のｘ座標値及びｙ座標値は、それぞれ、二次元地図データ１４の対応する点Ｑ１〜Ｑ１０のｘ座標値及びｙ座標値からなり、各点Ｒ１〜Ｒ１０のｚ座標値はそれぞれ、原地図データ１０の対応する点Ｐ１〜Ｐ１０のｚ座標値からなる。例えば、Ｐｉの座標値を（ｘＰｉ，ｙＰｉ，ｚＰｉ）、点Ｐｉに対応する点Ｑｉの座標値を（ｘＱｉ，ｙＱｉ）とすると、Ｒｉの座標値は（ｘＱｉ，ｙＱｉ，ｚＰｉ）となる。また、生成される３次元地図データ２４の各点Ｒ１〜Ｒ１０で規定される線の図形属性は、二次元地図データ１４の対応する点Ｑ１〜Ｑ１０で規定される線の図形属性からなる。
【００３４】
対比装置１８の対比に続いて、対比装置２０は、二次元地図データ１４の線データのうち、未処理記憶装置２６に記憶される線データを、平面位置（ｘ，ｙ）に関して原地図データ１０の各線データと対比する。勿論、対比装置１８の場合と同様に、平面位置（ｘ，ｙ）の比較では、所定量の誤差を許容する平面位置が一致した場合、一致した線に関して、三次元地図データ１０の高さｚと、二次元地図データ１４の平面座標（ｘ，ｙ）及び図形属性とから、３次元地図データを生成して記憶装置２４に書き込み、同時に、未処理記憶装置２６からこの線の識別情報を削除する。
【００３５】
対比装置２０はまた、原地図データ１０の対応する線に存在せず二次元地図データ１４にのみ存在する点、及び両線間で許容誤差以上離れている二次元地図データ１４の線の点（編集装置１６で追加・変更された点）について、原地図データ１０の対応する線の各点の高さデータから内挿法により推定する。
【００３６】
対比装置２０の動作は、図形属性が考慮されないことを除いて、対比装置１８のそれと同じである。
【００３７】
対比装置２０の対比に続いて、対比装置２２は、二次元地図データ１４の線データのうち、未処理記憶装置２６に記憶される線データを、原地図データ１０の各線データと座標単位で対比する。すなわち、線の拘束を離れて、線の要素点（始点、終点及び中間点）単位で、二次元地図データと原地図データを対比する。例えば、原地図データ１０では隣接する２つの建物の境界を示す２つの線が、編集装置１６の編集作業により、二次元地図データ１４では、つながった単一の建物の境界を示す１つの線で登録されることがありうる。このような場合、対比装置１８，２０では、対応関係を発見できないが、対比装置２２により発見し得る。
【００３８】
対比装置２２もまた、原地図データ１０の対応する線に存在せず二次元地図データ１４にのみ存在する点、及び両線間で許容誤差以上離れている二次元地図データ１４の線の点（編集装置１６で追加・変更された点）について、原地図データ１０の対応する線の各点の高さデータから内挿法により推定する。
【００３９】
図３は、対比装置２２による対比の説明モデルを示す。図３（ａ）は、原地図データ１０の一部の平面図を示し、同（ｂ）は、二次元地図データ１４の対応する部分の平面図を示し、同（ｃ）は対比装置２２によるマッチングの様子を示し、同（ｄ）は、対比装置２２により生成される３次元地図データ２４の平面図を示す。
【００４０】
図３（ａ）に示す原地図データ１０で、線Ｐ１−Ｐ２，Ｐ３−Ｐ４は道路境界を示し、線Ｐ５〜Ｐ８、Ｐ９〜Ｐ１２は、本来は１つであるが、図化機により別々に認識された建物の境界を示す。図３（ｂ）に示す二次元地図データ１４で、線Ｑ１−Ｑ２，Ｑ３−Ｑ４は線Ｐ１−Ｐ２，Ｐ３−Ｐ４で示される道路境界に対応する道路境界を示し、線Ｑ５〜Ｑ１０は、１つの建物を示すように線Ｐ５〜Ｐ８，Ｐ９〜Ｐ１２を修正したものである。また、図３（ａ）に示す原地図データ１０の点Ｐ１０，Ｐ１１が道路に食い込んでいるが、これを、図３（ｂ）に示す二次元地図データ１４のように、オペレータが編集装置１６により、道路の外に位置するように修正した。図３（ｄ）で、点Ｒ１〜Ｒ１０はそれぞれ、対比装置２２により生成される３次元データ２４の線データの要素点を示す。
【００４１】
対比装置２２は、図３（ｃ）に示すように、原地図データ１０と二次元地図データ１４とを対比又はマッチングし、その結果、互いに対応するオブジェクトであると判定すると、上述のように３次元地図データ２４を生成する。生成された３次元地図データ２４で線を構成する各点Ｒ１〜Ｒ１０のｘ座標値及びｙ座標値は、それぞれ、二次元地図データ１４の対応する点Ｑ１〜Ｑ１０のｘ座標値及びｙ座標値からなり、各点Ｒ１〜Ｒ１０のｚ座標値はそれぞれ、原地図データ１０の対応する点Ｐ１〜Ｐ６，Ｐ９，Ｐ１０，Ｐ１１，Ｐ８のｚ座標値からなる。例えば、Ｐｉの座標値を（ｘＰｉ，ｙＰｉ，ｚＰｉ）、点Ｐｉに対応する点Ｑｉの座標値を（ｘＱｉ，ｙＱｉ）とすると、Ｒ７の座標値は（ｘＱ７，ｙＱ７，ｚＰ９）となる。また、生成される３次元地図データ２４の各点Ｒ１〜Ｒ１０で規定される線の図形属性は、二次元地図データ１４の対応する点Ｑ１〜Ｑ１０で規定される線の図形属性からなる。
【００４２】
対比装置１８，２０，２２の対比後に、高さ内挿装置２８が、二次元地図データ１４のうちの高さ未定のデータに対し、記憶装置２４に記憶される三次元地図データから高さ（ｚ）データを補完する。専ら対象となるのは、編集装置１６で追加された線と、追記された地図記号及びビル名称・道路名等の注記である。何れも、対比装置１８，２０，２２は、原地図データ１０から対応する線データを発見できない。
【００４３】
即ち、高さ内挿装置２８は、先ず、記憶装置２４に記憶される三次元地図データの線データで形成される面を、互いに重複せず且つその線を辺として使用する三角形の面で区分する三角網を形成する。そして、高さ内挿装置２８は、形成された三角網上で、未処理記憶装置２６に記憶される線データ及び点データの高さを内挿により計算する。この高さデータは、地表面の高度であるので、内挿に使用する周囲の高さから、建物の高さ情報を予め除外しておくのが好ましい。例えば、図形属性が建物である線データを無視して、上述の三角網を形成する。
【００４４】
図４は、高さ内挿装置２８の説明モデルを示す。図４（ａ）に示すように、点Ｒ１〜Ｒ８からなる線で囲まれた面を、図４（ｂ）に示すように、各線を辺とする三角形で区分する。
【００４５】
未処理記憶装置１４に記憶される線データが点Ｑ１，Ｑ２で規定されるとすると、図４（ｃ）に示すように、三角網上でＱ１，Ｑ２と同じ平面座標（ｘ，ｙ）を具備する点のｚ座標値を算出し、そのｚ座標値をＱ１，Ｑ２に対応する点Ｒ９，Ｒ１０のｚ座標値とする。即ち、点Ｑ１の座標値を（ｘＱ１，ｙＱ１）とする、三角網で形成される多面体の表面上で、（ｘＱ１，ｙＱ１）の高さをｚＲ９とすると、Ｒ９の座標値は（ｘＱ１，ｙＱ１，ｚＲ９）となる。
【００４６】
このように、原地図データ１０と二次元地図データ１４を段階的に対比し、実際に即して平面位置（ｘ，ｙ）及び図形属性を修正された二次元地図データ１４に、原地図データ１０の高さデータ（ｚ）を組み合せることで、三次元の原地図データを、オペレータによる少ない手間で効率良く修正できる。確度の高い順で機械的に対比するので、現実に即した三次元地図データを、オペレータによる少ない手間で効率良く作成できる。
【００４７】
この段階での三次元地図データ２４では、建物の側壁が表示されないので、鳥瞰表示の際に、背後が透けて見えてしまう。そこで、本実施例では、建物立体化処理装置３０が、記憶装置２４に記憶される三次元地図データに含まれる建物のデータを、その地表面に押し下げた箱形モデルを形成し、三次元地図データ２４に対しその箱形モデルの要素点（地表面上の線データ）を追加する。
【００４８】
具体的には、以下のようにする。即ち、建物立体化処理装置３０は、三次元地図データ２４を使って、図５（ａ）に示すように、水平投影面上で、立体化しようとする建物の周囲に適当な大きさの領域を設定する。図５（ａ）で、線Ｒ１〜Ｒ４は、立体化対象の建物境界線を規定し、線Ｒ５〜Ｒ１２は、その建物の周囲に設定された領域を示す。
【００４９】
高さ内挿装置２８の場合と同様に、線Ｒ５〜Ｒ１２で囲まれる領域を、互いに重複せず且つその線分を辺として使用する三角形の面で区分する。そのようにして形成される三角網の一例を図５（ｂ）に示す。三角網を形成する際には、高さ内挿装置２８の場合と同様に、他の建物の線を予め除去しておく。建物立体化処理装置３０は、図５（ｃ）に示すように、形成された三角網上に目的の建物の上面の点Ｒ１〜Ｒ４を投影し、それによる三角網上の点Ｒ１ａ，Ｒ２ａ，Ｒ３ａ，Ｒ４ａが、その建物の敷地面を形成する。但し、一般的には、床面を水平にするのが好ましいので、Ｒ１ａ，Ｒ２ａ，Ｒ３ａ，Ｒ４ａの高さ（ｚ）を、これらの内の最低の数値に合わせる。このようにして、点Ｒ１〜Ｒ４，Ｒ１ａ〜Ｒ４ａで規定される箱形モデルが形成される。即ち、建物の不透明な壁面をデータ化できる。
【００５０】
本実施例におけるパターンマッチングは、神経回路網を模擬するソフトウエア又はハードウエアにより実現できる。勿論、本実施例のデータ処理のほとんどは、実際にはコンピュータプログラムにより実現されうる。
【００５１】
図６は、対比装置１８の機能を実現するコンピュータプログラムのフローチャートを示す。対比装置１８は、原地図データ１０の各線データと二次元地図データ１４の各線データを、平面位置（ｘ，ｙ）及び図形属性に関して対比する。即ち、二次元地図データ１４の各線データＬｉを特定するループ変数ｉを初期化し（Ｓ１）、インクリメントして（Ｓ２）、二次元地図データ１４から線データＬｉを読み込む（Ｓ３）。その線データＬｉを、原地図データ１０の各線データＬｊと対比する（Ｓ４）。詳細は後述するが、ステップＳ４では、線データＬｉの各要素点に位置的に対応する要素点を具備し、且つ、図形属性が一致するＬｊが発見できた場合、両線が一致した又は対応すると判定する。二次元地図データ１４は、編集作業によって平面位置が、若干、移動している場合がありうるので、先に説明したように、座標値の比較では一定量の誤差を許容する。なお、二次元地図データの線Ｌｉを指定する変数ｉと、原地図データ１０の線Ｌｊを指定する変数ｊは、グローバル変数である。
【００５２】
平面位置及び図形属性が一致した場合（Ｓ５）、一致した線に関して、原地図データ１０の高さ座標ｚと二次元地図データ１４の平面座標（ｘ，ｙ）及び図形属性とから３次元地図データを生成し、記憶装置２４に書き込む（Ｓ６）。平面位置及び図形属性が一致する線が発見されない場合（Ｓ５）、二次元地図データ１４の該当する線Ｌｉを、未処理データとして未処理記憶装置２６に記憶する（Ｓ７）。三次元地図データを生成する際、対比装置１８はまた、原地図データ１０の対応する線に存在せず二次元地図データ１４にのみ存在する点、及び両線間で許容誤差以上離れている二次元地図データ１４の線の点（編集装置１６で追加・変更された点）について、原地図データ１０の対応する線の各点の高さデータから内挿法により推定する。
【００５３】
ｉが二次元地図データ１４の線データ数Ｎｉを越えるまで、即ち、二次元地図データ１４の全線データを原地図データ１０と対比するまで（Ｓ８）、ステップＳ２〜Ｓ７を繰り返す。
【００５４】
図７は、対比処理（Ｓ４）の詳細なフローチャートを示す。原地図データの線Ｌｊを指定するループ変数ｊを０で初期化し（Ｓ１１）、インクリメントする（Ｓ１２）。変数ｊが、原地図データ１０の線データ数Ｎｊ以下の場合には（Ｓ１３）、原地図データ１０から線データＬｊを読み込む（Ｓ１４）。線データＬｊの要素点のｘ座標の最大値ｘｍａｘ（ｊ）が線データＬｉの要素点のｘ座標の最小値ｘｍｉｎ（ｉ）より小さい場合（Ｓ１５）、論理的に、線データＬｉと線データＬｊが対応する可能性が無いので、ｊをインクリメントして（Ｓ１２）、次の線データＬｊを原地図データ１０から読み込む（Ｓ１４）。これにより、原地図データ１０の中の処理対象データを削減できる。同様の観点で、ｘｍａｘ（ｉ）がｘｍｉｎ（ｊ）より小さい場合にも、対応する可能性が無いので、Ｓ１６以降をパスしても良い。
【００５５】
ｘｍａｘ（ｊ）がｘｍｉｎ（ｉ）以上の場合、Ｌｊの図形属性がＬｉの図形属性と一致するかどうかを調べる（Ｓ１６）。Ｌｊの図形属性がＬｉの図形属性と一致しない場合（Ｓ１６）、ｊをインクリメントして（Ｓ１２）、次の線データＬｊを原地図データ１０から読み込む（Ｓ１４）。
【００５６】
図形属性が一致する場合（Ｓ１６）、線Ｌｉ，Ｌｊ間で最近傍点を探索し（Ｓ１７）、そのマッチング率Ｍを計算する（Ｓ１８）。マッチング率Ｍが所定閾値Ｍｌｉｍ以下の場合（Ｓ１９）、不一致であると判断し、Ｓ１２以降を繰り返す。マッチング率Ｍが所定閾値Ｍｌｉｍを越える場合に（Ｓ１９）、線Ｌｊが線Ｌｉと対応すると判断し、”成功”を戻り値にセットして（Ｓ２０）、図６に示すフローに戻る。
【００５７】
原地図データの全線Ｌｊを調べても、線Ｌｉに対応する線Ｌｊを発見できない場合（Ｓ１３）、”失敗”を戻り値にセットして（Ｓ２１）、図６に示すフローに戻る。
【００５８】
図８は、図７の最近傍点探索処理（Ｓ１７）の詳細なフローチャートを示す。線Ｌｉの各要素点Ｐを特定する変数ｐを初期化し（Ｓ３１）、インクリメントする（Ｓ３２）。線Ｌｉの要素点Ｐｐの座標値（ｘ，ｙ）を読み込む（Ｓ３３）。線Ｌｊの各要素点Ｑを特定する変数ｑを初期化し（Ｓ３４）、インクリメントする（Ｓ３５）。線Ｌｊの要素点Ｑｑの座標値（ｘ，ｙ）を読み込む（Ｓ３６）。Ｐｐ，Ｑｑ間の距離Ｄを計算する（Ｓ３７）。
【００５９】
最初の点（ｑ＝１）では（Ｓ３８）、線Ｌｉのｐ番目の要素点Ｐｐの、線Ｌｊからの距離Ｄを収容する配列Ｄｉｓｔ（ｐ）に、ステップＳ３７で計算された距離値Ｄを収容し（Ｓ４０）、線Ｌｉのｐ番目の要素点Ｐｐに対応する線Ｌｊの要素点を記憶する配列ＰＱ（ｐ）にｑを収容する（Ｓ４０）。このＤｉｓｔ（ｐ）が、線Ｌｉのｐ番目の要素点Ｐｐの、Ｌｊとの間の距離の初期値になる。このフローの開始時にＤｉｓｔ（ｐ）を予め、ありえないような大きな値で初期化しておけば、ステップＳ３８の分岐は不要になる。必ずＤ＜Ｄｉｓｔ（ｐ）が成立し、最初のＤでＤｉｓｔ（ｐ）が置換されるからである。
【００６０】
Ｌｊの２点目以降、即ち、ｑ＞１では（Ｓ３８）、ステップＳ３７で計算された距離ＤをＤｉｓｔ（ｐ）と比較する（Ｓ３９）。ＤがＤｉｓｔ（ｐ）より小さい場合（Ｓ３９）、Ｌｊのｑ番目の点ＱｑがＬｉのＰｐにより近いことになるので、Ｄｉｓｔ（ｐ）にＤを代入し、ＰＱ（ｐ）にｑを代入する（Ｓ４０）。
【００６１】
ｑがＬｊの全要素点数Ｖｑに到達するまで、即ち、Ｌｊの全点について、Ｐｐと対比するまで（Ｓ４１）、ステップＳ３５〜Ｓ４０の処理を繰り返す。
【００６２】
ｐがＬｉの全要素点数Ｖｐに到達するまで、即ち、Ｌｉの全点について、線Ｌｊと対比するまで（Ｓ４２）、ステップＳ３２〜Ｓ４１の処理を繰り返す。
【００６３】
図９は、図７のマッチング率計算（Ｓ１８）の詳細なフローチャートを示す。変数ｐ，ｑを初期化し（Ｓ５１）、ｐをインクリメントする（Ｓ５２）。Ｄｉｓｔ（ｐ）を所定の閾値Ｄｌｉｍと比較し（Ｓ５３）、Ｄｉｓｔ（ｐ）がＤｌｉｍより小さい場合に、ｑをインクリメントする（Ｓ５４）。ｐが線Ｌｉの全要素点数Ｖｐに到達するまで（Ｓ５５）、Ｓ５２〜Ｓ５４を繰り返す。ｐが線Ｌｉの全要素点数Ｖｐに到達したら（Ｓ５５）、マッチング率Ｍとしてｐ／Ｖｐを戻り値にセットして、図７に戻る。
【００６４】
図１０は、図６の三次元地図データ作成処理（Ｓ６）の詳細なフローチャートを示す。
【００６５】
先ず、原地図データ１０の線Ｌｊの属性Ａｊを、目的とする三次元地図データ２４の対応する線データの図形属性を示す変数Ａｒに代入する（Ｓ６１）。
【００６６】
マッチング率Ｍが１．０に等しい場合（Ｓ６２）、Ｌｉの全要素点に対し線Ｌｊ上に対応点が発見されているので、ｘ座標値には、二次元地図データ１４のｘ座標値Ｐｘ（ｐ）を採用し、ｙ座標値には、二次元地図データ１４のｙ座標値Ｐｙ（ｐ）を採用し、ｚ座標値には、原地図データ１０の線Ｌｊの、Ｐｐに対応する点ＰＱ（ｐ）のｚ座標値Ｑｚ（ＰＱ（ｐ））を採用する（Ｓ６６）。ｐが１からＶｐになるまで、ステップＳ６６を実行し（Ｓ６３〜Ｓ６６）、その結果を、三次元地図データ２４にファイルとして出力する（Ｓ６７）。
【００６７】
マッチング率Ｍが１．０に等しくない場合（Ｓ６２）、二次元地図データ１４の線データＬｉの１以上の点Ｐで、線データＬｊの要素点との距離Ｄｉｓｐ（ｐ）がＤｌｉｍ以上であったことを意味する。そこで、線データＬｊの要素点との距離Ｄｉｓｔ（ｐ）が閾値Ｄｌｉｍ未満の点Ｐにつては（Ｓ７１）、ステップＳ６６と同様に、ｚ座標値には、原地図データ１０の線Ｌｊの、Ｐｐに対応する点ＰＱ（ｐ）のｚ座標値Ｑｚ（ＰＱ（ｐ））を採用する（Ｓ７２）。線データＬｊの要素点との距離Ｄｉｓｔ（ｐ）が閾値Ｄｌｉｍを越える点Ｐについては（Ｓ７１）、原地図データ１０の対応点のｚ座標値Ｑｚ（ＰＱ（ｐ））が信頼できないので、同じ線Ｌｊ上の複数の隣接点のｚ座標値から内挿（又は外挿する）（Ｓ７３）。どちらの場合も、ｘ座標値には、二次元地図データ１４のｘ座標値Ｐｘ（ｐ）を採用し、ｙ座標値には、二次元地図データ１４のｙ座標値Ｐｙ（ｐ）を採用する（Ｓ７２，Ｓ７３）。ｐが１からＶｐになるまで、ステップＳ７２又はＳ７３を実行し（Ｓ６８〜Ｓ７３）、その結果を、三次元地図データ２４に追加する（Ｓ６７）。
【００６８】
図１１は、対比装置２０の機能を実現するコンピュータプログラムのフローチャートを示す。Ｎｅは、未処理記憶装置２６に記憶される二次元地図データ１４の未処理の線データ数を示す。
【００６９】
ここでは、未処理記憶装置２６に記憶される二次元地図データ１４の線データＬｉを対象とするので、ループ変数ｉがＮｅに到達すると（Ｓ８８）、処理を終了する。また、二次元地図データ１４の線データＬｉを原地図データ１０の各線データＬｊと対比する際に（Ｓ８４）、図形属性を考慮しない。原地図データ１０と対比できた線Ｌｉについては、未処理記憶装置２６から削除する（Ｓ８７）。これらを除いた動作は、図６と同じであるので、詳細な説明を省略する。
【００７０】
図１２は、対比装置２２の機能を実現するコンピュータプログラムのフローチャートを示す。Ｎｅは、未処理記憶装置２６に記憶される二次元地図データ１４の未処理の線データ数を示す。
【００７１】
原地図データ１０の全線データを構成する全要素点をそのｘ座標値で昇順にソートする（Ｓ９１）。
【００７２】
未処理記憶装置２６に未処理として記憶されている二次元地図データ１４の線データＬｉを示すループ変数ｉを初期化し（Ｓ９２）、インクリメントする（Ｓ９３）。
【００７３】
線データＬｉを構成する要素点を示す変数ｐを初期化し、要素点Ｐｐと、原地図データ１０の対応する要素点との間の距離を示す配列変数Ｄｉｓｔ（）をありえないような大きな値で初期化する（Ｓ９４）。ｐをインクリメントする（Ｓ９５）。ｐが線データＬｉの全要素点数Ｎｐに到達するまで（Ｓ９６）、二次元地図データ１４から線データＬｉのｐ番目の要素点Ｐｐを読み込み（Ｓ９７）、原地図データから最近傍点を探索する（Ｓ９８）。
【００７４】
線データＬｉの全要素点について最近傍点を探索すると（Ｓ９６）、マッチング率Ｍを調べる（Ｓ９９）。マッチング率Ｍが所定値Ｍｌｉｍを越える場合には（Ｓ１００）、三次元データを出力し（Ｓ１０１）、マッチング率Ｍが所定値Ｍｌｉｍ以下の場合には（Ｓ１００）、線Ｌｉを未処理データとして新たに、未処理記憶装置２６に記憶する（Ｓ１０２）。又は、三次元データを出力する線データＬｉを、未処理記憶装置２６の記憶から削除するようにしてもよい。
【００７５】
ｉがＮｅに等しくなるまで、即ち、開始時に、未処理記憶装置２６に未処理として記憶されている二次元地図データ１４の全線データＬｉを調べるまで（Ｓ１０３）、ステップＳ９３以降を繰り返す。
【００７６】
図１３は、図１２の最近傍点探索処理（Ｓ９８）の詳細なフローチャートを示す。線の要素点単位での対比になるので、図８に示すフローよりも複雑になっている。原地図データ１０の全線データの全要素点数はＮｑであるとする。
【００７７】
原地図データ１０の全線データの要素点を示す変数ｑを初期化する（Ｓ１１０）。高速に最近傍点を発見できるように、要素点Ｐｐのｘ座標値Ｐｘ（ｐ）と、要素点Ｑｑのｘ座標値Ｑｘ（ｑ）の間に、
Ｐｘ（ｐ）≧Ｑｘ（ｑ）−Ｄｌｉｍ
が成立する限り、ｑを１００単位でインクリメントする（Ｓ１１２〜Ｓ１１５）。Ｄｌｉｍは、対応点と判定する距離の閾値である。
【００７８】
ｑがＮｑを越えた場合（Ｓ１１３）、及び、Ｐｘ（ｐ）がＱｘ（ｑ）−Ｄｌｉｍより小さくなった場合、ｑから１００を減算する（Ｓ１１６）。この処理により、最近傍点の存在する範囲を限定して、逐次的な探索回数を減らすことができるので、結果として、高速に最近傍点を発見できる。ｘ座標値が距離閾値Ｄｌｉｍより離れていれば、ＰｐとＱｑ間の距離は当然にＤｌｉｍより離れているので、ステップＳ１１５では、ｘ座標値のみを比較すれば足りる。勿論、ｘ座標値の代わりにｙ座標値を採用しても良い。
【００７９】
ステップＳ１１２〜Ｓ１１６の処理で最近傍点の存在する範囲を限定できているので、以降、ｑを１ずつ増やしながら、最近傍点を探索する（Ｓ１１７〜Ｓ１２５）。
【００８０】
即ち、ｑをインクリメントし（Ｓ１１７）、原地図データ１０から線の要素点Ｑｑを読み込む（Ｓ１１９）。要素点Ｑｑのｘ座標値Ｑｘ（ｑ）と、要素点Ｐｐのｘ座標値Ｐｘ（ｐ）との間の差がＤｉｓｔ（ｐ）より小さい場合、即ち、
Ｑｘ（ｑ）−Ｐｘ（ｐ）＜Ｄｉｓｔ（ｐ）
の場合（Ｓ１２０）、ＱｑとＰｐの間の距離Ｄを計算する（Ｓ１２１）。Ｄｉｓｔ（ｐ）はありえないような大きな値で初期化されているので、最初にステップＳ１２０を実行するときには、ステップＳ１２０は必ず成立し、距離Ｄを計算することになる。
【００８１】
ステップＳ１２１で計算された距離ＤをＤｉｓｔ（ｐ）と比較する（Ｓ１２２）。ＤがＤｉｓｔ（ｐ）より小さい場合（Ｓ１２２）、Ｄｉｓｔ（ｐ）にＤを代入し、要素点ＰｐとＱｑとの間の対応を示す配列ＰＱ（ｐ）にｑを代入して（Ｓ１２３）、Ｓ１１７に戻り、Ｓ１１７以降を繰り返す。ＤがＤｉｓｔ（ｐ）以上の場合（Ｓ１２２）、直ぐにＳ１１７に戻り、Ｓ１１７以降を繰り返す。
【００８２】
ステップＳ１２０で、Ｑｘ（ｑ）−Ｐｘ（ｐ）がＤｉｓｔ（ｐ）以上になった場合（Ｓ１２０）、ｑをこれ以上増やしても、Ｐｐにもっと近いＱｑを発見できないので、図１２に示すフローに戻る。これは、ステップＳ９１で原地図データの全要素点を、予めそのｘ座標値で昇順にソートしておいたからである。
【００８３】
また、ｑをインクリメントした後に（Ｓ１１７）、ｑが、原地図データ１０の全要素点数を示すＮｑより大きい場合（Ｓ１１８）、原地図データ１０の全要素点Ｑｑを調べ尽くしたことになるので、この場合にも、図１２に示すフローに戻る。
【００８４】
図１４は、高さ内挿装置２８の機能を実現するコンピュータプログラムのフローチャートを示す。
【００８５】
作成済みの三次元地図データ２４の線データの内、建物の図形属性を示す線以外の線データで形成される面を、互いに重複せず且つその線を辺として使用する三角形の面で区分する三角網を形成する（Ｓ１３１）。
【００８６】
高さ（ｚ）を設定すべき点を示す変数ｉを初期化し（Ｓ１３２）、インクリメントし（Ｓ１３３）、変数ｉの示す点データＰｉ（孤立した点以外に、線データの要素点を含む。）を二次元地図データ１４から読み込む（Ｓ１３４）。その点Ｐｉを含む三角面を検索する（Ｓ１３５）。発見した三角面上での点Ｐｉのｚ座標値を三角面の頂点座標から内挿し（Ｓ１３６）、Ｐｉのｘ座標及びｙ座標並びに、ステップＳ１３６で算出されたｚ座標を三次元地図データ２４に追加する（Ｓ１３７）。ステップＳ１３５で三角面を発見できない場合、オペレータが三角面を手入力で指定するか、又は高さ自体を手入力する。
【００８７】
二次元地図データ１４の内で高さを設定すべき全点についてステップＳ１３３〜Ｓ１３７を実行したら（Ｓ１３８）、終了する。
【００８８】
図１５は、図１４の三角面検索処理（Ｓ１３５）の詳細なフローチャートである。Ｎｔは三角網形成（Ｓ１３１）で形成された三角面の総数である。この処理では、事前に、三角面は、それを構成する３点のｘ座標値の最大値Ｘｍａｘで昇順にソートされている。
【００８９】
三角面を指定するループ変数ｔを０で初期化する（Ｓ１４１）。ｘ，ｙ面内で対象の点Ｐｉを含む三角面を高速に発見できるように、点Ｐｉのｘ座標値Ｐｘ（ｉ）と、ｔ番目の三角面を構成する３点のｘ座標値の最大値Ｘｍａｘ（ｔ）の間に、
Ｘｍａｘ（ｔ）≧Ｐｘ（ｉ）
が成立する限り、ｔを１００単位でインクリメントする（Ｓ１４２〜Ｓ１４５）。Ｄｌｉｍは、対応点と判定する距離の閾値である。
【００９０】
ｔがＮｔを越えた場合（Ｓ１４３）、及び、Ｘｍａｘ（ｔ）がＰｘ（ｉ）より小さくなった場合、ｑから１００を減算する（Ｓ１４６）。この処理により、最近傍点の存在する範囲を限定して、逐次的な探索回数を減らすことができるので、結果として、高速に最近傍点を発見できる。三角面を構成する３点のｘ座標値の最大値Ｘｍａｘ（ｔ）が点Ｐｉのｘ座標値Ｐｘ（ｉ）以上になって始めて、点Ｐｉがｔ番目の三角面に含まれる可能性があるからである。勿論、ｘ座標値の代わりにｙ座標値を採用しても良い。
【００９１】
ステップＳ１４２〜Ｓ１４５の処理で、点Ｐｉを含む三角面の存在する範囲を限定できているので、以降、ｑを１ずつ増やしながら、目的の三角面を探索する（Ｓ１４７〜Ｓ１５０）。
【００９２】
即ち、ｑをインクリメントし（Ｓ１４７）、ｑ番目の三角面を取り出し（Ｓ１４９）、Ｐｉがその三角面内にあるかどうかを調べる（Ｓ１５０）。三角面内にあれば（Ｓ１５０）、変数ｔを戻り値Ｔｋにセットして（Ｓ１５１）、図１４に戻り、三角面内になければ（Ｓ１５０）、ｑをインクリメントして（Ｓ１４７）、次の三角面を調べる（Ｓ１４９，Ｓ１５０）。ｑがＮｔ以上になったら（Ｓ１４８）、全部を調べ尽くしたことになるので、０を戻り値Ｔｋにセットして図１４に戻る。Ｔｋ＝０は、三角面を発見できなかったことを示す。
【００９３】
図１６は、建物立体化処理装置３０の機能を実現するコンピュータプログラムのフローチャートを示す。
【００９４】
作成済みの三次元地図データ２４の線データの内、建物の図形属性を示す線以外の線データで形成される面を、互いに重複せず且つその線を辺として使用する三角形の面で区分する三角網を形成する（Ｓ１６１）。
【００９５】
三次元地図データ２４の線データを示す変数ｉを初期化し（Ｓ１６２）、インクリメントする（Ｓ１６３）。三次元地図データ２４から線データＬｉを読み込み（Ｓ１６４）、その図形属性が建物かどうかを調べる（Ｓ１６５）。図形属性が建物の場合（Ｓ１６５）、図５を参照して説明したように、直方体モデルを形成し（Ｓ１６６）、その直方体モデルのデータで三次元地図データ２４の対応する線データＬｉを置換する（Ｓ１６７）。
【００９６】
三次元地図データ２４の全ての線データについてステップＳ１６３〜Ｓ１６７を実行したら（Ｓ１６８）、終了する。
【００９７】
対比装置１８も、未処理記憶装置２６を参照して、二次元地図データ１４の対比対象を決定するようにしてもよい。その場合、最初に未処理記憶装置２６が、二次元地図データ１４の全データを記憶するように初期化すればよい。その場合、未処理記憶装置２６の記憶内容を変更することで、対比装置１８を繰り返し適用することが容易になる。
【００９８】
また、上記実施例では、対比装置１８，２０，２２を順に適用したが、任意の順に適用しても良い。例えば、対比装置１８，２０を適用した後に、再度、対比装置１８を適用しても良い。
【００９９】
【発明の効果】
以上の説明から容易に理解できるように、本発明によれば、原地図データを二次元データに変換して修正、編集を行った後は、第１〜第５のプロセスを順に実行することにより、全てプログラムによる自動処理によって三次元地図データが作成される。
【０１００】
即ち、原地図データを三次元の状態で直接修正、編集するという多大な労力を要する作業を回避し、従来の二次元地図データを作成する労力に、殆ど労力を加えることなく三次元地図データを作成することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施例の概略構成ブロック図である。
【図２】対比装置１８による対比動作の説明モデル図である。
【図３】対比装置２２による対比動作の説明モデル図である。
【図４】高さ内挿装置２８の動作説明モデル図である。
【図５】建物立体化処理装置３０の動作説明モデル図である
【図６】対比装置１８の機能を実現するコンピュータプログラムのフローチャートである。
【図７】対比処理（Ｓ４）の詳細なフローチャートである。
【図８】図７の最近傍点探索処理（Ｓ１７）の詳細なフローチャートである。
【図９】図７のマッチング率計算（Ｓ１８）の詳細なフローチャートである。
【図１０】図６の三次元地図データ作成処理（Ｓ６）の詳細なフローチャートである。
【図１１】対比装置２０の機能を実現するコンピュータプログラムのフローチャートである。
【図１２】対比装置２２の機能を実現するコンピュータプログラムのフローチャートを示す。
【図１３】図１２の最近傍点探索処理（Ｓ９８）の詳細なフローチャートである。
【図１４】高さ内挿装置２８の機能を実現するコンピュータプログラムのフローチャートである。
【図１５】図１４の三角面検索処理（Ｓ１３５）の詳細なフローチャートである。
【図１６】建物立体化処理装置３０の機能を実現するコンピュータプログラムのフローチャートである。
【符号の説明】
１０：記憶装置（原地図データ）
１２：二次元化装置
１４：記憶装置（二次元地図データ又は二次元データ）
１６：編集装置
１８，２０，２２：対比装置
２４：記憶装置（三次元地図データ）
２６：未処理記憶装置
２８：高さ内挿装置
３０：建物立体化処理装置
【図１】
0003582509.tif 000002
【図２】
0003582509.tif 000003
【図３】
0003582509.tif 000004
【図４】
0003582509.tif 000005
【図５】
0003582509.tif 000006
【図６】
0003582509.tif 000007
【図７】
0003582509.tif 000008
【図８】
0003582509.tif 000009
【図９】
0003582509.tif 000010
【図１０】
0003582509.tif 000011
【図１１】
0003582509.tif 000012
【図１２】
0003582509.tif 000013
【図１３】
0003582509.tif 000014
【図１４】
0003582509.tif 000015
【図１５】
0003582509.tif 000016
【図１６】
0003582509.tif 000017