以下、本発明に係る標高データを生成可能なプログラム及び標高データ生成方法の実施形態の一つについて図面を参照して説明する。
図1は、本発明に係る標高データ生成装置の一つの実施形態の概略ブロック図である。1は、等高線及び特定点記号を含む2次元地図画像に含まれた複数の等高線のそれぞれを点列で表す等高線点列データとそれぞれの特定点の位置と標高を表す特定点データとから、それぞれ当該地図を分割して得られる複数のメッシュのうちのいずれかのメッシュの頂点である複数の格子点のそれぞれの標高を示す標高データを生成する標高データ生成装置である。本生成装置1は、例えばパソコンあるいはワークステーションにより実現される処理装置10、メインメモリとして使用されるRAM(図示せず)及び磁気ディスク記憶装置のような補助記憶装置(図示せず)とを含む記憶装置20、入出力装置30とを備えている。入出力装置30は、キーボード及びマウス等のポインティングデバイスを含む入力装置31、CRTディスプレイ装置等の表示装置32、プリンタ33を備えている。記憶装置20にデータを記憶させるときに、記憶装置20に含まれた図示していないRAMと補助記憶装置のいずれに当該データを記憶させるかは、当該データ毎にあらかじめ定められている。
処理装置10には、標高データを生成可能なプログラム40が組み込まれている。標高データを生成可能なプログラム40は、格子点用最急方位探索部41、標高計算部42及び補正標高決定部43という処理部からなり、等高線点列データと特定点データとから格子点の位置と標高を示す標高データを生成する。処理装置10は、標高データを生成可能なプログラム40内のそれぞれの処理部が実行されたときに、格子点用の最急方位を探索する機能ブロック、標高を計算する機能ブロック及び格子点の補正された標高を決定する機能ブロックという複数の機能ブロックとして動作する。したがって、処理装置10には、プログラム40のこれらの処理部により、対応する機能ブロックが実現されていることになる。したがって、格子点用最急方位探索部41、標高計算部42及び補正標高決定部43は、本発明に係る標高データ生成装置の一つの実施の形態を実現することになる。
標高データを生成可能なプログラム40は、本発明に係る標高データを生成可能なプログラムの一つの実施の形態を実現するものであり、記録媒体に記録してあるいはネットワークを介して記憶装置20に記憶され処理装置10で実行される。標高データを生成可能なプログラム40は、記録媒体に記録されて又はネットワークを介して販売可能である。処理装置10が標高データを生成可能なプログラム40を実行して標高データを生成する手順は、本発明に係る標高データ生成方法の一つの実施の形態を実現する。
記憶装置20には、等高線点列データ21、格子点データ22、三角点データ23A、基準点データ23B、補助点データ23Cがあらかじめ記憶されている。以下では、三角点データ23A、基準点データ23B、補助点データ23Cをまとめて特定点データ23と呼ぶ。本発明の実施の態様によっては、三角点データ23A、基準点データ23B、補助点データ23Cの全ては存在しなくてもよく、三角点データ23Aのみ存在する場合、基準点データ23Bのみ存在するの場合、補助点データ23Cのみ存在する場合あるいはこれらの二つが存在する場合でもよい。等高線点列データ21、格子点データ22、特定点データ23を用いて、格子点用周辺点データリスト24、格子点用最急方位データ25、特定点用周辺点データリスト26、特定点用最急方位データ27、近傍格子点データ28A、近傍特定点データ28B、標高データ29が生成される。
等高線点列データ21は、等高線地図内の複数の等高線のそれぞれを折れ線で近似して、それぞれの折れ線上に位置する複数の点列及び当該等高線の標高を表す標高値からなるデータである。格子点データ22は、等高線地図データを複数のメッシュに分割したときのそれぞれのメッシュの頂点である複数の格子点の2次元座標(x、y)を示すデータである。三角点データ23A、基準点データ23B又は補助点データ23Cは、それぞれ等高線地図上にある三角点、基準点又は補助点等の特定点の2次元座標(x、y)と標高を表すデータである。なお、三角点、基準点、補助点等の特定点が地図上に記載されていなくて、これらの点のデータを含む電子ファイルが別に利用可能になっていてもよい。本実施の形態では等高線点列データ21は、等高線地図から既に生成され記憶装置20に記憶されていると仮定している。三角点データ23A、基準点データ23B、補助点データ23Cは等高線地図から生成されてあるいは等高線地図とは別に生成され、記憶装置20に記憶されているものとする。
図2は、特定点を有するいくつかの等高線地図の例を示す図である。同図(a)は、一つの傾斜地特定点を有する等高線地図画像の例を示し、この例では、点Iは、順に標高が低くなる複数の等高線C1〜C5を含む傾斜地にあり、それらの等高線のうちの一対の標高が異なる等高線C2とC3の間にある傾斜地特定点の例であり、点Rは、一対の等高線間に位置する傾斜地格子点の例であり、当該傾斜地格子点Rは、図では、傾斜地特定点Iが間に位置する一対の等高線C2とC3の間に位置し、傾斜地格子点Rは、傾斜地特定点Iの近傍にあり、特定点Iから見て後に説明する補正適用範囲内に位置する。この場合、後に説明するように、傾斜地格子点Rの標高は、傾斜地特定点Iの標高により後に説明する方法で補正される。以下、このように近傍の特定点の標高により標高が補正される格子点をその特定点の補正対象格子点と呼ぶことがあり、補正に使用される特定点Iを格子点Rの補正元特定点と呼ぶことがある。図2(a)では、格子点Rを補正対象格子点とする他の補正元特定点は存在しないと仮定する。この格子点Rのように、補正元特定点の数が1個であるとき、当該補正対象格子点は非重複領域内にあると言うことがあり、当該格子点を非重複領域内格子点と呼ぶことがある。特定点Iは、三角点又は基準点又は補助点のいずれでもよい。
同図(b)は、二つの傾斜地特定点を有する他の等高線地図画像の例を示し、この例では、順に標高が低くなる複数の等高線C6〜C10を含む傾斜地において、一対の標高が異なる等高線C7とC8の間の間隔が図の中央部分で大きく広がっている。点IaとIbは、両方とも同じ一対の等高線C7とC8の間に位置する傾斜地特定点の例である。点Rは同じ一対の等高線C7とC8の間に位置し、これらの二つの特定点Ia、Ibのそれぞれから補正対象範囲内にあり、したがってこれら二つの特定点の両方の補正対象格子点である。この図では格子点Rに対する補正元特定点は他には存在しないと仮定している。ここに示した格子点Rのように、2つの特定点の補正対象格子点であるが、それらの特定点以外に補正元特定点が存在しない場合、当該補正対象格子点は2重重複領域内にあると言うことがあり、当該格子点を2重重複領域内格子点と呼ぶことがある。特定点Ia、Ibは、例えば、一方が三角点又は基準点、他方が補助点であるか、あるいは両方が補助点であってもよい。
同図(c)は、順に標高が低くなる複数の等高線C11〜C14を含む傾斜地において、等高線C12とC13の間の間隔が、同図(b)と同じく、図の中央部分で大きく広がっていて、点Ia、Ib、Icがいずれも同じ一対の等高線C12とC13の間に位置する特定点の例を示す。図において、点Rは同じ一対の等高線C12とC13の間に位置し、これらの三つの特定点Ia、Ib、Icのいずれもの補正対象範囲内にあり、したがって、これらの3つの特定点の補正対象格子点である。ここに示した格子点Rのように、3つの特定点の補正対象格子点であるが、他に補正元特定点が存在しない場合、当該補正対象格子点は3重重複領域内にあると言うことがあり、当該格子点を3重重複領域内格子点と呼ぶことがある。なお、本実施の形態では、傾斜地特定点を補正元特定点とする補正対象格子点の補正元特定点数の最大値は3であるとするが、その最大値は2でもよく、3より大きな値でもよい。また、非重複領域内格子点以外の格子点をまとめて重複領域内格子点と呼ぶことがある。特定点Ia、Ib、Icは、例えば一つが三角点又は基準点、他の二つが補助点であるか、あるいは三つとも補助点であってもよい。
同図(d)は、例えば山頂付近を示す等高線地図画像の例を示し、図では、順に標高が低くなる等高線C15〜C18のうち、等高線C15が閉じた等高線である例を示し、山頂付近はこの等高線C15の標高に近い平地と考えられる場合であり、点Iは閉じた等高線C15により囲まれている特定点(平地特定点)の例であり、点Rは、同じ等高線C15により囲まれている格子点(平地格子点)の例である。平地格子点Rと平地特定点は同じ等高線特定点Iの近傍に位置する補正対象平地格子点の一つを例示している。なお、等高線15は、完全に閉じた等高線点列であるが、格子点R、特定点Iは等高線により完全に取り囲まれていなくても実質的に取り囲まれていれば、平地格子点あるいは平地特定点として扱われる。ここで、実質的に取り囲まれているとは、後に説明するように、これらの点のいろいろな方位にある周辺の点を検出したときに、それらの周辺の点が同じ等高線上にあればよく、その等高線の一部が閉じていないくてもよい。
図1に戻り、標高データを生成可能なプログラム40は、まず、各格子点の標高を計算するのに使用するために、当該格子点の近傍にあり等高線上に位置する複数の近傍点を検出し、検出された複数の近傍点の位置と標高を用いて補間により当該格子点の標高を決定するようになっている。本実施の形態では、格子点の複数の近傍点を最急方位法により検出するようになっている。具体的には、標高データを生成可能なプログラム40は、起動されると、まず、格子点用最急方位探索部41を実行する。
本発明に係る標高データ生成装置1は、各格子点について複数の近傍点を検出する際に、傾斜地格子点については、当該傾斜地格子点がその間に位置する一対の等高線点列を少なくとも含む複数の等高線点列上にある複数の近傍点を前記等高線点列データと前記格子点データとに基づいて検出する。各平地格子点については、それを実質的に取り囲む単一の等高線点列とその外側の他の少なくとも一つの等高線点列を含む複数の標高が異なる等高線点列上に位置する、当該平地格子点の複数の近傍点を検出する。
より具体的には、格子点用最急方位探索部41は、各格子点について周囲の等高線の状況を調べ、各格子点について、等高線点列データ上に位置し、最も傾斜が急な方向にある複数の近傍の点を、当該格子点の近傍点として検出する。更に具体的には、格子点用最急方位探索部41は、各格子点について、その点から見て最も傾斜が急な方向にあり、かつ、等高線点列データ上にある1対の互いに逆方向にある点(以下、最急方位点と呼ぶことがある)p1、p2の座標と標高を検出し、それぞれの最急方位点に対して同様に最も傾斜が急な方向にあり、かつ等高線上にある、元の格子点から見て遠方にある点(以下、2次最急方位点と呼ぶことがある)q1、q2の位置と標高を検出する。
更に、格子点用最急方位探索部41は、以上の検出結果に基づいて当該格子点の属性を決定する。属性は、格子点の種別を表す属性であり、本実施の形態では、格子点の位置の種別を表す属性が使用される。具体的には、傾斜地点と平地点という属性が使用される。格子点用最急方位探索部41は処理結果として格子点用最急方位データ25を生成し、記憶装置20に記憶する。
図3は、複数の格子点に対して生成される格子点用最急方位データ25の例を示す図である。このデータの一つの行が一つの格子点に対応するものであり、各行には、対応する格子点の座標250、属性251、最急方位p1座標252、p1標高253、最急方位p2座標254、p2標高255、2次最急方位q1座標256、q1標高257、2次最急方位q2座標258、q2標高259を含むように構成される。
図4は、格子点用最急方位探索部41の処理の一例の概略フローチャートである。格子点用最急方位探索部41の処理は、非特許文献1に記載された最急方位法による処理とほぼ同じ原理に基づいて、各格子点に関して、その属性、その格子点の最急方位点p1及びp2の座標と標高並びに2次最急方位点q1及びq2の座標と標高を検出するようになっている。最急方位法は、注目する格子点を通る最急方位に沿った等高線断面に対して多項式補間を適用して、当該格子点の標高を決定するものである。まず、図3に例示したデータ構造を有する格子点用最急方位データ25の記憶領域を記憶装置20内に確保し、格子点座標250に、記憶装置20にあらかじめ記憶されている格子点データ22(図1)を記憶させる(ステップS411)。その後、属性が決定されていない格子点の中の1つを選ぶ(ステップS412)。以下、その格子点を選択格子点と呼ぶ。
つぎに選択格子点の周囲の状況を調べるために、選択格子点から複数の方位、例えば16方位に線分を延ばし、それぞれが等高線点列と最初に交わる点を周辺点として調べる。ここで得られた16個の周辺点の座標と標高を、選択格子点に対する格子点用周辺点データリスト24(図1)として、その選択格子点を識別する情報、例えば、選択格子点の座標と組にして記憶装置20内に記憶する(ステップS413)。このように、格子点用周辺点データリスト24は、各格子点に対して、その格子点が選択されたときに生成される。
つぎに、それらの周辺点の標高が全て同一か否かを判断する(ステップS414)。その結果、周辺点の標高の少なくとも一つが他と異なると判断されたときには、選択格子点の周辺は傾斜地であると考えられ、選択格子点の属性を傾斜地と決定し、格子点用最急方位データ25内の選択格子点に対する属性251として傾斜地点を表す属性を格納する(ステップS415A)。以下ではこの属性の格子点を傾斜地点あるいは傾斜地格子点と呼ぶことがある。更に、上記16個の周辺点のうちで、選択格子点に最も近くに位置する、等高線点列上の点を最急方位点p1として検出する。更に、上記16個の周辺点のうちで、点p1が位置する等高線点列とは標高が異なる他の等高線点列上にあり、選択選択格子点に最も近い他の点を他の最急方位点p2として検出し、点p1とp2のそれぞれの座標と標高を格子点用最急方位データ25内に、選択格子点に対する最急方位p1座標252、p1標高253、最急方位p2座標254、p2標高255として格納する(ステップS415B)。
更に、最急方位点p1から複数の方位(例えば16方位)に線分を延ばしてそれぞれがいずれかの等高線と最初に交わる点を周辺点として検出し、検出された16個の周辺点の内で、最急方位点p1から見て選択格子点とは逆方向にあり、かつ最急方位点p1に最も近い点を2次最急方位点q1として検出する。ここで、逆方向とは、最急方位点p1と選択格子点を結ぶ線分に対して垂直な一対の方位の両側のうち、選択格子点が含まれない側を向く方位のことである。同様に、最急方位点p2から複数の方位(例えば16方位)に線分を延ばしてそれぞれがいずれかの等高線と最初に交わる点を周辺点として検出し、検出された16個の周辺点の内で、最急方位点p2から見て選択格子点とは逆方向にあり、かつ最急方位点p2に最も近い点を2次最急方位点q2として検出する。
検出された2次最急方位点q1、q2のそれぞれの座標と標高を、格子点用最急方位データ25内に、選択格子点に対する2次最急方位q1座標256、q1標高257、2次最急方位q2座標258、q2標高259として格納する(ステップS415C)。この選択格子点では、点p1とq1を結ぶ経路が、選択格子点の、それぞれが位置する等高線点列に対する最急経路となり、点p2とq2を結ぶ経路が、選択格子点の、それぞれが位置する等高線点列に対する最急経路となる。選択された傾斜地格子点に関する処理はこれで終了し、処理はステップS417に移る。
図5は、選択格子点と等高線点列との間の異なる関係を示す図である。同図(a)は、図2(a)に示された等高線地図における、傾斜地にある格子点Rに対する、最急方位点p1、p2及び2次最急方位点q1、q2の例を示すものである。この図の場合、最急方位点p1、p2はそれぞれ等高線C2、C3上にあり、2次最急方位点q1、q2はそれぞれ等高線C1、C4上にある。符号181は、点列q2、p2、R、p1、q1を結ぶ折れ線を示す。その折れ線181は、後に説明するように、格子点Rの標高を決定するに使用される。
図4に戻り、ステップS414での判定の結果、選択格子点に対して検出された16個の周辺点の標高が全て一致すると判断されたときには、選択格子点は、単一の閉じた等高線点列により実質的に囲まれていると考えることができ、選択格子点の属性を平地点と決定し、格子点用最急方位データ25内の選択格子点に対する属性251として平地点を表す属性を格納する(ステップS416A)。以下ではこの属性の格子点を平地点あるいは平地格子点と呼ぶことがある。その格子点は平地にあるとしても、その等高線点列の標高を有する完全に平坦な地面上に位置する場合よりも、その等高線点列で囲まれた領域内でも緩やかに標高が変化する曲面上に位置するのが普通である。そこで、その選択格子点の標高をより正確に計算するためのデータとして、選択格子点の近傍に位置する複数の近傍点を検出する。
具体的には、上記16個の周辺点のうちで、選択格子点に最も近い点を最急方位点p1として検出し、選択格子点から見てその最急方位点p1とは正反対の方位にある周辺点を他の最急方位点p2として検出し、これらをいずれも選択格子点に対する最急方位点とし、それらの点p1、p2のそれぞれの座標と標高を、格子点用最急方位データ25(図3)内の上記選択格子点に対する最急方位p1座標252、p1標高253、最急方位p2座標254、p2標高255に記憶させる(ステップS416B)。
更に、ステップS415Cと同様に、最急方位点p1から複数の方位(例えば16方位)に線分を延ばしてそれぞれがいずれかの等高線と最初に交わる点を周辺点として検出し、検出された16個の周辺点の内で、最急方位点p1から見て選択格子点とは逆方向にあり、かつ最急方位点p1に最も近い、等高線上の点を2次最急方位点q1として検出する。同様に、最急方位点p2についても、2次最急方位点q2を検出する。検出された2次最急方位点q1、q2のそれぞれの座標と標高を、格子点用最急方位データ25内に、選択格子点に対する2次最急方位q1座標256、q1標高257、2次最急方位q2座標258、q2標高259として格納する(ステップS416C)。
図5(b)は、図2(d)の等高線地図の場合における、平地にある格子点Rに対する、最急方位点p1、p2及び2次最急方位点q1、q2の例を示すものである。この図の場合、最急方位点p1、p2はともに等高線C15上にあり、互いに正反対の方向にある。2次最急方位点q1、q2はともに等高線C16上にある。符号191は、点列q2、p2、R、p1、q1を結ぶ折れ線を示す。その折れ線191は、後に説明するように、格子点Rの標高を決定するに使用される。
なお、前述の非特許文献1では、ステップS414で述べたような、選択格子点から見て16個の方位における等高線上にある近傍点の標高が全て同じであると判断された格子点については、すぐに平地点とは判断しないで保留格子点と判断し、当該保留格子点に隣接する周囲の格子点の中に、当該保留格子点と当該隣接する格子点との両方が同じ等高線に囲まれ、かつ、傾斜地格子点であるような 隣接する格子点があるか否かを判定し、そのような隣接格子点がある場合には、保留格子点を傾斜地格子点と判断し、そのような隣接格子点がない場合には、その保留格子点を平地格子点と判断している。
しかし、本実施の形態では、簡単化のためにステップS414(図4)の判定により、選択格子点が平地であるか否かを判定するものとする。もちろん選択格子点が平地格子点であるか否かの判定を非特許文献1に記載のものあるいは他のものに変更してもよい。なお、ステップS414で選択格子点が平地にあると判断された場合には、通常は、最急方位点p1、p2は同じ閉じた等高線上に位置し、したがって、最急方位点p1、p2の標高は同じである。なお、図5(b)にあるように、対応する2次最急方位点q1、q2も一般には隣接する同じ等高線上にあり、したがって、2次最急方位点q1、q2の標高は同じである。しかし、場合によっては2次最急方位点q1、q2は互いに異なる等高線上にあってもよく、その場合には2次最急方位点q1、q2の標高は異なる。
図4に戻り、選択された平地格子点に関する処理は、ステップS416Cの実行により終了し、処理はステップS417に移る。ステップS417では、未処理の格子点があるか否かが判断され、未処理の格子点があるときには、処理はステップS411に戻り、未処理の格子点がないときには、格子点用最急方位探索部41の処理は終了する。
図1に戻り、標高データを生成可能なプログラム40は、格子点用最急方位探索部41の処理が終了すると、各格子点について、当該格子点の近傍に位置する、等高線上にある複数の近傍点の位置と標高に基づいて、当該格子点の標高を決定する。より具体的には、標高データを生成可能なプログラム40は、各格子点の標高の決定のために標高計算部42を実行する。本実施の形態では、標高計算部42は格子点用最急方位探索部41により生成された格子点用最急方位データ25に基づいて各格子点の標高を決定する。
図6は、標高計算部42の処理の一例の概略フローチャートである。まず、属性が傾斜地点であり標高が決定されていない傾斜地格子点を選択する(ステップS421)。この選択は、格子点用最急方位データ25に属性が傾斜地点とされている格子点であって、標高データ29(図1)内の同じ座標を有する格子点に対して標高が記憶されていない格子点を検出することにより行うことができる。
その後、選択された傾斜地格子点に対して決定された最急方位点p1、p2、2次最急方位点q1、q2に関するデータに基づいて、当該格子点の標高を計算するための傾斜地格子点用の標高計算式を決定し(ステップS422)、決定された標高計算式を用いて、当該傾斜地格子点の標高を決定し、決定した標高を標高データ29(図1)内にその格子点の標高として記憶する(ステップS423)。これらのステップS422、S423の処理の詳細は後に説明する。その後、属性が傾斜地点であり標高が決定されていない傾斜地格子点がまだあるか否かを判別し(ステップS424)、あればステップS421に戻り、以上の処理を繰り返す。なければ、ステップS425に移る。
ステップS425では、属性が平地点であり、標高が決定されていない平地格子点を選択する。その後、選択された平地格子点に対して決定された最急方位点p1、p2、2次最急方位点q1、q2に関するデータに基づいて、当該格子点の標高を計算するための平地格子点用の標高計算式を決定し(ステップS426)、決定された標高計算式を用いて、当該平地格子点の標高を決定し、決定した標高を標高データ29(図1)内にその格子点の標高として記憶する(ステップS427)。これらのステップS426、S427の処理の詳細は後に説明する。その後、属性が平地点であり標高が決定されていない平地格子点がまだあるか否かを判別し(ステップS428)、あればステップS425に戻り、以上の処理を繰り返す。なければ、標高計算部42の処理が終了する。
図7は、図6のステップS422での傾斜地格子点用の標高計算式の決定例とステップS423での傾斜地格子点の標高の計算例を説明するための図である。図6のステップS422とS423の処理の対象となる傾斜地格子点Rとその格子点Rに対して検出された近傍のいくつかの点q2、p2、p1、q1の例は、図5(a)に示したとおりである。図7(a)において、横軸は、当該選択格子点Rに対して検出された等高線地図上の近傍点q2、p2、R、p1、q1を結ぶ折れ線181(図5)をそれぞれの点の間の距離を維持しながら並べた直線上の座標Sを表す。座標Sq2、Sp2、Sp1、Sq1は、それぞれ上記折れ線181上の点q2、p2、p1、q1に対応する上記対応する直線上の座標を表し、座標Srは、傾斜地格子点Rに対する上記直線上の座標を表す。上記直線(横軸)の座標の原点は任意の点に決めてよい。点q2、p2、p1、q1に対する座標Sq2、Sp2、Sp1、Sq1は、隣接する点間の距離と原点の位置とにより決定される。同様に、座標Srも、点q1とp1間の距離及び点p1とR間の距離若しくは点q2とp2間の距離及び点p2とR間の距離と、原点の位置とにより決定することができる。なお、図5(a)等では、格子点R、近傍点p1、q1、q2、p2は、等高線地図という平面上に位置する点であるが、図7(a)等のように、標高を計算する方法を説明する図においては、これらの近傍点に対応する、3次元空間内に位置する点も同じ記号で図示している。また、以下では、この直線上の座標(例えばSr)を簡単化のために上記折れ線181上の対応する点(今の例では格子点R)の座標と呼ぶことがある。また、簡単化のために、横軸上のある座標の点の名称としてその座標を使用することがある。例えば座標Sq1の点を単に点Sq1と呼ぶことがある。また、折れ線181上の点(例えば点R)に対する横軸上の座標(例えばSr)を、折れ線181上のその点(R)の座標と呼ぶことがある。
符号L1、L21、L22、L3はそれぞれ点Sp1とSq1の間の距離、点SrとSp1の間の距離、点Sp2とSrの間の距離、点Sq2とSp2の間の距離を表す。縦軸は標高を表し、符号hp1、hp2、hq1、hq2はそれぞれ、点p1、p2、q1、q2における標高を表し、これらの標高は、それぞれの点を通過する等高線の標高として等高線点列データ21により与えられていて、既に選択格子点に対応して格子点用最急方位データ25内に記憶されている。H1、H2、H3はそれぞれ、点q1とp1間の標高差、点p1、p2間の標高差、点p2とq2間の標高差を表す。
同図(b)は、格子点Rの標高を補間により算出するための計算式の例として使用する、上記折れ線181上の座標Sの3次元の関数fr(S)を示す。この関数が傾斜地格子点用標高計算式として使用される。同図(c)は、上記関数fr(S)を決定するための条件を示す図である。符号51、52はそれぞれ点p1、p2における標高が点p1、p2における等高線の標高hp1、hp2であることを示し、α、βは後述の平均勾配を示す。
1次差分法により上記3次元の関数を決定するときには、上記α、βは符号55、56により与えられる。符号55は点p2、q1の間の平均勾配αを表し、符号56は点q2、p1の間の平均勾配αを表し、符号53は点p1における関数fr(S)の微係数(勾配)が上記平均勾配αに等しいことを示し、符号54は点p2における関数fr(S)の微分係数(勾配)が上記平均勾配βに等しいことを示す。これらの6つの条件により、同図(b)に示す3次元関数の係数a、b、c、dを決定できる。この決定を行う処理の中で、その決定に先立って点q1、p1、R、p2、q2の、折れ線181上の座標をそれらの点の間の距離と原点の位置に基づいて決定する必要があることは言うまでもない。こうして、3次元関数の係数a、b、c、dを決定することで、傾斜地格子点用標高計算式fr(S)を決定できたことになる。
図6のステップS422では、以上の考えにより図7(b)に示す傾斜地格子点用標高計算式fr(S)が決定され、同図のステップS423では、上記決定された計算式fr(S)において、格子点Rに対応する横軸上の座標Srを入力して関数値fr(Sr)が格子点Rにおける標高として計算され、標高データ29(図1)内に当該選択格子点の標高として記憶される。なお、以上では、傾斜地格子点用標高計算式fr(S)の決定と、傾斜地格子点Rにおける標高値fr(Sr)の計算とを別のステップとして説明したが、これらは一つの式を用いて行うことも可能である。すなわち、図7(e)に示す標高値fr(Sr)の計算式として、その中の係数a、b、c、dに代えてそれぞれの係数を計算する式を代入した式を使用すれば、係数a、b、c、dは別に計算されず標高fr(Sr)の計算式の計算の途中で計算される。そのように計算した場合でも、本発明に関しては、傾斜地格子点用の標高計算式の決定と、傾斜地格子点Rにおける標高値fr(Sr)の計算とを行っていることには変わりはない。このことは後に述べる他の傾斜地格子点の標高の計算あるいはその補正あるいは傾斜地格子点の近傍の格子点対応点の標高の計算等の場合についても言えることである。
以上のようにして、標高計算部42は、選択格子点Rが傾斜地点であるとき、近傍点であるp1、p2、q1、q2の位置と標高と、選択格子点Rの位置とに基づいて、当該選択格子点の標高を決定する。すなわち、近傍点であるp1、p2、q1、q2の位置と選択格子点Rの位置とに基づいて、近傍点p1、p2、q1、q2の標高を補間して当該選択格子点の標高を決定する。このように、本実施の形態では、傾斜地格子点Rを通る等高線断面曲線を近似する線分として曲線を使用して、その格子点の標高を補間により算出する。更に、最急方位法では、上記曲線として、格子点Rを通る最急方位に沿った等高線断面曲線を近似する、例えば図7(b)に示す曲線を使用する。
図8は、図6のステップS426での平地格子点用の標高計算式の決定例とステップS427での平地格子点の標高の計算例を説明するための図である。ステップS426とS427の処理の対象となる平地格子点Rとその格子点Rに対して検出された近傍のいくつかの点q2、p2、p1、q1の例は、図5(b)に示したとおりである。図8(a)において、横軸は、当該選択格子点Rに対して検出された等高線地図上の点q2、p2、p1、q1を結ぶ折れ線191(図5(b))をそれぞれの点の間の距離を維持しながら並べた直線上の座標Sを表す。座標Sq2、Sp2、Sp1、Sq1は、それぞれ上記折れ線191上の点q2、p2、p1、q1に対応する上記直線上の座標を表し、座標Srは、平地格子点である選択格子点Rに対する上記直線上の座標を表す。上記直線(横軸)の座標の原点は任意の点に決めてよい。
符号L1、L21、L22、L3はそれぞれ点Sp1とSq1の間の距離、点Srと点Spとの間の距離、点Sp2とSrの間の距離、点Sq2とSp2の間の距離を表す。縦軸は標高を表し、hp1、hp2、hq1、hq2はそれぞれ、点p1、p2、q1、q2における標高を表し、これらの標高は、それぞれの点を通過する等高線の標高として等高線点列データ21により与えられていて、既に選択格子点に対応して格子点用最急方位データ25内に記憶されている。ただし、平地格子点Rについては、既に述べたように、通常は、最急方位点p1、p2は閉じた一つの等高線上にあるので、それらに対する標高hp1、hp2は図に示すように同一であると仮定している。更に対応する2次最急方位点もその等高線に隣接する同一の等高線上にある場合が多いので、それらに対する標高hq1、hq2は図に示すように同一であると仮定している。
同図(b)は、平地格子点Rの標高を補間により算出するための平地点用標高計算式の一例として、上記折れ線191上の座標Sの2次関数である関数fr(S)を示す。符号57aの式が示すように、関数fr(S)は、上記折れ線191上の座標Sの2次関数である二つの関数f1(S)、f2(S)の平均値である。関数f1(S)とf2(S)は、それぞれ符号57bと57cが示すように2次関数である。同図(a)には、関数f1(S)の一例である曲線101、関数f2(S) の一例である曲線102及びそれらの平均値である関数fr(S)の曲線100の例を示している。
同図(a)に示されるように、関数f1(S)は、点q1、p1、p2を通過する曲線を表す関数であり、この関数は、選択格子点Rを通過し等高線地図の一つの断面を表す等高線断面曲線のうち、主に選択格子点Rの図の右側の部分を近似する関数である。関数f1(S)の係数a1、b1、c1は符号58に示されるように、点p2、p1、q1に対応する標高を有する3次元地形上の点を通過するという条件を満たすように決定される。関数f2(S)は点q2、p2、p1を通過する曲線を表す関数であり、この関数は、選択格子点Rを通過し等高線地図の一つの断面を表す等高線断面曲線のうち、主に選択格子点Rの図の左側の部分を近似する関数である。関数f2(S)の係数a2、b2、c2は、符号59に示されるように、点q2、p2、p1に対応する標高を有する3次元地形上の点を通過するという条件を満たすように決定される。関数fr(S)として、これらの二つの関数の平均値を使用することにより、関数fr(S)は、点p2、p1、q1、q2を通過し、選択格子点Rの図の左右のいずれにおいても等高線地図の一つの断面を表す等高線断面曲線を滑らかに近似する曲線とすることができる。図6のステップS426では、このように平地格子点用標高計算式として図8(b)の関数fr(S)が決定される。図6のステップS427での平地格子点の標高の計算は、この関数fr(S)の変数Sとして選択格子点Rの座標Srを入力して関数値fr(Sr)を計算することにより行われる。
以上のようにして、標高計算部42は、選択格子点Rが平地点であるとき、近傍点であるp1、p2、q1、q2の座標と標高と、選択格子点Rの座標とに基づいて、当該選択格子点の標高を決定する。すなわち、近傍点であるp1、p2、q1、q2の位置と選択格子点Rの位置とに基づいて、近傍点p1、p2、q1、q2の標高を補間して当該選択格子点の標高を決定する。このように、本実施の形態では、平地格子点Rを通る等高線断面曲線を近似する線分として曲線を使用し、その平地格子点の標高を補間により算出する。更に、最急方位法では、上記曲線として、平地格子点Rを通る最急方位に沿った等高線断面曲線を近似する曲線を使用する。本実施の形態では、その曲線としては、例えば図8(a)に示す曲線が使用される。
図1に戻り、標高データ生成装置1は、複数の等高線と三角点、基準点あるいは補助点のような複数の特定点を含む2次元等高線地図に含まれた前記複数の等高線のそれぞれを点列で表す等高線点列データと前記複数の特定点のそれぞれの座標と標高を表す特定点データから、それぞれ当該地図を分割して得られる複数のメッシュの頂点である複数の格子点のそれぞれの標高として、それぞれの格子点の近傍の特定点の標高により補正された標高を決定可能になっている。より具体的には、標高データを生成可能なプログラム40は、標高計算部42により決定された標高のうち、各特定点の近傍の格子点の標高を補正するために補正標高決定部43を実行可能になっている。
図1に戻ると、補正標高決定部43は、一例として、特定点用最急方位探索部44と、近傍格子点特定点検出部45と、未処理特定点選択部46と、傾斜地格子点用の補正標高決定部47と、平地格子点用の補正標高決定部48とにより構成することができる。近傍格子点特定点検出部45には、後に説明するように近傍格子点特定点登録部490が含まれている。傾斜地格子点用の補正標高決定部47には、傾斜地格子点用の非重複補正標高決定部500、傾斜地格子点用の2重補正標高決定部510、傾斜地格子点用の3重補正標高決定部520が含まれている。
本実施の形態では、傾斜地にある格子点の近傍に複数の特定点が存在する場合に、これらの処理部を使用して、それらの特定点の標高と近傍の等高線上の複数の点の標高を使用して当該格子点の標高を補正した標高データを生成することが可能である。また、一つの等高線点列に囲まれた平地にある格子点の近傍に特定点が存在する場合に、その特定点の標高と、近傍の複数の等高線上の点の標高を使用して当該格子点の標高を補正した標高データを生成できる。
図9は、補正標高決定部43の処理の一例の概略フローチャートである。補正標高決定部43は、起動されると、まず特定点用最急方位探索部44を実行する。特定点用最急方位探索部44は、格子点用最急方位探索部41と同様に、三角点データ23A、基準点データ23B、補助点データ23Cのような特定点データ23で示される複数の特定点の各々について、その属性と最急方位点p1、p2と2次最急方位点q1、q2とを決定してそれらのデータを含む特定点用最急方位データ27を生成する。
図10は、複数の特定点に対して生成される特定点用最急方位データ27の例を示す図である。特定点用最急方位データ27は格子点用最急方位データ25と同様なデータであり、このデータの一つの行が一つの特定点に対応するものであり、各行に、対応する特定点の座標270、属性271、その特定点に対する最急方位p1座標272、p1標高273、最急方位p2座標274、p2標高275、2次最急方位q1座標276、q1標高277、2次最急方位q2座標278、q2標高279を含むように構成される。
図9に戻り、特定点用最急方位探索部44の処理は、格子点用最急方位探索部41と同様である。特定点用最急方位探索部44は、上記特定点用最急方位データ27を格納する領域を記憶装置20内に確保し、特定点データが示す特定点の座標を上記特定点用最急方位データ27内の座標270として格納し、その後、格子点用最急方位探索部41と同様に、各特定点に対する特定点用周辺点データリスト26を利用して各特定点の属性と最急方位点p1、p2、2次最急方位点q1、q2を検出して、上記特定点用最急方位データ27内に、属性271、最急方位p1座標272、p1標高273、最急方位p2座標274、p2標高275、2次最急方位q1座標276、q1標高277、2次最急方位q2座標278、q2標高279を格納する。
図9に戻り、補正標高決定部43は、その後、近傍格子点特定点検出部45を実行する。近傍格子点特定点検出部45は、近傍格子点データ28Aと近傍特定点データ28Bを生成する。近傍格子点データ28Aは、各特定点の近傍に位置する補正対象格子点に関する情報を含むデータであり、近傍特定点データ28Bは、当該特定点の近傍にあり当該特定点による標高の補正の対象となる補正対象格子点に対する補正元特定点に関する情報を含むデータである。
図11は、近傍格子点データ28Aと近傍特定点データ28Bの例を示す。同図(a)は、近傍格子点データ28Aの例を示し、近傍格子点データ28Aの各行は、一つの特定点に対応し、その特定点の座標281と、その特定点の近傍にある一つ又は補正対象格子点の全てに対して標高の補正が完了したことを示す補正完了フラグ282と、当該特定点の近傍にある、当該特定点による補正の対象となる一つ又は複数の補正対象格子点の総数283と、それらの補正対象格子点の各々について、その座標284とその格子点に対する標高の補正の完了を示す補正完了フラグ285との組を複数組記憶可能になっている。
ここで、各特定点による補正対象格子点は、所定の条件を満たす近傍の格子点である。すなわち、当該特定点の補正対象格子点は、当該特定点からの距離が、利用者があらかじめ指定した補正適用範囲内にあり、かつ、当該特定点が標高が異なる一対の等高線点列間に位置する傾斜地特定点の場合には、当該補正対象格子点も当該一対の等高線点列の間に位置し、当該特定点が閉じた等高線点列により囲まれた平地にある平地特定点の場合には、当該補正対象格子点も当該特定点を取り囲む当該等高線内に位置することである。各特定点について複数の近傍の格子点が補正対象となりうるので、近傍格子点データ28A内には、複数の格子点の各々について座標284と補正完了フラグ285が記憶されるようになっている。特定点に対する補正完了フラグ282と補正対象格子点に対する補正完了フラグ285の初期状態はリセット状態であり、補正対象格子点数283の初期値は0でる。
なお、補正対象格子点を、このように特定点からの距離だけでなく、特定点と周辺の等高線との関係と同じ関係を当該周辺の等高線に対して有する格子点に限定するのは、特定点から所定の距離内に位置する近傍の格子点であっても、特定点と周辺の等高線との位置関係と異なる位置関係にある格子点については、特定点の標高の当該格子点の標高への影響を推測することが難しいからである。逆に、特定点と周囲の等高線との関係が同じ関係にある格子点については、特定点の標高を反映するように特定点を通過する等高線断面曲線を近似する線分を決定でき、その線分を用いて当該近傍の格子点を通過する等高線断面曲線を近似する線分も変更することができるので当該格子点の標高を補正することが可能となるからである。
図11(b)は、近傍特定点データ28Bの例を示し、このデータ28Bの各行は、いずれかの特定点の補正対象となる、上記近傍格子点データ28Aに座標が登録されている補正対象格子点の一つに対応する。各行には、その格子点の座標286と、当該格子点を補正対象とする補正対象元特定点の総数287と、それらの特定点の各々の座標288とを記憶可能になっている。同一の格子点が一つ又は複数の特定点の補正対象になる場合があるので、近傍特定点データ28Bには、各補正対象格子点の補正元特定点の総数287とそれぞれの座標288が記憶される。総数287の初期値は0である。
図12は、近傍格子点特定点検出部45の処理の一例の概略フローチャートである。近傍格子点特定点検出部45は、起動されると、まず特定点の補正適用範囲を示す補正適用範囲データを利用者に入力させる(ステップS451)。補正適用範囲データは、補正適用範囲が特定点を中心とする円形の範囲とする場合には、その半径を示すものでもよく、補正適用範囲が特定点を囲む正方形領域であるときには、その一辺の長さ又はその半分を示すものでもよい。なお、半径あるいは一辺の長さあるいはその半分の長さの代わりに、その半径あるいは一辺の長さあるいはその半分の長さに含まれる格子点数を示すものでもよい。つぎに近傍格子点特定点検出部45でまだ処理されていない未処理の特定点の一つを特定点用最急方位データ27から選択する(ステップS452)。以下では、この選択された特定点を、近傍格子点特定点検出部45の処理の説明の間、選択特定点と呼ぶことがある。
つぎに、当該選択特定点の属性が傾斜地点か平地点かを判断し(ステップS453)、当該属性が傾斜地である場合には、補正対象となる傾斜地格子点の検出を試みる(ステップS454)。補正対象傾斜地格子点は、当該選択特定点から見て上記指定された補正適用範囲内にあり、当該選択特定点の両側に位置する一対の最も近い等高線点列(すなわち、当該選択特定点の最急方位点p1、p2がそれぞれ位置する一対の等高線点列)の間にあるという条件を満たすものである。一方、ステップS453において、選択特定点が平地点であると判断されたときには、処理はステップS455に移り、そこでは補正対象となる平地格子点の検出を試みる。補正対象平地格子点は、当該選択特定点の上記補正適用範囲内にあり、当該選択特定点を実質的に取り囲む等高線点列により実質的に取り囲まれているという条件を満たす平地格子点である。なお、ステップS454、S455のいずれにおいても、複数の補正対象格子点がある場合にはそれらを全て検出する。
ステップS454又はステップS455のいずれかを実行した後に、ステップS456において、ステップS454又はS455での検出が成功したか否かが判断され、検出が成功したときには、近傍格子点特定点登録部490が実行され、当該選択特定点とそれに対する補正対象格子点に関する情報が、後に説明するようにして近傍格子点データ28Aと近傍特定点データ28Bに登録される。
図13は、近傍格子点特定点登録部490の処理の一例の概略フローチャートである。まず、近傍格子点データ28A(図10(a))内に、選択特定点の座標281と、その特定点に対応して、検出された補正対象格子点の座標284を格納し、対応する補正対象格子点数283を1だけ増大する(ステップS491)。更に、近傍特定点データ28B(図10(b))に関しては、その検出された補正対象格子点の座標がそこに既に格納されているか否かが判断される(ステップS492)。本実施の態様では、図2(b)又は(c)に例示したように一つの格子点が複数の特定点の補正対象格子点になりうると仮定している。したがって、他の特定点の処理により当該格子点の座標が近傍特定点データ28Bに既に登録されている可能性がある。そこでステップS492の判断が実行される。
ステップS492の判断の結果、当該格子点の座標が近傍特定点データ28B内に登録されていないと判断されたときには、近傍特定点データ28B内に、当該格子点の座標を補正対象格子点座標286として登録し、その格子点に対応して、当該特定点の座標を補正元特定点座標288として登録し、補正元特定点数287の総数を1だけ増大する(ステップS493)。もしステップS492において、当該格子点の座標が既に近傍特定点データ28Bに登録されていると判断された場合には、近傍特定点データ28B内に、その登録された補正対象格子点の座標286に対応して、当該特定点の座標を補正元特定点座標288として登録し、更に対応する補正元特定点数287を1だけ増大する(ステップS494)。
その後、ステップS495において、他に検出された補正対象格子点があるか否かが判断される。近傍格子点特定点検出部45のステップS454又はS455(図12)で複数の格子点が検出されている場合、他の補正対象格子点が検出されていることになる。この場合には、処理はステップS496に進む。同じ特定点に対して他の補正対象格子点が検出されている場合には、近傍格子点データ28Aには既に当該特定点の座標が登録されている。したがって、ステップS496では、当該特定点の座標281に対応して、当該他の格子点の座標を補正対象格子点の座標284として近傍格子点データ28Aに追加して登録し、対応する補正対象格子点数283を1だけ増大する。
その後ステップS492及びステップS493又はS494の一方が同様に実行される。以上の処理が他の検出された全ての補正対象格子点に対して繰り返されると、ステップS495の判断により、他の補正対象格子点がもはや検出されていないと判断され、近傍格子点特定点登録部490の処理が終了し、処理は近傍格子点特定点検出部45(図12)に戻る。なお、近傍格子点特定点検出部45のステップS454又はS455で1個の補正対象格子点しか検出されていない場合も、ステップS495による判断においては、他の補正対象格子点は検出されていないと判断されるので、近傍格子点特定点登録部490の処理は終了し、処理は近傍格子点特定点検出部45(図12)に戻る。
図12に戻り、近傍格子点特定点登録部490の処理が終了したときには、近傍格子点特定点検出部45では、近傍格子点特定点検出部45の処理がまだ実行されていないという意味での未処理の特定点があるか否かを特定点用最急方位データ27に基づいて判断し(ステップS457)、ある場合には、処理はステップS452に移り、そのような未処理の特定点の一つがステップS452で検出され、ステップS453、S454、S455、近傍格子点特定点登録部490が繰り返される。その後、未処理の特定点がなくなったとステップS457で判断されたときに、近傍格子点特定点検出部45の処理は終了する。
こうして、近傍格子点データ28A(図11(a))には、特定点用最急方位データ27に格納された複数の特定点のうち、近傍に補正対象格子点がある複数の補正元特定点の各々について、その座標281と、それぞれの補正対象格子点の座標284とが記憶される。いずれかの特定点の近傍に補正対象格子点が複数個ある場合には、それぞれの補正対象格子点の座標284が記憶される。近傍の補正対象格子点の総数283も記憶される。各補正対象格子点座標284に対応して記憶される補正完了フラグ285は最初はリセットされたままである。一方、近傍特定点データ28B(図11(b))には、近傍格子点データ28Aに格納された補正対象格子点の座標の各々に対応して、その座標286と、その補正対象格子点に対する補正元特定点の座標288とが記憶される。その補正対象格子点の近傍にその格子点を補正対象格子とする特定点が複数個ある場合には、それぞれの特定点の座標が補正元特定点座標288として記憶され、補正元特定点数287もその総数だけ増大される。
近傍格子点特定点検出部45(図12)の処理が終了すると、処理は補正標高決定部43(図9)に戻る。図9に戻ると、補正標高決定部43では、未処理特定点選択部46が実行される。ここでは、標高補正処理がまだ実行されていないという意味で未処理の特定点の選択が試みられる(ステップS461)。選択の対象となる特定点は、近傍格子点データ28A(図11(a))に座標281が登録された多数の特定点のうち、補正完了フラグ282がリセットされた状態にある特定点である。ステップS462において、選択が成功して一つの未処理の特定点が選択されたと判断された場合(以下ではステップS461で選択された特定点を、補正標高決定部43における処理に関する説明において選択特定点と呼ぶことがある)、つぎに特定点用最急方位データ27に登録された選択特定点の属性を判別する(ステップS463)。属性が傾斜地点であるときには、傾斜地格子点用の補正標高決定部47を呼び出し、属性が平地点であるときには、平地格子点用の補正標高決定部48を呼び出す。
図14は、傾斜地格子点用の補正標高決定部47の処理の一例の概略フローチャートである。傾斜地格子点用の補正標高決定部47は、補正標高決定部43から呼び出されると、まず、選択特定点の一つの補正対象格子点を選択する(ステップS471)。すなわち、近傍格子点データ28A内に当該選択特定点の座標281に対応して座標284が記憶されたいずれか一つの補正対象格子点であって、対応して記憶される補正完了フラグ285がセットされていない格子点を選択する。この格子点を、傾斜地格子点用の補正標高決定部47の処理の説明に関して選択補正対象格子点と呼ぶことがある。つぎに、選択された補正対象格子点に対する補正元特定点の数を判別する(ステップS472)。すなわち、近傍特定点データ28B(図11(b))内に、その選択された補正対象格子点の座標286に対応して記憶された補正元特定点数287の値を判別する。
もし補正元特定点数287の値が1の場合、選択補正対象格子点は非重複領域内の傾斜地格子点であり、このような補正対象格子点に対しては、傾斜地格子点用の非重複補正標高決定部500が実行される。補正元特定点数287の値が2の場合、選択補正対象格子点は2重重複領域内の傾斜地格子点であり、このような選択補正対象格子点に対して傾斜地格子点用の2重補正標高決定部510が実行される。補正元特定点数287の値が3の場合、選択補正対象格子点は3重重複領域内の傾斜地格子点であり、傾斜地格子点用の3重補正標高決定部520が実行される。以下において、傾斜地格子点用の非重複補正標高決定部500、傾斜地格子点用の2重補正標高決定部510、傾斜地格子点用の3重補正標高決定部520の処理を説明する。
図15は、傾斜地格子点用の非重複補正標高決定部500の処理の一例の概略フローチャートである。非重複補正標高決定部500は、まず、傾斜地特定点用の標高計算式を決定する(ステップS501)。本実施の形態では、補正元特定点を通過する等高線断面曲線を近似する傾斜地特定点用の標高計算式が決定される。この計算式の決定方法は後に説明する。つぎに、上記のようにして得られた計算式から、補正対象格子点の補正された後の標高を計算するための非重複領域内の傾斜地格子点に対する傾斜地格子点用の標高補正式を決定する(ステップS502)。この決定方法も後に説明する。得られた標高補正式に基づいて、補正対象格子点の補正された標高を計算して標高データ29に記憶された当該格子点の標高を更新する(ステップS503)。
図16は、図15のステップS501、502、503におけるそれぞれ傾斜地特定点用の標高計算式の決定、補正対象格子点に対する標高補正式の決定及び当該補正対象格子の補正後の標高の計算の手順を説明するための図である。図16(a)は、図2(a)の等高線図の例において、傾斜地特定点Iの補正対象格子点である非重複領域内の傾斜地格子点Rの補正後の標高の計算に使用される、それらの傾斜地特定点Iと傾斜地格子点Rの近傍の点を示す図である。
傾斜地特定点Iの近傍にある点BとCは、特定点用最急方位探索部44により傾斜地特定点Iに対して決定された二つの最急方位点を例示し、点AとDは、同様にそれぞれの最急方位点に対して決定された二つの2次最急方位点を例示している。格子点Rの周辺にある点p1とp2は、それぞれ格子点用最急方位探索部41により補正対象の傾斜地格子点Rに対して決定された二つの最急方位点の例であり、点q1とq2は、当該格子点Rに対して同様に決定された二つの2次最急方位点の例である。格子点Rに関する近傍点p1、p2、q1、q2及び折れ線181は、図5(b)の等高線図に例示されたものと同じである。
まず、図15のステップS501における傾斜地特定点用の標高計算式の決定は、例えば以下のようにしてなされる。図16(b)において、横軸は、図16(a)に示された等高線地図上で、点A、B、C、Dを結ぶ折れ線171をそれぞれの点の間の距離を維持しながら並べた直線上の座標Sを表す。以下では、この直線上の点の座標を簡単化のために上記折れ線171上の対応する点の座標と呼ぶことがある。上記直線上の点Sa、Sb、Sc、Sdは、それぞれ上記折れ線171上の点A、B、C、Dに対応する横軸上の座標を表し、Siは、特定点Iに対する上記折れ線171上の座標を表す。横軸の座標の原点は原理的には任意の点に決めてよいが、後に述べる周辺の格子点の標高を補正するときのために、点Sbから点Scに至る部分に対して座標Sの値が0から1となるように、横軸の座標を正規化しておくのがよい。
符号L1、L21、L22、L3は、それぞれ点Scと点Sdとの間の距離、点Siと点Scとの間の距離、点Sbと点Siとの間の距離、点Saと点Sbとの間の距離を表す。縦軸は標高を表し、ha、hb、hc、hdはそれぞれ点A、B、C、Dにおける標高を表し、これらの標高は、それぞれの点を通過する等高線の標高として等高線点列データ21により与えられている。hiは、特定点Iの標高であり、この標高は特定点データにより与えられている。H1、H21、H22、H3はそれぞれ、点DとC間の標高差、点CとI間の標高差、点IとB間の標高差、点BとA間の標高差を表す。符号Irと座標Srとは後に説明する。
上記折れ線171上の点における標高を表す傾斜地特定点用の標高計算式として使用する関数fi(S)の一例は、同図(c)の符号60に示すように、同図(b)の横軸上の座標SbからSiに対して有効な関数fi1(S)と、横軸上の座標SiからScに対して有効な関数fi2(S)との組により与えられる。いずれの関数も、図7(b)に例示されたのと同じく、上記折れ線171上の座標、すなわち、折れ線171に対する図16(b)の横軸上の座標Sの3次元の関数である。同図(d)は、上記関数fi1(S)、fi2(S)を決定するための条件を示す図である。符号61、62は、それぞれ点B、Iにおける関数値fi1(Sb)、fi1(Si)が点B、Iにおける等高線の標高hb、hiであることを示し、符号63、64は、関数fi1の点B、Iにおける微分係数(勾配)があらかじめ指定された値β、γであることを示す。符号65、66は、それぞれ点I、Cにおける関数値fi2(Si)、fi2(Sc)が点I、Cにおける等高線の標高hi、hcであることを示し、符号67、68は、関数fi2の点I、Cにおける微分係数(勾配)があらかじめ指定された値γ、αであることを示す。
1次差分法により上記3次元の関数fi1、fi2を決定するときには、上記α、β、γは、符号69、70、71により与えられる。符号69は点Iと点Dの間の平均勾配αを表し、符号70は点Aと点Iの間の平均勾配βを表し、符号71は点Bと点Cの間の平均勾配γを示す。符号63は点Bにおける関数fi1(S)の勾配が上記平均勾配βに等しいことを示し、符号64は点Iにおける関数fi1(S)の勾配が上記平均勾配γに等しいことを示し、符号67は点Iにおける関数fi2(S)の勾配が上記平均勾配γに等しいことを示し、符号68は点Cにおける関数fi2(S)の勾配が上記平均勾配αに等しいことを示す。これらの条件により、関数fi1(S)、fi2(S)という二つの3次元関数のそれぞれの係数a、b、c、dが決定される。こうして関数fi1(S)、fi2(S)が決定され、傾斜地特定点用の標高計算式fi(S)も決定される。このように、本実施の形態では、傾斜地特定点用の標高計算式fi(S)も最急方位法を使用して決定され、この標高計算式fi(S)は、特定点Iを通過する等高線断面曲線をよく近似するものである。以上のようにして、図15のステップS501における傾斜地特定点用の標高計算式の決定がなされる。
図15のステップS502における傾斜地格子点用標高補正式の決定は、例えば以下のようにして実行することができる。特定点Iの標高により補正した後の格子点Rを通る折れ線181(図16)上の点における標高を表す傾斜地格子点用標高補正式として、例えば図16(e)内に符号72で示す式1で定義される関数fm(S)を用いることができる。式1において、fr(S)は、図5(a)に示した、補正対象格子点Rと点p1、p2を結ぶ折れ線181上の点における標高を与える傾斜地格子点用の標高計算式として、図6のステップS422で決定され、図7(b)に例示されたものであるが、図6とは異なり、その折れ線181を直線に延ばしたときのその直線上での点p1から点p2に至る部分の座標Sが0〜1となるように、当該直線上の座標Sが正規化されているものである。この関数fr(S)は、格子点Rを通過する等高線断面曲線を近似する関数である。
関数fi(S)は、図15のステップS501で決定された、特定点Iを通る折れ線171上の点における標高をその点の座標Sの関数として与える傾斜特定点用の標高計算式であり、図16(c)の符号60で示されたものである。前述のように、この折れ線171上でも、座標Sは、図16(a)に示された特定点Iに対する最急方位点Bから特定点Iを経由して他の最急方位点Cに至る折れ線部分上で値0から1となるように定められている。したがって、関数値fm(S)は、傾斜地格子点用の標高計算式fr(S)と傾斜特定点用の標高計算式fi(S)とをそれぞれ重みωと(1−ω)を付けて加算したものである。
折れ線171上の座標Sと折れ線181上の座標Sが同じ一対の等高線C3とC2上の点BとC及び点p1とp2の間で0から1の範囲になるように正規化されているので、特定点Iを通る折れ線171に沿って見たときの等高線C2とC3間の距離が格子点Rを通る折れ線181に沿って見たときの等高線C2とC3間の距離と異なっていても、特定点Iを通る折れ線171上の座標Sの点と上記一対の等高線に対する位置関係は、格子点Rを通る折れ線181の同じ座標Sの点と上記一対の等高線に対する位置関係とほぼ同じになると考えられるので、特定点Iを通る折れ線171上の座標Sの点の標高が、折れ線171上の同じ座標Sの点の標高に最も強く影響すると考えることができる。したがって、傾斜特定点用の標高計算式fi(S)でもって、傾斜格子点用の標高計算式fr(S)を補正して、傾斜格子点用の補正後の標高計算式fm(S)を決定することが望ましいと考えられる。
式1で使用されている重みωには、同図(e)の符号73で示す式2に示すように、距離Dと最大距離Dmaxとの比が使用されている。距離Dは、特定点Iを通る折れ線171上の座標Sの点と、格子点Rを通る折れ線181の同じ座標Sの点の間の距離である。最大距離Dmaxは、図12で示した近傍格子点特定点検出部45のステップS451でユーザに指定させた補正適用範囲データで示される、補正対象格子点となりうる格子点までの最大距離である。距離の計算の起点は、後に説明する、格子点を通る折れ線上の格子点の座標Srと同じ座標Srを有する、特定点を通る後に説明する折れ線上にある点(格子点対応点)である。したがって、最大距離Dmaxは、特定点を通る折れ線上にある格子点対応点から補正対象格子点となりうる格子点までの最大距離である。したがって、最大距離を計算する起点は、補正対象格子点の座標Srに依存して変化するので、補正対象格子点毎に異なることになる。しかし、そのような最大距離の起点に代えて、近似的に、特定点Iを最大距離の計算の起点に使用してもよい。この場合は、最大距離は、特定点から補正対象格子点となりうる格子点までの最大距離となり、最大距離の計算の起点は、補正対象格子点の位置に依存しない。本実施の形態では、特に断らない限り、そのように最大距離Dmaxについては、特定点Iからの最大距離を使用する。しかし、後に説明するように、最大距離Dmaxとして、特定点を通る折れ線上にある格子点対応点から補正対象格子点となりうる格子点までの最大距離を使用するのが望ましい。なお、補正対象範囲が矩形のような場合には、最大距離Dmaxが特定点と補正対象格子点を結ぶ方向により異なる。以上のようにして、図15のステップS502における傾斜特定点用標高計算式の決定が実行される。
図15のステップS503における補正対象格子点の標高の補正は例えば以下のようにして実行される。まず、補正後の格子点Rの標高として、上記関数fm(S)の、座標Sが格子点Rの座標Srのときの計算する。この補正後の標高fm(Sr)は、関数値fr(Sr)と関数値fi(Sr)とを重みωと(1−ω)を用いて加算したものとなる。ここで関数値fr(Sr)は格子点Rの補正前の標高値であり、既に計算されて標高データーた29内に格納されているので、利用することができる。関数値fi(Sr)は、特定点Iを通る折れ線171上の座標Sが、格子点を通る折れ線181上における格子点の座標Srと同じである点(以下、格子点対応点と呼ぶことがある)Irにおける関数fi(S)が示す標高である。
本発明では、一般的には、補正対象格子点Rの補正後の標高は、補正対象格子点Rに対応する格子点対応点Irの標高fi(Sr)と、補正対象格子点Rと格子点対応点Irとの間の位置関係と、補正対象格子点Rに対して既に検出された複数の近傍点p1,q1、p2、q2の標高とそれぞれの折れ線181上の位置と、補正対象格子点Rの折れ線181上の位置とに基づいて決定する。
今仮定しているように、補正対象格子点Rの補正前の標高値fr(Sr)が、補正対象格子点Rの複数の近傍点p1,q1、p2、q2の標高とそれぞれの折れ線181上の位置と、補正対象格子点Rの折れ線181上の位置とに基づいて既に計算されている場合には、補正対象格子点Rの補正後の標高は、補正対象格子点Rに対応する格子点対応点Irの標高fi(Sr)と、補正対象格子点Rに対して既に決定された補正前の標高fr(Sr)と、補正対象格子点Rと格子点対応点Irとの間の位置関係とに依存して決定される。一般的には、式1における重みωと(1−ω)は、補正対象格子点Rと格子点対応点Irとの間の位置関係に依存して決定される。式1では、位置関係の例として補正対象格子点Rと格子点対応点Irとの間の距離Dが使用され、上記の二つの重みが、式2に示すようにその距離Dと最大距離Dmaxとの比により決定されている。ステップS503(図15)で補正後の標高値を計算する際には、距離Dを計算する必要があることはいうまでもない。その計算は、補正対象格子点Rと対応する格子点対応点Irのそれぞれの地図上の2次元座標値を判別して、それらの座標値により行えばよい。
図16(a)又は(b)においては、格子点対応点Irは特定点Iと点Bの間に位置しているが、特定点Iと点Cの間に位置する場合もある。更に、点Irが特定点Iと一致する場合もある。このとき、重みωは、格子点Rと特定点Iの間の距離と最大距離Dmaxとの比となる。こうして、格子点Rの補正後の標高は、補正前の標高fr(Sr)と格子点対応点Irにおける標高fi(Sr)とを重みを付けて加算したものとして計算される。
なお、格子点Rの補正後の標高計算の簡単化のために、距離Dには特定点Iから格子点Rまでの距離を近似値として使用することも考えられ、その場合には、格子点Rの補正後の標高を計算するのに必要な計算量が少なくて済むと考えられるが、距離Dとして上記のように格子点Rと、それと同じ座標Srを有する格子点対応点Irとの間の距離を使用するほうがより正確に特定点Iの標高を反映するように格子点Rの標高を補正することができる。
そのことは、特に補正対象格子点Rが折れ線171上に来たときを考えると明確である。この場合には、格子点対応点Irは補正対象点Rそのものとなる。補正対象点Rと格子点対応点Irとが一致したときには、補正対象格子点Rの標高は、折れ線171上の格子点対応点Irの標高と一致すべきである。距離Dとして補正対象格子点Rと格子点対応点Irとの間の距離を使用すると、今の場合には距離Dは0となる。このとき、式2(図16(e))における重みωは0となり、式1により、補正対象格子点Rの補正後の標高fm(Sr)は、折れ線171上の点の標高を与える関数fi(S)と一致することになる。したがって、距離Dとして補正対象格子点Rと格子点対応点Irとの間の距離を使用すると、式1による補正後の標高fm(Sr)は、補正対象格子点Rが折れ線171上に来たときでも正しことが分かる。逆に、距離Dとして補正対象格子点Rと補正元特定点Iとの間の距離を用いると、補正対象格子点Rが折れ線171上に来たときでも、補正対象格子点Rが補正元特定点Iと一致しない限り、距離Dは0とはならず、その場合には、式1により与えられる補正後の標高fm(Sr)は、折れ線171上の点の標高を与える関数fi(S)と一致しない。したがって、距離Dとして補正対象格子点Rと格子点対応点Irとの間の距離を使用するほうが正確な標高を得ることができることが分かる。
同じ理由により、最大距離Dmaxも、格子点対応点Iから補正対象格子点となりうる格子点までの距離を使用することが望ましい。したがって、同じ特定点に関しても、格子点毎に格子点対応点Iが異なるので、特定点の近傍の格子点が最大距離Dmax以内にあるか否かを判断するときには、格子点毎に格子点対応点Iを決定して、その点からの距離が最大距離Dmax以内であるか否かを判断する必要がある。しかし、距離Dとして、補正対象格子点Rから格子点対応点Irまでの距離を使用する場合でも、計算の簡単化のために、最大距離Dmaxには、特定点Iから補正対象格子点となりうる格子点までの距離を近似値として使用することは可能である。最大距離Dmaxは、補正範囲を示す数値であるので、若干の誤差があっても、補正後の標高の計算値に及ぼす誤差の影響は、距離Dの誤差が及ぼす影響よりも小さいと考えられるからである。なお、既に説明した近傍格子点特定点検出部45(図12)では最大距離Dmaxとして特定点Iから補正対象格子点となりうる格子点までの距離を使用した。しかし、近傍格子点特定点検出部45でも、最大距離Dmaxとして、格子点対応点Iから補正対象格子点となりうる格子点までの距離を使用することが望ましいことは言うまでもない。更に、最大距離Dmaxが、特定点と補正対象格子点を結ぶ方向により変わる場合には、その方向に依存して変わる値を使用することが望ましい。このことは、近傍格子点特定点検出部45で最大距離Dmaxを使用する場合も同様である。ただし、最大距離Dmaxが特定点と補正対象格子点を結ぶ方向により変わる場合でも、その方向に依らないで同じ値を近似的に最大距離Dmaxとして使用することも可能ではある。例えば、最大距離Dmaxが方向により変わる場合でも、その最大距離が取りうる最大値を、方向に依らないで最大距離Dmaxとして使用することはできる。
格子点Rの補正後の標高として上記のように二つの関数値fr(Sr)とfi(Sr)とを用いてfm(Sr)を計算するのは、両方の関数の座標Sが同じ一対の等高線C2とC3上の点p2とp2の間で0から1の範囲になるように、両方の関数について正規化されているので、特定点Iにおける等高線C2とC3間の距離が、格子点Rにおけるこれらの等高線C2とC3間の距離と異なっていても、格子点Rに対応する格子点対応点Irでの標高が格子点Rの標高に最も大きく影響すると考えられる。このことは、格子点Rが格子点対応点Irに近づくほど、その標高は格子点対応点Irの標高に近づくべきであることからも分かる。したがって、格子点対応点Irの標高でもって格子点Rの標高を補正することにより、特定点Iの標高を格子点Rの標高の補正に適切に使用したことになる。図15のステップS503では、こうして格子点Irの補正後の標高値を計算すると、計算された補正後の標高を用いて、標高データ29内に既に記憶された当該格子点Rの標高を更新する。こうして、格子点Rについて補正された標高値の決定が終了する。
なお、この式1によれば、D=0のときには、既に述べたように、fm(Sr)は、特定点Iを通過する折れ線171上の点の標高を与える関数fi(S)の、格子点対応点Irの座標における標高fi(Sr)と一致する。D=Dmaxのときには、fm(Sr)は、格子点Rを通る折れ線181上の点の標高を与える関数fr(S)の格子点Rの座標Srにおける値fr(Sr)と等しくなり、この値は格子点Rの標高であるので、格子点Rの標高は補正されないことが分かる。D=Dmax/2のときには、fm(Sr)は、(fi(Sr)+fr(Sr))/2となる。したがって、格子点Rから特定点Iを通過する折れ線171上の同じ座標Srの格子点対応点Irまでの距離の増大に応じて、特定点Iの標高の影響が減少することが分かる。図15のステップS503における格子点Rの標高の補正が以上のようにして行われる。
図15に戻り、傾斜地格子点用の非重複補正標高決定部500は、ステップS503での格子点Rの標高の補正が終了すると、近傍格子点データ28A(図11(a))内の、選択特定点の座標281に対応して記憶された選択格子点の座標284に対応して記憶される補正完了フラグ285をセットする(ステップS504)。こうして、選択特定点に対する前記選択補正対象格子点の座標286に対応して近傍特定点データ28B(図11(b))内に記憶された補正元特定点数287が1であると判断された場合における傾斜地格子点用の非重複補正標高決定部500の処理が終了し、処理は、傾斜地格子点用の補正標高決定部47(図14)に戻る。
図14において、もしステップS472で、選択特定点に対する前記選択補正対象格子点の座標286に対応して近傍特定点データ28B内に記憶された補正元特定点数287が2であると判断された場合には、傾斜地格子点用の2重補正標高決定部510が実行される。この2重補正標高決定部510の処理の説明の前に、この処理に使用される、2重重複領域内傾斜地格子点の近傍のいくつかの点を説明する。上記補正元特定点数287が2であることは、選択特定点に対して選択された補正対象格子点Rに対する補正元特定点とし、当該選択特定点と他の一つの特定点があることを意味する。
図17は、2重重複領域内傾斜地格子点に対する標高の補正を説明するための図である。同図(a)は、選択特定点の補正対象格子点である2重重複領域内格子点の補正後の標高の計算に使用される、それらの点の近傍の点を示す等高線図の例を示す図である。すなわち、図2(c)の等高線図の例において、二つの特定点Ia、Ibの補正対象格子点である2重重複領域内の傾斜地格子点Rの補正後の標高の計算に使用される、それらの点の近傍の点が示されている。
図17(a)において、図2(b)と同様に、格子点Rは、標高が順に低下する等高線C6〜C10のうちの一対の等高線C7とC8の間に位置し、2つの特定点IaとIbとが同じ一対の等高線C7とC8の間に位置し、格子点Rは、2つの特定点Ia、Ibのそれぞれの補正対象範囲内に位置すると仮定する。格子点Rは、2重重複補正対象傾斜地格子点の例であり、点Ia、Ibは、それぞれ選択特定点と他の補正元特定点の例である。このような選択補正対象格子点Rに対しては、それらの特定点Ia、Ibの座標は、近傍特定点データ28B(図11(b))内に、当該選択補正対象格子点Rの座標286に対応して二つの補正元特定点座標288として記憶されている。記憶されているそれらの2つの補正元特定点座標288のうちの一つが選択特定点の座標と一致し、他方が他の補正元特定点の座標である。
図17(a)において、選択特定点Iaの近傍にある点Aa、Ba、Ca、Da、特定点Ibの近傍にある点Ab、Bb、Cb、Dbは、図16(a)における点A、B、C、Dと同じく、特定点Ia又はIbに関する最急方位点又は2次最急方位点であり、p1、p2、q1、q2は、格子点Rに関する最急方位点又は2次最急方位点の例である。符号172は、点Aa、Ba、Ia、Ca、Daを結ぶ折れ線である。符号173は、点Ab、Bb、Ib、Cb、Dbを結ぶ折れ線である。符号182は、点q1、p1、R、p2、q2を結ぶ折れ線である。図16(a)における折れ線171と同様に、折れ線172上の点BaからCaまでの部分の座標Sの値が0から1となるように、折れ線172上の座標Sが正規化され、同様に、折れ線173上の点BbからCbまでの部分の座標Sの値が0から1となるように、折れ線173上の座標Sが正規化され、図16(a)における折れ線181と同様に、折れ線182上の点p1からp2までの部分の座標Sの値が0から1となるように、折れ線182上の座標Sが正規化されている。折れ線172上の点Iarと折れ線173上の点Ibrは、図16(a)の折れ線171上の点Irと同様に、格子点Rの、折れ線182上の座標Srと同じ座標を有する、格子点Rに対応する格子点対応点である。
図18は、傾斜地格子点用の2重補正標高決定部510の処理の一例の概略フローチャートである。まず、ステップS511においては、選択格子点の標高の補正に関与する二つの特定点Ia、Ibのそれぞれに対する傾斜地特定点用の標高計算式が決定される。これらの計算式の決定は、傾斜地格子点用の非重複補正標高決定部500のステップS501における、図16(a)内の特定点Iに対する傾斜地特定点用の標高計算式の決定と全く同様に行われる。特定点Ia、Ibに対して得られる傾斜地特定点用の標高計算式をfia(S)、fib(S)とすると、それぞれは、図16(c)と同様に、それぞれ特定点Ia、Ibにおける折れ線172、173上の座標Sia、Sibを境にして異なる関数で表される二つの部分からなり、図16(d)における条件と同様な条件をそれぞれ折れ線172、173上の点に関して満たすように決定される。
ステップS512においては、2重重複領域内傾斜地格子点Rに対する補正された標高を与える標高補正式として、例えば、図17(b)の式3により定義される関数fm(S)を決定する。fm(S)は、関数fr(S)、fia(S)、fib(S)をそれぞれ重み(1−ωa―ωb)、ωa、ωbを付けて加算したものである。重みωa、ωbは、式1(図16)に関連して説明したように、一般的には、補正対象格子点Rと対応する格子点対応点Iraとの間の位置関係及び補正対象格子点Rと対応する格子点対応点Irbとの間の位置関係を使用して決定すればよい。式3の場合には、式1の場合と同じく、補正対象格子点Rと対応する格子点対応点Iraとの間の位置関係にはそれらの点の間の距離Daが使用され、補正対象格子点Rと対応する格子点対応点Irbとの間の位置関係にはそれらの点の間の距離Dbが使用され、重みωa、ωbは、図17(b)に示す式4a、4bに示すように距離Da、Db、Dmaxに依存して決定されている。ここで、fr(S)は、式1の場合と同じであり、図5(a)に示された補正対象格子点Rと点p1、p2を結ぶ折れ線182上の座標Sの点における標高を与える傾斜地格子点用の標高計算式として、図6のステップS422で決定され、図7(b)に例示されたものであるが、点p1、p2を結ぶ部分の座標が0〜1となるように、当該直線の座標が正規化されているものである。
関数fia(S)とfia(S)は、図16(c)に示した式60で定義される関数fi(S)と同様に、それぞれ特定点Ia、Ibを通る折れ線172、173上の座標Sの点に対する標高を与える、傾斜地特定点用の標高計算式である。距離Da、Dbは、格子点Rを通過する折れ線182上の座標Sの点からそれぞれ特定点Ia、Ibを通る折れ線172、173上の同じ座標Sの点にそれぞれ至る距離である。式3は、書き替えると図17(b)に示す式3aになる。Dmaxは、図16(e)で示した式1におけるものと同じである。なお、この式3によればDa=0又はDb=0のときは、関数値fm(S)は、特定点Ia又はIbを通過する折れ線171又は172上の点の標高を与える関数fia(S)又はfib(S)に等しくなる。
図18に戻り、ステップS513においては、補正対象格子点Rの標高が、例えば以下のようにして補正される。まず、補正後の格子点Rの標高を、図17(b)に示した式3又は式3aで定義される上記関数fm(S)の、座標Sが格子点Rの座標Srのときの値fm(Sr)により計算する。こうして、格子点Rの補正後の標高は、格子点Rの補正前の標高fr(Sr)と、格子点対応点Iar、Ibrの標高fia(Sr)、fib(Sr)と、距離Da、Db、Dmaxに依存して決定される。つぎに、格子点Rについてのこの補正後の標高を用いて、標高データ29(図1)内に既に記憶された当該格子点Rの標高を更新する。傾斜地格子点用の2重補正標高決定部510は、ステップS513での格子点Rの標高の補正が終了すると、近傍格子点データ28A内の、選択特定点Iaの座標281に対応して記憶された選択格子点の座標284に対応して記憶される補正完了フラグ285をセットし、他の補正元特定点Ibの座標281に対応して記憶された同じ選択格子点の座標284に対応して記憶される補正完了フラグ285をセットする(ステップS514)。こうして、選択特定点に対する前記選択補正対象格子点の座標286に対応して近傍特定点データ28B内に記憶された補正元特定点数287が2であると判断された場合における傾斜地格子点用の2重補正標高決定部510の処理が終了し、処理は傾斜地格子点用の補正標高決定部47(図14)に戻る。
図14において、もしステップS472で、選択特定点に対する前記選択補正対象格子点の座標286に対応して近傍特定点データ28B内に記憶された補正元特定点数287が3であると判断された場合には、傾斜地格子点用の3重補正標高決定部520が実行される。この3重補正標高決定部520の処理の説明の前に、この処理に使用される、3重重複領域内傾斜地格子点の近傍のいくつかの点を説明する。上記補正元特定点数287が3であることは、選択特定点に対して選択された補正対象格子点Rに対する補正元特定点とし、当該選択特定点と他の二つの特定点があることを意味する。
図19は、3重重複領域内傾斜地格子点に対する標高の補正を説明するための図である。同図(a)は、選択特定点の補正対象格子点である3重重複領域内格子点の補正後の標高の計算に使用される、それらの点の近傍の点を示す等高線図の例を示す図である。すなわち、図2(c)の等高線図の例において、選択特定点の補正対象格子点である3重重複領域内格子点の補正後の標高の計算に使用される、それらの点の近傍点が示されている。
図19(a)において、図2(c)と同様に、格子点Rは、標高が順に低下する等高線C11〜C14のうちの一対の等高線C12とC13の間に位置し、3つの特定点Ia、IbとIcとが同じ一対の等高線C12とC13の間に位置し、格子点Rは、3つの特定点Ia、Ib、Icのそれぞれの補正対象範囲内に位置すると仮定する。格子点Rは、3重重複補正対象傾斜地格子点の例であり、点Ia、Ib、Icは、それぞれ選択特定点Iaと他の二つの補正元特定点の例である。それらの特定点Ia、IbとIcの座標は、近傍特定点データ28B内に、選択補正対象格子点Rの座標286に対応して3つの補正元特定点座標288として記憶されている。記憶されているそれらの3つの補正元特定点座標288のうちの一つが選択特定点の座標と一致し、他の二つが当該他の二つの補正元特定点の座標を与える。
選択特定点Iaの近傍にある点Aa、Ba、Ca、Da、特定点Ibの近傍にある点Ab、Bb、Cb、Db、特定点Icの近傍にある点Ac、Bc、Cc、Dcは、図16(a)における点A、B、C、Dと同じく、それぞれ特定点Ia、Ib又はIcに関する最急方位点又は2次最急方位点であり、格子点Rの近傍の点p1、p2、q1、q2は、格子点Rに関する最急方位点又は2次最急方位点の例である。符号174、175、176、183は、点列Aa、Ba、Ia、Ca、Da、点列Ab、Bb、Ib、Cb、Db、点列Ac、Bc、Ic、Cc、Dc、点列q1、p1、R、p2、q2をそれぞれ結ぶ折れ線である。各折れ線上の座標Sは、図16(a)における折れ線171又は181と同様に正規化されている。折れ線174上の点Iar、折れ線175上の点Ibr、折れ線176上の点Icrは、図16(a)の折れ線171上の点Irと同様に、格子点Rの、折れ線183上の座標Srと同じ座標を有する、格子点Rに対応する格子点対応点である。
図20は、傾斜地格子点用の3重補正標高決定部520の処理の一例の概略フローチャートである。まず、ステップS521においては、選択格子点の標高の補正に関与する3つの特定点Ia、Ib、Icのそれぞれに対する傾斜地特定点用の標高計算式が決定される。これらの計算式の決定は、傾斜地格子点用の非重複補正標高決定部500のステップS501における、図16(a)内の特定点Iに対する傾斜地特定点用の標高計算式の決定と全く同様に行われる。特定点Ia、Ib、Icに対して得られる標高計算式をfia(S)、fib(S)、fic(S)とする。
ステップS522においては、3重重複領域内傾斜地格子点Rに対する補正された標高を与える標高補正式として、例えば、図19(b)の式5により定義される関数fm(S)を決定する。ここで、fr(S)は、図5(a)の補正対象格子点Rと点p1、p2を結ぶ折れ線182上の点における標高を与える傾斜地格子点用の標高計算式として標高計算部42(図6)のステップS422で決定され、図7(b)に例を示したものであり、折れ線183を直線に延ばしたときのその直線上での点p1から点p2に至る部分の座標が0〜1となるように、当該直線上の座標が正規化されているものである。符号Da、Db、Dcは、格子点Rを通る折れ線上の座標Sの点から折れ線174、175、176上の同じ座標Sの点にそれぞれ至る距離である。Dmaxは、図16(e)で示した式1におけるものと同じである。
式5から分かるように、関数fm(S)は、格子点Rに対する標高計算式fr(S)と、特定点Ia、Ib、Icに対して得られる標高計算式fia(S)、fib(S)、fic(S)とをそれぞれ重み(1−wa―wb―wc)、wa、wb、wcを付けて加算したものである。重みwa、wb、wcは、式1(図16(e))と式3(図17(b))に関連して説明したように、一般的には、補正対象格子点Rと対応する格子点対応点Iraとの間の位置関係、補正対象格子点Rと対応する格子点対応点Irbとの間の位置関係及び補正対象格子点Rと対応する格子点対応点Ircとの間の位置関係を使用して決定すればよい。式5の場合には、式1、3の場合と同じく、補正対象格子点Rと対応する格子点対応点Ira、Irb、Ircのそれぞれとの間の位置関係にはそれらの点の間の距離Da、Db、Dcが使用され、重みωa、ωb、wcは、図19(b)に示す式6a、6b、6cにより与えられるものであり、距離Da、Db、Dc、Dmaxに依存して決定されている。
重みwa、wb、wcは、いずれも対応する格子点に関する距離Da、Db、Dcが0のときには、1となり、Dmaxのときには0となる。更に、Da=Db=Dc=Dのときには、式5は、非重複領域用標高補正式である式1(図16(b))と等しくなる。更に、Da=Db=Dc=D=0のときには、重みwa、wb、wcの値は、式6a〜6cでは決定できないが、式2においてD=0としたときの値0を取ると考えればよく、そのように考えると、式5の標高補正式fm(S)は、fi(S)と一致することになる。
図20に戻り、ステップS523においては、補正対象格子点Rの標高が補正される。まず、補正後の格子点Rの標高を、式3の上記関数fm(S)の、座標Sが格子点Rの座標Srのときの値fm(Sr)により計算する。こうして、格子点Rの補正後の標高は、格子点Rの補正前の標高fr(Sr)と、格子点対応点Iar、Ibr、Icrの標高fia(Sr)、fib(Sr)、fic(Sr)と、距離Da、Db、Dc、Dmaxに依存して決定される。つぎに、格子点Rについてのこの補正後の標高を用いて、標高データ29(図1)内に既に記憶された当該格子点Rの標高を更新する。
図20に戻り、傾斜地格子点用の3重補正標高決定部520は、ステップS523での格子点Rの標高の補正が終了すると、近傍格子点データ28A内の、選択特定点Iaの座標281に対応して記憶された選択格子点の座標284に対応して記憶される補正完了フラグ285をセットし、他の二つの補正元特定点IbとIcの各々の座標281に対応して記憶された同じ選択格子点の座標284に対応して記憶される補正完了フラグ285をセットする(ステップS524)。こうして、選択特定点に対する前記選択補正対象格子点の座標286に対応して近傍特定点データ28B内に記憶された補正元特定点数287が3であると判断された場合における傾斜地格子点用の3重補正標高決定部520の処理が終了し、処理は傾斜地格子点用の補正標高決定部47(図14)に戻る。
図14において、傾斜地格子点用の非重複補正標高決定部500、傾斜地格子点用の2重補正標高決定部510、傾斜地格子点用の3重補正標高決定部520のいずれかの処理が終了すると、傾斜地格子点用の補正標高決定部47は、ステップS473において、標高の補正に関与した特定点の補正対象格子点の全てに対する標高の補正が完了したか否かを判断する。この判断は、近傍格子点データ28A(図11(a))内に当該特定点の座標281に対応して記憶された補正対象格子点座標284の各々に対して記憶された補正完了フラグが全てセットされているか否かにより判断される。
例えば、ステップS473の実行の前に傾斜地格子点用の非重複補正標高決定部500が実行されたときには、ステップS473では、特定点I(図16(a))について、上記判断が実行される。すなわち、近傍格子点データ28A内に特定点Iの座標281(図(a))に対応して一つの補正対象格子点座標284が記憶されているときには、当該補正対象格子点座標284に対応して記憶される補正完了フラグがセットされているか否かにより上記判断が行われる。今の場合には、このフラグはセットされているので、特定点Iの補正対象格子点の全てに対する標高の補正が完了したと判断される。
しかし、近傍格子点データ28A内に特定点Iの座標281に対応して複数の補正対象格子点座標284が記憶されているときには、今の仮定では、当該複数の座標のうち、傾斜地格子点用の非重複補正標高決定部500により標高が補正された補正対象格子点の座標284に対応して記憶される補正完了フラグがセットされているが、他の座標284に対応して記憶される補正完了フラグが全てセットされているかを判断する必要がある。
あるいは、ステップS473の実行の前に傾斜地格子点用の2重補正標高決定部510が実行されたときには、ステップS473では、特定点IaとIb(図17(a))の各々について、上記判断が同様に実行される。あるいは、ステップS473の実行の前に傾斜地格子点用の3重補正標高決定部520が実行されたときには、ステップS473では、特定点Ia、Ib、Ic(図19(a))の各々について、上記判断が同様に実行される。
ステップS473での判断により、標高の補正に関与した特定点の各々について、その特定点の補正対象格子点の全てに対して標高の補正が完了したと判断されたときには、近傍格子点データ28A内に、当該特定点の座標281に対応して記憶される補正完了フラグ282がセットされる(ステップS474)。標高の補正に関与した特定点の全てに関してステップS473を実行し、補正対象格子点に対する標高の補正が全て完了した特定点があるときには、その特定点に対する補正完了フラグをセットするステップS474を実行した後に、あるいは、標高の補正に関与した特定点の全てに関してステップS473を実行したが、補正対象格子点に対する標高の補正が全て完了した特定点がないときには、ステップS474を実行しないで、ステップS475において、当該選択特定点に対する、標高補正処理を施していない補正対象格子点があるか否かを判断する(ステップS475)。
この判断は、近傍格子点データ28A内に、当該選択特定点の座標281に対応して記憶された補正対象格子点数283の値から、当該選択特定点に関して標高補正処理を施した補正対象格子点の数、今の場合には1を引いた後の値が0より大きいか否かにより判断できる。仮に、補正対象格子点数283の値が1より大きいときには、当該選択特定点に対応してまだ処理していない他の補正対象格子点の座標284が記憶されていることになる。この場合には、処理は、ステップS471に戻り、そこでは、当該選択特定点に対応する他の補正対象格子点を選択する。すなわち、近傍格子点データ28Aに当該選択特定点の座標281に対応して記憶された他の補正対象格子点の座標284を読み出す。この格子点についてもステップS472と非重複補正標高決定部500、2重補正標高決定部510、3重補正標高決定部520のいずれかの処理が実行される。以下、選択特定点に関する未処理の補正対象格子点がなくなるまで以上の処理が繰り返される。その後、ステップS475により、選択特定点に関する未処理の補正対象格子点がなくなったと判断されたときには、傾斜地格子点用の補正標高決定部47の処理が終了し、処理は、補正標高決定部43(図9)に戻る。
図9において、補正標高決定部43では、傾斜地格子点用の補正標高決定部47の処理が終了した後は、標高補正処理を実行していない特定点の選択を試みる(ステップS461)。更にステップS462において、選択が成功したか否かが判断され、成功と判断されたときには、ステップS463以降の処理が実行される。もしステップS463において、選択された特定点の属性が平地であると判断されたときには、平地格子点用の補正標高決定部48が実行される。
平地格子点用の補正標高決定部48の処理の説明の前に、当該平地格子点用の補正標高決定部48による平地格子点の標高が平地特定点の標高により補正されるための条件と補正に使用される、平地格子点の近傍点と特定点の近傍点を説明する。平地格子点用の補正標高決定部48で標高が補正される格子点は、単一の等高線点列により実質的に囲まれている平地格子点であり、同じ単一の等高線点列により実質的に囲まれている平地特定点がその近傍にあり、かつ、当該平地格子点が当該平地特定点の補正対象範囲内にある必要がある。当該平地特定点の標高の補正のために使用される複数の近傍点は、当該単一の等高線点列とその外側の他の少なくとも一つの等高線点列を含む複数の標高が異なる等高線点列上に位置する、当該平地格子点の複数の近傍点と、当該単一の等高線点列とその外側の他の少なくとも一つの等高線点列を含む複数の標高が異なる等高線点列上に位置する、当該平地特定点の複数の近傍点である。
図21は、選択特定点が平地点である場合に実行されるその近傍の平地格子点の標高の補正を説明する図である。同図(a)において、図2(d)及び図5(b)と同じく、等高線C15〜C18がある等高線地図上において、点Rは閉じた等高線C15により囲まれている平地格子点とする。点Iは格子点Rが含まれている等高線C15内にあり、格子点Rから補正対象範囲内にある、格子点Rに対する補正元の平地特定点とする。本実施の形態では、簡単化のために、平地格子点に対する補正元特定点の総数は最大1個とするが、複数の補正元特定点を有する重複領域内の平地格子点が存在する場合でも、先に2重重複領域内又は3重重複領域内にある傾斜地格子点に対して説明した標高補正方法を以下に述べる平地格子点の標高補正方法に適用すれば、その重複領域内の平地格子点の標高を容易に補正可能である。
平地格子点Rの補正後の標高を決定するには、平地格子点Rを実質的に取り囲む一つの等高線とその外側の少なくとも一つの等高線を含む複数の等高線上にある、平地格子点Rの複数の近傍点、平地特定点I及び平地特定点Iを実質的に取り囲む上記単一の一つの等高線とその外側の少なくとも一つの等高線を含む複数の等高線上にある、当該平地特定点Iの複数の近傍点のそれぞれに対応する3次元の地形上の一群の点が位置する曲面上の、平地格子点Rに対応する点の標高を算出して、平地格子点の補正後の標高とすることが望ましいと考えられる。
それを実現するための本発明による一つの方法は、平地格子点Rの複数の近傍点、平地特定点I及び平地特定点Iの複数の近傍点のそれぞれに対応する3次元の地形上の一群の点が位置する、等高線C15、C16を含む曲面を、これらの点に対応する3次元地形上の位置に依存して決定し、その後、当該曲面上の平地格子点Rに対応する点の標高を算出して、平地格子点の補正後の標高とすることである。その方法は当業者により容易に実現可能であるので、その方法の詳細説明は省略する。本実施の形態では、そのような曲面を決定しないで、近似的にそのような曲面上のそれらの一群の点を滑らかに結ぶ曲線を決定し、当該曲線上における格子点Rに対応する点の標高を決定可能にする方法を説明する。すなわち、補正元の平地特定点Iに対する前記複数の近傍点と、当該平地特定点を結ぶ点列に対応する、3次元の地形上の第1の点列のそれぞれの点の3次元の位置と、補正対象平地格子点Rに対する前記複数の近傍点を含む点列に対応する、当該地形上の第2の点列のそれぞれの点の3次元の位置とに依存して補正対象平地格子点の標高として平地特定点の標高により補正された標高を決定可能にする。
点p1とq1は格子点Rからみて第1の方向にある一組の近傍点の例であり、点p1は格子点Rを取り囲む等高線C15上にある格子点Rの近傍点の例であり、点q1は等高線C15の外側の等高線C16上にある、近傍点p1の近傍点の例である。点p2とq2は格子点Rからみて第1の方向とは逆の第2の方向にある他の一組の近傍点の例であり、点p2は格子点Rを取り囲む等高線C15上にある格子点Rの他の近傍点の例であり、点q2は等高線C15の外側の等高線C16上にある、他の近傍点p2の近傍点の例である。点FとHは特定点Iから見て第3の方向とは逆の第4の方向にある他の一組の近傍点の例であり、点Fは特定点Iを取り囲む等高線C15上にある特定点Iの他の近傍点の例であり、点Hは等高線C15の外側の等高線C16上にある、他の近傍点Fの近傍点の例である。
より具体的には、点p1、q1として、格子点Rに対する一組の最急方位点と2次最急方位点を使用することができ、点p2、q2として、格子点Rに対する他の一組の最急方位点と2次最急方位点を使用することができる。同様に、点E、Gとして、特定点Iに対する一組の最急方位点と2次最急方位点を使用することができ、点F、Hとして、特定点Iに対する他の一組の最急方位点と2次最急方位点を使用することができる。
補正対象平地格子点Rに対する一組の近傍点及び補正元平地特定点Iに対する一組の近傍点として、最急傾斜法の考えによりそれらの近傍点を選ぶと、傾斜地格子点の複数の近傍点を最急傾斜法の考えにより選択した場合と同様に、補正対象平地格子点Rを取り囲む等高線点列上の最も近い近傍点と、当該最も近い近傍点に最も近い、当該取り囲む等高線点列に隣接する等高線点列上の近傍点とからなる一組の近傍点を選択することになる。補正元平地特定点Iに対する一組の近傍点についても同じである。このような一組の近傍点の間の部分は最短距離で隔てられた点であり、それらの点が位置する地面は傾斜がほぼ一様で、途中で地面が上ったり下ったりしない場合が多いと考えられる。したがって、補正対象平地格子点と補正元平地特定点について、それぞれに最も短い部分の断面上に位置すると考えられる一組の近傍点を用いると、補正対象平地格子点とその近傍点が通る地面の形状は、凸がひとつだけの傾斜曲線で表されると考えられる場合が多い。補正元平地特定点とその近傍点が通る地面の形状についても同様である。したがって、これらの点を結ぶ線上の標高を用いて地形の断面を表す曲線を近似し、補正元平地格子点の補正後の標高を決定すると、誤差が少ないことが期待される。
逆に、補正対象平地格子点Rに対して最も近い点以外の近傍点を使用し、補正元平地特定点Iに対しても最も近い点以外の近傍点を使用した場合には、それらの点を結ぶ折れ線上の地形の断面の曲線がより長いものになり、そのような部分では実際の断面曲線はふたつ山のある曲線などとなりくねくねした曲線になる可能性が出てくる。そのような地形に対しては、補正元平地格子点の補正後の標高を決定することが難しくなると懸念される。
格子点Rの標高の補正には、格子点Rに関する上記二組の近傍点のうちの少なくとも一組の近傍点と、特定点Iに関する上記二組の近傍点のうちの少なくとも一組の近傍点とが使用される。例えば、格子点Rに関する上記二組の近傍点のうち、上記取り囲む単一の等高線点列C15上の近傍点が前記平地特定点Iから見て遠方に位置する一組の近傍点(今の例では、点p1、q1とする)と、特定点Iに関する二組の近傍点のうち、上記取り囲む単一の等高線点列C15上の近傍点が前記平地格子点Rから見て遠方に位置する一組の近傍点(今の例では、点EとGとする)とを使用できる。
このように、上記取り囲む単一の等高線点列C15上の近傍点が前記平地特定点Iから見て遠方に位置する、格子点Rに関する一組の近傍点と、上記取り囲む単一の等高線点列C15上の近傍点が前記平地格子点Rから見て遠方に位置する、特定点Iに関する一組の近傍点とを選択するのは、このように選択した二組の近傍点が閉じた等高線C15を横断する位置になりやすく、そのような点列のほうが、閉じた等高線C15により取り囲まれた平地の等高線断面曲線を反映しやすいと考えられるからである。
より具体的には、平地特定点Iに対して選択された一組の近傍点EとGと、当該平地特え定点Iとを結ぶ点列に対応する、3次元の地形上の第1の点列のそれぞれの点の3次元の位置と、平地格子点Rに対して選択された一組の近傍点p1とにq1を含む点列に対応する、当該地形上の第2の点列のそれぞれの点の3次元の位置とに依存して、平地格子点Rの標高として、当該平地特定点Iの標高により補正された標高を決定可能にする。例えば、平地格子点Rの上記一組の近傍点と、平地特定点Iと、平地特定点Iの上記一組の近傍点とを結ぶ3次元の地形上の曲線として、上記のいろいろな点と平地格子点R点とを結ぶ折れ線184を構成する点列に対応する、3次元地形上の点列を通過する曲線を決定し、その曲線上における、格子点Rに対応する点の標高を計算するための、平地格子点用の標高計算式を決定する。
図21(b)は、等高線地図上の折れ線184上の点列に対応する、3次元地形上の点列を通過する曲線の決定方法を説明するための図である。同図において、横軸は、補正元特定点Iに関する点G、Eと、補正元特定点Iと、補正対象格子点Rと、その点に関する点p1、q1を結ぶ折れ線184を、それらの点の間の距離を維持したまま直線に並べたときの当該直線上の点の座標を示す。6つの点G、E、I、R、p1、q1の上記直線上の座標SをそれぞれSg、Se、Si、Sr、Sp1、Sq1とする。格子点R以外の5つの点G、E、I、p1、q1の標高がhg、he、hi、hp1、hp2であり、曲線110は、上記5つの点を結んだ曲線を表す関数fm(S)である。なお、図に示すように、標高値hp1とheは同じである。また、図では、今の例にしたがい、標高hgとhq1が等しくしているが、これらの標高は互いに異なっていてもよい。標高heとhp1についても同様に異なってもよい。関数fm(S)を、格子点Rの標高を補正する平地格子点用の標高補正式として使用する。
曲線fm(S)としては、例えば、同図(c)にで示すように、直線上の座標Sの4次式である式7を使用することができる。この曲線が満たすべき条件が、同図(d)に示されている。すなわち、条件74は、座標SがG点の座標Sgのとき曲線fm(S)の値fm(Sg)が点Gの標高hgであることを示す。同様に、条件75から78は、それぞれ座標Se、Si、Sp1、Sq1での関数fm(S)の値が、それぞれ標高he、hs、hp1、hq1であるということを指定する。このようにして関数fm(S)が決定されると、格子点Rの座標Srにおけるその関数値fm(Sr)が、格子点の補正後の標高を与えることになる。
図22は、平地格子点用の補正標高決定部48の処理の一例の概略フローチャートである。まず、ステップS481において、補正対象格子点Rに関する一対の最急方位点p1、p2のうち補正元特定点Iから最も遠い点とその点に対応する、二つの2次最急方位点q1、q2の一つを選択する。今の例では、点p1とq1が選択されるとする。つぎに、ステップS482において、補正元特定点Iに関する一対の最急方位点E、Fのうち補正対象格子点Rから最も遠くに位置する点と、その点に対応する、二つの2次最急方位点G、Hのうちの一つを選択する。今の例では、点EとGが選択されるとする。
ステップS483において、以上のようにして選択された4つの点の位置と標高と、特定点Iの位置と標高と、格子点Rの位置とに基づいて、補正対象格子点Rに対する補正後の標高を表す標高補正式として、式7に示すfm(S)(図21(c))を決定する。その方法は図21を参照して既に説明したとおりである。
図22において、平地格子点用の補正標高決定部48は、ステップS484において、決定された関数fm(S)の、格子点Rの座標Srにおける値fm(Sr)を、格子点Rの補正後の標高として決定し、標高データ29(図1)内の当該格子点に関するデータを決定された値でもって更新する。以上の処理により、補正対象格子点Rに対する標高の補正は完了するので、ステップS485において、近傍格子点データ28A(図11(a))内の、補正元特定点の座標281として記憶された特定点Iの座標に対応して記憶された補正対象格子点Rの座標284に対応して記憶される補正完了フラグ285をセットする。
つぎに、ステップS486において、補正元特定点Iに関する補正対象格子点の全てに対する標高の補正が完了したか否かを判断する。この判断は、傾斜地特定点に関する補正の完了の判断(図14のステップS473)に関して記載した判断と同様に、近傍格子点データ28A(図11(a))内の、当該補正元特定点Iの座標281に対応して記憶された一つ又は複数の補正対象格子点の座標284に対応して記憶される一つ又は複数の補正完了フラグ285が全てセットされているか否かにより行うことができる。上記ステップS486において補正元特定点Iに対する補正対象格子点の全てに対する標高の補正が完了したと判断されたときには、ステップS487において、近傍格子点データ28A(図11(a))内の、当該補正元特定点Iの座標281に対応して記憶された補正完了フラグ282をセットする。こうして、平地格子点用の補正標高決定部48の処理が終わり、処理は図9に戻る。上記ステップS486において補正元特定点Iに対する補正対象格子点の全てに対する標高の補正が完了したと判断されなかったときには、ステップS487は実行されずに平地格子点用の補正標高決定部48の処理が終わり、処理は補正標高決定部43(図9)に戻る。
図9に戻り、補正標高決定部43では、処理はステップS461以降を繰り返し、もしステップS462で、標高補正処理が終了していない特定点の選択が不成功と判断されたときには、補正標高決定部43の処理が終了し、以上のようにして標高データを生成可能なプログラム40の実行が終了する。
以上に記載した実施の形態からも明らかなように、本発明によれば、近傍に標高があらかじめ決定された特定点がある格子点について、その標高を特定点の標高を用いて補正することが可能になり、特定点の標高を使用しない場合よりもより正確な標高を得ることができる。しかも、格子点の近傍に一つの特定点がある場合だけでなく、複数の特定点がある場合でも、それらの標高を使用して格子点の標高を補正できる。しかも、近傍の特定点の数が一個、2個、3個のいずれの場合でも、格子点の近傍の複数の等高線上の複数の近傍点の位置と標高を利用して、近傍の地形の断面形状を近似的に反映するように、補正後の標高を決定するので、標高をより正確な値に補正することが可能になる。しかも、特定点の近傍の格子点が傾斜地にある場合だけでなく、一つの等高線点列により実質的に囲まれている平地にある平地格子点の場合でも、その等高線とそれ以外の他の少なくとも一つの等高線上の複数の近傍点の位置と標高を利用して、その格子点の近傍の地形の曲面を近似的に反映するように、その格子点の標高を補正するので、より正確な標高値への補正が可能になる。
本発明は、以上の実施の形態に限定されるものではなく、発明の要旨を変更しない範囲内において変更、修正してもよいことは言うまでもない。例えば、上記実施の形態では、平地格子点の標高の補正時に、当該格子点を実質的に取り囲む単一の等高線と他の近傍の等高線上にある複数の近傍の点を使用して、当該格子点の近傍の地形上に位置する曲線を近似する曲線を決定し、その曲線上の、格子点位置での標高を補正後の標高とした。この際、格子点と近傍の特定点のいずれについて、異なる方向にある二組の近傍点のうちの一組の近傍点のみを使用して当該格子点の標高を補正した。すなわち、図21において、格子点Rについては、一組の近傍点p1、q1と他の一組の近傍点p2、q2の中から、各組の格子点に近い方の点p1とp2について特定点Iより遠方にある点p1を含む一組の点p1、q1を選択した。特定点Iについては、一組の近傍点E、Fと他の一組の近傍点G、Hの中から、近い方の点EとFのうち格子点Rより遠方にある点Eを含む一組の点E、Gを選択した。選択された二組の近傍点と格子点、特定点を結ぶ点列q1、p1、R、I、E、Gのうち格子点R以外の点の位置と標高と、格子点の位置とに基づいて、これらの点列に対応する、3次元地形上の曲線を決定し、当該曲線上の、格子点Rの位置に対応する点の標高を格子点Rの標高として決定した。これにより一つの曲線を決定するだけで、格子点Rの標高を決定できるので、比較的簡単に標高を決定することができた。
しかし、他の曲線を使用してもよい。例えば、上記の選択されなかった他の二組の近傍点、すなわち、p2、q2、F、Hを用い、点列q2、p2、R、I、F、Hに対して、既に記載した実施の形態と同様に、3次元地形上の曲線を決定し、この曲線上の、格子点Rに対応する点の標高を格子点Rの補正後の標高としてもよい。あるいは、実施の形態で使用された曲線を用いて決定された格子点の補正後の標高と、上に記載した曲線を用いて決定した格子点の補正後の標高との平均値を、格子点の補正後の標高としてもよい。
あるいは、上記実施の形態では、標高計算部42により全ての格子点の標高を、近傍に特定点があるか否かに依らないで計算し、その後、補正標高決定部43が、標高の補正を要する格子点を検出して、補正後の標高を決定したが、順序を逆にして、補正標高決定部43で最初に特定点の標高により標高の補正を要する格子点について補正後の標高を決定し、その後に、標高計算部42が、標高を計算されていない残りの格子点について、補正を要しないときの計算式にしたがい標高を計算するようにしてもよい。補正を要するときの計算式には、先に記載した実施の形態と同じく、標高を決定すべき格子点が傾斜地格子点か平地格子点かを判断し、傾斜地格子点のときには、非重複領域内傾斜地格子点か、2重重複領域内傾斜地格子点か、3重重複領域内傾斜地格子点かにより異なる計算式を用いればよい。
あるいは標高計算部42により複数の格子点を順次選択し、選択された格子点について、その標高を計算する前に、当該格子点が近傍の特定点により標高補正を要する格子点であるか否かを判別し、当該格子点が近傍の特定点により標高補正を要する格子点でないときには、補正を要しないときの計算式により標高を計算し、当該格子点が近傍の特定点により標高補正を要する格子点であるときには、補正を要するときの計算式により補正後の標高を計算するようにしてもよい。補正を要するときの計算式には、先に記載した実施の形態と同じく、標高を決定すべき格子点が傾斜地格子点か平地格子点かを判断し、傾斜地格子点のときには、非重複領域内傾斜地格子点か、2重重複領域内傾斜地格子点か、3重重複領域内傾斜地格子点かにより異なる計算式を用いればよい。このような方法では、標高計算部42と補正標高決定部43の処理が混じって実行されることになる。
また、格子点の近傍に複数の格子点がある場合にそれらの特定点の標高でもって格子点の標高を補正するにあたり、図11(a)と(b)にそれぞれ示したような、近傍格子点データ28Aと近傍特定点データ28Bとを使用したが、これらのデータを使用する場合、近傍に特定点がない格子点については、何の情報がそれらのデータには登録されないので、それらのデータの総容量は少なくて済む。しかし、これらのデータに代えて他の構造のデータを使用してもよいことは言うまでもない。
例えば、このような二つのデータを使用しないで、各格子点に対応して、近傍に補正元得点の有無と、近傍に特定点がある場合にはその総数とそれぞれの特定点の座標を記憶した近傍特定点データを使用してもよい。このデータを用いる場合は、複数の格子点を順次選択し、選択された格子点に対して近傍に特定点がある場合には、その格子点に対応して上記近傍特定点データに記憶された特定点座標を利用して、近傍にある特定点を特定し、その特定点の標高を特定点データから読み出し、格子点の標高の補正に使用することができる。このような近傍特定点データを使用する場合は、全ての格子点に対して、特定点の有無を記憶するようにしなければならないので、本実施の形態の場合と比べると、必要なデータの総量は増える可能性がある。しかし、全ての格子点について順次同じ判断をして行けばよいので、処理時間が短くなり、プログラムの構造も簡単になる可能性がある。
また上記実施の形態では、格子点の標高を決定するために格子点の近傍の等高線上に位置する複数の近傍点を最急方位法により決定したが、他の方法を使用して近傍の点を決定してもよい。例えば、傾斜地格子点については、近傍の点として、当該格子点の上下に位置する一対の等高線のそれぞれの上にあり、当該格子点からそれぞれ最も近い一対の点を検出し、当該一対の近傍点を結ぶ直線を、格子点近傍の等高線断面曲線を近似する直線として使用してもよい。特定点の近傍の等高線断面曲線を近似する曲線についても、その代わり同様な直線を使用してもよい。このような直線を用いると計算が簡単である。しかし、本実施の形態で示したように、格子点あるいは特定点の近傍の等高線断面を表す曲線として、複数の組の最急方位点を使用して、それらの間を結ぶ曲線を使用すると、等高線断面曲線をより精度よく近似することができ、得られる標高データあるいは補正後の標高データは、直線を使用する場合よりも精度が高いことが期待される。
p1、p2…格子点に対する最急方位点、q1、q2…格子点に対する2次最急方位点、B、C…傾斜地特定点に対する最急方位点、A、D…傾斜地特定点に対する2次最急方位点、E、F…平地特定点に対する最急方位点、G、H…平地特定点に対する2次最急方位点、R…格子点、I、Ia、Ib、Ic…三角点、基準点又は補助点等の特定点、Ir、Iar、Ibr、Icr…特定点I、Ia、Ib、Icをそれぞれ通過する折れ線上における格子点対応点。