(57)【要約】【課題】  地図データにおいて、詳細形状を表す詳細ポリゴンをデフォルメして、広域図用の概略形状を表す概略ポリゴンを効率的に生成する。【解決手段】  概略ポリゴンを生成すべき対象について、詳細ポリゴンのデータを地図ＤＢから読み出す。ポリゴン形状を規定する点列間の相対的な位置関係に基づいて、各点の削除可否を判断する。ポリゴンを構成する線分同士に重なりがある場合には、重なっている線分を除去し、ポリゴンを複数の閉図形に分割する。線分同士が交差している場合には、交点を新たな頂点の一つと定義することにより、ポリゴンを複数の閉図形に分割する。これらの処理を施すことにより、要求されたレベルの概略ポリゴンを容易に生成することができる。【選択図】  図１
2007256402.tif 000002
【特許請求の範囲】
【請求項１】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成する地図データ生成装置であって、
前記詳細ポリゴンを入力するデータ入力部と、
前記詳細ポリゴンを構成する頂点を間引くことによって前記概略ポリゴンを生成する頂点間引処理部とを有し、
前記頂点間引処理部は、
前記詳細ポリゴンを構成する頂点から、処理対象となるべき対象頂点を選択する選択部と、
前記対象頂点と、該対象頂点に隣接する１または２の隣接頂点との相対的な位置関係を表す所定のパラメータが、所定の間引条件を満たすか否かを判定する条件判定部と、
前記間引条件を満たす場合に、前記対象頂点を削除する削除処理部とを備える地図データ生成装置。
【請求項２】
請求項１記載の地図データ生成装置であって、
前記間引条件は、前記２つの隣接頂点を結ぶ直線と前記対象頂点との距離が所定値以下となることである地図データ生成装置。
【請求項３】
請求項１記載の地図データ生成装置であって、
前記間引条件は、前記２つの隣接頂点間の距離が所定値以下となることである地図データ生成装置。
【請求項４】
請求項１記載の地図データ生成装置であって、
前記間引条件は、前記対象頂点を挟む内角が所定値以下となることである地図データ生成装置。
【請求項５】
請求項１記載の地図データ生成装置であって、
前記間引条件は、前記対象頂点と前記１つの隣接頂点との距離が所定値以下となることである地図データ生成装置。
【請求項６】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成する地図データ生成装置であって、
前記詳細ポリゴンに所定の処理を施して生成された前記概略ポリゴンを入力するデータ入力部と、
前記概略ポリゴンを塗りつぶし可能な形状に整形するための処理を施すポリゴン整形部とを有し、
前記ポリゴン整形部は、
前記概略ポリゴンを構成する線分から、処理対象となるべき対象線分を選択する選択部と、
前記対象線分について、前記概略ポリゴンの他の線分との重なり、または交差の有無を検出する重なり・交差検出部とを備える地図データ生成装置。
【請求項７】
請求項６記載の地図データ生成装置であって、
前記ポリゴン整形部は、
前記重なりが検出された場合、該重なっている全線分を除去することにより、前記概略ポリゴンを複数の閉図形に分割する地図データ生成装置。
【請求項８】
請求項６または７記載の地図データ生成装置であって、
前記ポリゴン整形部は、
前記交差が検出された場合、該交差している線分間の交点を該概略ポリゴンの頂点として定義することにより、前記概略ポリゴンを複数の閉図形に分割する地図データ生成装置。
【請求項９】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成する地図データ生成方法であって、
コンピュータが実行する工程として、
前記詳細ポリゴンを入力するデータ入力工程と、
前記詳細ポリゴンを構成する頂点を間引くことによって前記概略ポリゴンを生成する頂点間引処理工程とを有し、
前記頂点間引処理工程は、
前記詳細ポリゴンを構成する頂点から、処理対象となるべき対象頂点を選択する選択工程と、
前記対象頂点と、該対象頂点に隣接する１または２の隣接頂点との相対的な位置関係を表す所定のパラメータが、所定の間引条件を満たすか否かを判定する条件判定工程と、
前記間引条件を満たす場合に、前記対象頂点を削除する削除処理工程とを備える地図データ生成方法。
【請求項１０】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成する地図データ生成方法であって、
コンピュータが実行する工程として、
前記詳細ポリゴンに所定の処理を施して生成された前記概略ポリゴンを入力するデータ入力工程と、
前記概略ポリゴンを塗りつぶし可能な形状に整形するための処理を施すポリゴン整形工程とを有し、
前記ポリゴン整形工程は、
前記概略ポリゴンを構成する線分から、処理対象となるべき対象線分を選択する選択工程と、
前記対象線分について、前記概略ポリゴンの他の線分との重なり、または交差の有無を検出する重なり・交差検出工程とを備える地図データ生成方法。
【請求項１１】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成するためのコンピュータプログラムであって、
前記詳細ポリゴンを入力するデータ入力サブプログラムと、
前記詳細ポリゴンを構成する頂点を間引くことによって前記概略ポリゴンを生成する頂点間引処理サブプログラムとを有し、
前記頂点間引処理サブプログラムは、
前記詳細ポリゴンを構成する頂点から、処理対象となるべき対象頂点を選択する選択サブプログラムと、
前記対象頂点と、該対象頂点に隣接する１または２の隣接頂点との相対的な位置関係を表す所定のパラメータが、所定の間引条件を満たすか否かを判定する条件判定サブプログラムと、
前記間引条件を満たす場合に、前記対象頂点を削除する削除処理サブプログラムとを備えるコンピュータプログラム。
【請求項１２】
拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成するコンピュータプログラムであって、
前記詳細ポリゴンに所定の処理を施して生成された前記概略ポリゴンを入力するデータ入力サブプログラムと、
前記概略ポリゴンを塗りつぶし可能な形状に整形するための処理を施すポリゴン整形サブプログラムとを有し、
前記ポリゴン整形サブプログラムは、
前記概略ポリゴンを構成する線分から、処理対象となるべき対象線分を選択する選択サブプログラムと、
前記対象線分について、前記概略ポリゴンの他の線分との重なり、または交差の有無を検出する重なり・交差検出サブプログラムとを備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子地図データにおいて地形または地物を表すためのポリゴンデータの生成方法に関し、詳しくは、詳細形状を表すポリゴンデータを修正して、概略形状を表すポリゴンデータを生成する方法に関する。
【背景技術】
【０００２】
電子地図データは、種々の縮尺で地図を表示可能である。電子地図データには、陸地、河川などの地形、道路や建築物などの地物を表示可能なポリゴンが格納されている。これらのポリゴンは、縮尺のレベルに応じて階層的に用意されるのが通常である。即ち、縮尺が大きい拡大図を表示するためのデータとして、地形や地物の形状を比較的詳細に表した下位レベルのポリゴンが用意され、縮尺が小さい広域図を表示するためのデータとして、地形や地物の概略形状を表した上位レベルのポリゴンが用意されている。両者の間に中間的な階層のポリゴンが用意されていることもある。このようにレベルの異なる多階層のポリゴンを用意しておくことにより、地図表示に要する時間が長くなることを抑えつつ、それぞれの縮尺に応じた精度で地図を表示することができる。
【０００３】
従来、多階層の地図データは、オペレータの手作業によって作成されていた。まず、航空写真や測量結果等に基づいて詳細表示用、即ち下位レベルのポリゴンが生成される。そして、このポリゴンを、縮尺に応じてオペレータが簡略化して、上位レベルのポリゴンを生成していた。この作業は、非常に煩雑であり、オペレータの処理負荷は多大であった。
【０００４】
従来、オペレータの負荷を軽減するために、地図データの生成処理を自動化する提案がなされている。例えば、特許文献１では、道路を表すポリゴンに基づいて、ボロノイ分割を用いて当該道路の中心線を表すデータを生成する技術が開示されている。ボロノイ分割とは、計算幾何学の分野で周知の処理であり、与えられた複数の母点の勢力範囲を表す図である。ある母点を含むボロノイ多角形内であればいずれの点においても、当該母点への距離が他の母点への距離よりも短くなる。
【０００５】
特許文献２は、道路のつながり具合を変えない範囲で、道路の接続角度が直角に近づくよう交差点位置を移動するなどして、案内図用の簡易な地図を作成する技術を開示している。特許文献３も同様に、道路の交差点を、予め規定された格子の格子点上に移動することで、道路の形状を見やすいものとする技術を開示している。特許文献４は、地図を縮小表示する際に、建物枠の面積が小さい建物を省略したり、建物枠内に記載される文字を省略したりして、小縮尺に応じた案内図を作成する技術を開示している。
【０００６】
【特許文献１】特開２００３−１３２３５３号公報
【特許文献２】特開２０００−２５０４０３号公報
【特許文献３】特許第２５５５５０３号公報
【特許文献４】特許第３４４２２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上位レベルの地図データを自動的に生成する際、従来は、特許文献１に開示されているように、ポリゴンを線状に変換する技術や、特許文献４に開示されているように、上位レベルでは不要となる建物枠等を省略する程度の試みしかなされていなかった。従って、上位レベルのポリゴンを速やかに表示するために、簡略化されたポリゴンデータを生成する際のオペレータの負担は軽減されてはいなかった。
【０００８】
また、上位レベルのポリゴンは、下位レベルのポリゴンを縮小して生成されるのが通常である。この際、上位レベルと下位レベルでは、１ピクセル当りの解像度が相違している、つまり１ピクセルが表す実距離が異なっている。従って、下位レベルのポリゴンを単純に縮小した場合には、ポリゴンが本来の形状とは異なってしまうことがある。上位レベル、下位レベルともに、ポリゴンの形状は、各レベルでの１ピクセルを単位として定義されるため、縮小時にはポリゴンの各頂点の位置に丸め誤差が生じるからである。オペレータの負担を抑えつつ、このような不適切な形状の発生を回避するためにも、ポリゴンを簡略化して、上位レベルの地図データを簡易に作成するための技術が要望されていた。
【０００９】
上述の課題は、地物のポリゴンに限らず、陸地を表すための海岸線ポリゴン、高さに応じて等高線に従って陸地の色を塗り分けるために用意される等高線ポリゴンその他の地形ポリゴンでも同様の課題が生じ得た。本発明は、これらの課題に鑑み、電子地図データに用いられる詳細形状のポリゴンデータを変形して、軽い負荷で概略形状のポリゴンデータを生成可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、拡大図用に用意され地形または地物の詳細形状を表示可能な詳細ポリゴンから、広域図用に概略形状を表示するための概略ポリゴンを生成する地図データ生成装置として構成することができる。地図データ生成装置は、まず詳細ポリゴンを入力する。詳細ポリゴンは、地図データ生成装置内に予め格納しておくようにしてもよいし、ＣＤ−ＲＯＭなどの記憶媒体から提供したり、ネットワークを介して所定のサーバから提供するようにしてもよい。詳細ポリゴンは、本発明の地図データ生成装置用に用意されたものだけでなく、電子地図データとして用意されたものであってもよい。
【００１１】
本発明における第１の構成としての地図データ生成装置は、次の手順で、詳細ポリゴンを構成する頂点を間引くことによって概略ポリゴンを生成する。まず、詳細ポリゴンを構成する頂点から、処理対象となるべき対象頂点を選択する。次に、対象頂点、およびその対象頂点に隣接する１または２の隣接頂点との相対的な位置関係を表す所定のパラメータが、所定の間引条件を満たすか否かを判定する。そして、間引条件を満たすと判定された場合には、対象頂点を削除する。対象頂点を含む２つまたは３つの頂点間の相対的な位置関係は、ポリゴンの拡大、縮小の倍率に応じて変化する。従って、相対的な位置関係を基準として対象頂点を間引くことにより、ポリゴンの拡大、縮小の倍率に応じた適切な簡略化を実現することができる。
【００１２】
地図データ生成装置は、全ポリゴンを対象として上述の処理を行うようにしてもよいし、一部のポリゴンのみを対象として行うようにしてもよい。後者の場合には、ポリゴンの種別その他の属性を詳細ポリゴンに付しておき、地図データ生成装置は、概略ポリゴンの生成に先立って、この属性に基づいて処理対象とすべきポリゴンか否かを判定すればよい。例えば、建物など所定の地物のみを対象としてもよいし、湖沼などの所定の地形のみを対象としてもよい。特定のポリゴンのみを対象とする態様の他、道路ポリゴンのみを除外するというように、特定のポリゴンのみを対象外とする態様を採ることもできる。
【００１３】
本発明において、相対的な位置関係を表すパラメータおよび間引条件は種々の設定が可能である。例えば、２つの隣接頂点を結ぶ直線と対象頂点との距離をパラメータとし、このパラメータが所定値以下となるという間引条件を満たす時に対象頂点を削除するものとしてもよい。これは、詳細ポリゴンの外周形状が、対象頂点の部分でわずかに屈曲している場合に、概略ポリゴンは、この屈曲を省略した形状とする態様に相当する。
【００１４】
第２の例として、２つの隣接頂点間の距離をパラメータとし、このパラメータが所定値以下となるという間引条件を満たす時に対象頂点を削除するものとしてもよい。２つの隣接頂点間の距離が所定値以下となる場合、詳細ポリゴンは、対象頂点の部分で非常に鋭いスパイク状に突出した外周形状となっている。第２の例で対象頂点を削除すると、概略ポリゴンの形状は、スパイク状に突出した部分を削った滑らかな状態となる。スパイク状に突出した部分は、地図表示時には、ノイズが残っているかのような違和感を与えることが多いため、このように削除することにより、見栄えのよい地図を提供することが可能となる。
【００１５】
第３の例として、対象頂点を挟む内角をパラメータとし、このパラメータが所定値以下となるという間引条件を満たす時に対象頂点を削除するものとしてもよい。第３の例でも、第２の例と同様、スパイク状の部分を削除することができる。対象頂点がその両隣の隣接頂点の一方に偏っている場合には、隣接頂点間の距離をパラメータとする第２の例では間引条件を満たさない可能性があるが、内角をパラメータとする第３の間引条件は満足する可能性がある。従って、第２の例、および第３の例を併用することにより、相互に補完して、より確実にスパイク状の部分を削除することが可能となる。
【００１６】
第４の例として、対象頂点と１つの隣接頂点との距離をパラメータとし、このパラメータが所定値以下となるという間引条件を満たす時に対象頂点を削除するものとしてもよい。これは、対象頂点と隣接頂点とが近接している場合に、両者を一つの頂点にまとめる態様である。
【００１７】
間引条件は、上述の４つの例に限らず、種々の条件を設定可能である。また、上述の４つの間引条件は、適宜、組み合わせて併用してもよい。併用する場合、間引条件を適用する順序も任意に設定可能である。
【００１８】
本発明の地図データ生成装置は、第１の構成を採るか否かに関わらず、以下に示す第２の構成で構成することもできる。第２の構成の地図データ生成装置は、詳細ポリゴンに所定の処理を施して生成された概略ポリゴンを入力し、次の手順で、概略ポリゴンを塗りつぶし可能な形状に整形するための処理を施す。まず、地図データ生成装置は、概略ポリゴンを構成する線分から、処理対象となるべき対象線分を選択する。そして、この対象線分について、概略ポリゴンの他の線分との重なりまたは交差の有無を検出する。重なりとは、双方の線分上の２以上の点が同一座標にあることを言う。交差とは、連続する線分以外で２つの線分上の一点が同一座標にあることを言う。以下、本明細書では、交差する双方の線分に含まれる同一座標の一点を「交点」と狭義に定義する。
【００１９】
重なりや交差の有るポリゴンは、塗りつぶしに支障があるポリゴンと言える。第２の構成の地図データ生成装置は、上述の判断手順により、整形を要するポリゴンを自動的に抽出することができる。重なりや交差の検出は、全ポリゴンを対象として行っても良いし、第１の構成と同様、特定のポリゴンについてのみ行うようにしてもよい。
【００２０】
重なりや交差が有るポリゴンが抽出された場合、その整形は、オペレータが施すようにしてもよいが、次の手順により、自動的に実行可能としてもよい。第１の例として、地図データ生成装置は、重なりが検出された場合、重なっている全線分を除去する。こうすることにより、概略ポリゴンを複数の閉図形に分割することができ、塗りつぶし時に生じる支障を解消することができる。
【００２１】
重なりが生じている場合には、重なっている線分の一方または双方を、線分に直交する方向に平行移動するなどして重なりを解消する方法を採ることも可能ではある。ただし、この方法は、重なりを除去する処理よりも処理負荷が大きくなるという弊害がある。また、本来重なりが生じるべき線分同士の間隔を広げるという変形は、例え、わずかな間隔に抑えたとしても、実サイズに換算した場合には、地形または地物形状に対して看過し得ないほどの変形を加えることに相当する。これらの弊害を考慮すると、重なりが生じている場合には、線分同士の間隔を空ける方法を避け、当該線分を削除する方が好ましい。ただし、本発明は、間隔を空ける方法を排除する趣旨ではない。また、ポリゴンの定義上、許容されるのであれば、重なりが生じている線分同士を、一本の線分で置換する方法を採っても良い。
【００２２】
第２の例として、地図データ生成装置は、交差が検出された場合、交差している線分間の交点を概略ポリゴンの頂点として新たに定義する。こうすることにより、概略ポリゴンを複数の閉図形に分割することができ、塗りつぶしの支障を回避することができる。複数の閉図形は、上述の交点で、互いに接続された状態となる。
【００２３】
重なりや交差が複数、発見されている場合、整形処理は、種々の手順で行うことが可能である。例えば、まず、上述した第１または第２の例の整形処理で、いずれか一つの重なりまたは交差を解消する。次に、処理後のポリゴンについて、再度、重なり、交差の判定処理を行う。そして、重なり、交差が発見された場合には、再度、第１または第２の例の整形処理で、いずれか一つの重なりまたは交差を解消する。このように、整形処理と、重なり、交差の判定処理とを繰り返し実行することにより、順次、重なりや交差を解消していく方法を採ることができる。この方法によれば、複雑なポリゴンであっても、比較的簡易な処理手順で整形することができる利点がある。
【００２４】
上述の処理は、詳細ポリゴンを縮小する座標変換によって概略ポリゴンを生成した上で、施すことが好ましい。このように縮小する場合に、詳細ポリゴンで許容される座標値と、概略ポリゴンで許容される座標値との解像度の相違によって、上述した形状の簡略化や、ポリゴンの整形が必要となるのが通常だからである。座標変換は、種々の態様で行うことができる。例えば、詳細ポリゴンを一旦、直交座標系で定義した上で、概略ポリゴン用の直交座標系に写像する方法を採ることができる。別の例として、詳細ポリゴンの頂点を緯度、経度の座標で定義し、この値を直交座標系に写像することで概略ポリゴンを生成してもよい。いずれの場合においても、本発明は、予め規定された整数値のみを採る座標系で概略ポリゴンを定義する場合に、有用性が高い。かかる場合には、概略ポリゴンの生成時に丸め誤差が生じやすいからである。
【００２５】
本発明は、第１、第２の構成において説明した種々の特徴を全て備えている必要はなく、一部を省略したり、適宜組み合わせたりしてもよい。第１の構成における特徴を第２の構成に取り込んでも良いし、その逆を行っても良い。本発明は、地図データ生成装置の他、コンピュータによって地図データを生成する地図データ生成方法として構成することもできる。また、コンピュータにかかる地図データの生成を実行されるためのコンピュータプログラムとして構成してもよい。
【００２６】
更に、このコンピュータプログラムを記録した記録媒体として構成することもできる。ここで、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００２７】
本発明の実施例について以下の順序で説明する。
Ａ．装置構成：
Ｂ．地図ＤＢ２０の構造：
Ｃ．地図ＤＢ整備処理：
Ｄ．上位レベルデータ整備処理：
Ｄ１．正規化処理：
Ｄ２．頂点間引処理：
Ｄ３．ポリゴン整形処理：
Ｅ．通行規制整備処理：
Ｆ．効果：
【００２８】
Ａ．装置構成：
図１は実施例としての地図データ生成装置１０の概略構成を示す説明図である。本実施例では、地図データ生成装置１０は、汎用のパーソナルコンピュータに、地図データ生成装置としての機能を実現するためのコンピュータプログラムをインストールすることにより構成される。図中の各機能ブロックは、ソフトウェア的に構成されることになるが、少なくとも一部をハードウェア的に構成することも可能である。また、図の例では、スタンドアロンで機能する装置を例示したが、ネットワークで接続された複数のコンピュータの分散処理によって地図データ生成装置１０を構成するようにしてもよい。
【００２９】
本実施例の地図データ生成装置１０は、既存の地図データを利用して、新たな地図データを生成する機能を奏する。予め地図データとして、拡大図の表示用に詳細な地形または地物形状を表したポリゴン（以下、「詳細ポリゴン」と呼ぶ）が用意されているものとし、この詳細ポリゴンをデフォルメして、広域図の表示用に概略形状を表すポリゴン（以下、「概略ポリゴン」と呼ぶ）を生成するのである。地図データ生成装置には、この他にも、新規にポリゴンを生成する機能など、多様な機能を備えるようにしてもよい。本実施例では、こうした機能の一つとして、３本のリンクにまたがる通行規制（以下、「３リンク規制」と呼ぶ）が設定されている場合に、この通行規制を２本のリンクにまたがる通行規制（以下、「２リンク規制」と呼ぶ）の形で設定し、地図ＤＢ２０に登録する機能を備えるものとした。
【００３０】
地図ＤＢ２０は、階層的に用意された地図データを格納する。上位レベルとは、広域図を表示するための概略形状を表したデータ、即ち概略ポリゴンであり、下位レベルとは、拡大図を表示するための詳細な形状を表したデータ、即ち詳細ポリゴンである。地図ＤＢ２０に備えられる地図データのレベル数は、表示時の縮尺および表示の処理時間に対する要請を考慮して、任意に設定可能である。地図ＤＢは、上述の地図データの他、道路ネットワークデータも格納する。道路ネットワークデータとは、道路および交差点を、リンク・ノードの集合で表したデータである。道路ネットワークデータには、通行規制も含まれる。
【００３１】
地図ＤＢ参照部１６は、地図ＤＢ２０を参照し、デフォルメの処理対象となるポリゴンを抽出する。座標変換部１７は、地図ＤＢ２０に格納されているポリゴンの座標系（以下、「極座標系」と称する）を、後述するデフォルメ処理および表示用の座標系に変換する。本実施例では、地図ＤＢ２０のポリゴンデータは、頂点の座標値を緯度、経度の座標系で表したデータとし、デフォルメ処理および表示時には、これを直交座標系に変換して用いるものとした。座標変換部１７は、極座標系と直交座標系の相互の変換を行う。地図ＤＢ２０に格納するデータの座標系や、デフォルメ処理用、表示用の座標系は、任意に選択可能である。例えば、極座標で統一してもよいし、直交座標で統一してもよい。また、地図ＤＢに格納するポリゴンデータを生成するために用いる原データを極座標とし、地図ＤＢに格納されるデータを直交座標としてもよい。一定の座標系を統一的に用いる場合には、座標変換部１７を省略してもよい。
【００３２】
地図ＤＢ２０から抽出されたポリゴンは、次の各ブロックによってデフォルメ処理される。頂点間引処理部１８は、生成すべきポリゴンのスケールに応じて、ポリゴンの頂点の間引き処理を実行する。ポリゴン整形部１９は、塗りつぶしに不適切な形状となっているポリゴンを抽出し、塗りつぶしできる形状に整形する。デフォルメ修正部１４は、頂点間引処理部１８、ポリゴン整形部１９を施した上で、更にポリゴン形状の不適切な部分をオペレータの操作に応じて手動修正する機能を提供する。デフォルメ後のポリゴンに対して、修正や確認の必要性がないと考えられる場合には、デフォルメ修正部１４は省略してもよい。これらの処理過程における中間的なデータは、デフォルメＤＢ２１を介して授受される。デフォルメＤＢ２１は、デフォルメ処理時に用いられるべき種々の条件も併せて保持している。
【００３３】
通行規制設定部１２は、ポリゴンのデフォルメとは別の機能を提供するための機能ブロックであり、本実施例では、先に説明した３リンク通行規制を２リンク通行規制に変換する機能を提供する。通行規制の変換方法は、パターン化され、規制パターンＤＢ２２に記憶されている。通行規制設定部１２は、通行規制を付すべき交差点の形状および３リンク規制の内容に応じて、規制パターンＤＢ２２を参照し、対応する２リンク規制を当該交差点の通行規制として設定する。
【００３４】
表示制御部１３は、以上で説明したデフォルメ処理や通行規制設定処理に際して、デフォルメされた結果や通行規制設定結果の表示、デフォルメの条件その他を入力するためのインタフェース画面を提示する。コマンド入力部１１は、キーボードやマウスに対する操作を介して、オペレータからのコマンドを入力する。
【００３５】
Ｂ．地図ＤＢ２０の構造：
図２は地図ＤＢ２０のデータ構造例を示す説明図である。先に説明した通り、地図ＤＢ２０では、上位レベルから下位レベルまで階層構造の地図データが用意されている。下位レベルは狭い領域を詳細に示す地図データであり、上位レベルは広域を示す概略形状の地図データである。例えば、図中の下位レベルに示した、ひょうたん形の湖ＬＫは、中間のレベルでは、中央の細くくびれた部分が表示されなくなって、２つに分かれた形状で表示される。更に、上位レベルになると、ただの黒丸で表されるようになる。本実施例の地図データ生成装置１０は、図２中の下位レベルの湖ＬＫのポリゴン、即ち詳細ポリゴンが存在する場合に、中間レベルのポリゴン、即ち概略ポリゴンを自動または半自動で生成するための装置なのである。
【００３６】
図３はポリゴンデータの構造例を示す説明図である。図の右側に、ポリゴンの形状例を示した。図示するように、頂点Ｐ１〜Ｐ１２を結んでできる第１図形と、頂点Ｐ１３〜１６を結んでできる第２図形からポリゴンが構成される場合を考える。第１図形、第２図形は異なるポリゴンとして扱ってもよいが、ここでは分離された２つの図形を一つのポリゴンとして扱うものとする。
【００３７】
図の左側にデータ構造例を示した。ここでは、ＸＭＬを利用したデータベースのイメージを示したが、ポリゴンのデータ形式は、テーブル形式など任意の形式を適用可能である。本実施例では、ポリゴンには、図示した各項目のデータが格納される。ポリゴンＩＤは、ポリゴンの識別子である。例えば、上述の第１図形、第２図形を別ポリゴンとして扱う場合には、それぞれに異なるポリゴンＩＤが付されることになる。地図上のポリゴンの表示等は、このポリゴンＩＤ単位で行われる。従って、第１図形、第２図形は、分離されてはいるものの、表示、非表示の制御は統一的に行われる。
【００３８】
形状は、ポリゴンを構成する頂点の点列を格納している。各頂点については、その位置を示す座標が格納されている。図の例では、第１図形を表す点列「Ｐ１，Ｐ２…、Ｐ１２、Ｐ１」と、第２図形を表す点列「Ｐ１３、Ｐ１４、Ｐ１５、Ｐ１６、Ｐ１３」とが記録されている。図中では、第１図形、第２図形の点列を、２行に分けて示したが、地図ＤＢ２０中では、第１図形、第２図形含めて一連の点列として記録されている。第１図形の点Ｐ１、第２図形の点Ｐ１３のように、同一の点が２回にわたって現れた時点で、地図データ生成装置１０は、一つの閉図形が完成したと認識するようになっている。図の例は、ポリゴン形状の定義の一例に過ぎないため、ポリゴンの形状は、これに限らず種々の方法で定義することが可能である。
【００３９】
属性には、「湖」、「河川」、「建物」、「道路」などのポリゴンの種別、名称、塗りつぶし時の色の指定などが含まれる。図示した属性の一部を省略してもよいし、この他の属性を含めてもよい。
【００４０】
図４は道路ネットワークデータの構造例を示す説明図である。図示する通り、リンクＬ１〜Ｌ５、ノードＮ１、Ｎ２が存在する道路を例に採って説明する。本実施例の道路ネットワークデータには、リンクデータ、ノードデータ、通行規制データが含まれる。図の左下には、リンクＬ２に対するリンクデータを例示した。リンクデータには、図示する各項目を含めることができる。「リンクＩＤ」は、リンクの識別子である。「形状」は、リンクの通過点の座標値が格納される。図の例では、リンクＬ２の形状は始点Ｎ１、終点Ｎ３のみによって規定されているが、中間の通過点を追加してもよい。「規制」は、そのリンクが関連する通行規制の内容を格納する。本実施例では、ここに通行規制データを識別するための「規制ＩＤ」を記録するものとした。リンクデータには、この他、国道や県道などの「種別」、道路の「名称」、双方向可能かいずれか一方向の通行のみしか許容されないかを示す「進行方向」など、種々の属性データが含まれる。属性データは、図示した項目の一部を省略しても構わないし、この他の項目を追加してもよい。
【００４１】
図の左上には、ノードＮ１に対するノードデータを例示した。ノードデータには、図示する各項目を含めることができる。「ノードＩＤ」は、ノードの識別子である。「位置」は、ノードの座標値が格納される。「規制」は、そのノードが関連する通行規制データの「規制ＩＤ」を記録する。ノードデータには、この他、種々の属性データが含まれる。
【００４２】
図の右下には、通行規制データを示した。図中に矢印で示した３リンク規制、即ちリンクＬ２、Ｌ３、Ｌ４の順に通行することが禁止されるという規制を例示した。「規制ＩＤ」は通行規制データの識別子であり、図の例では、「ＲＲ１」という規制ＩＤが付されている。「通行禁止」には、通行規制の内容が記録されている。図の例では、禁止される通行態様を表す情報として、リンク「Ｌ２→Ｌ３→Ｌ４」という順序が記録されている。「リンク」および「ノード」には、この通行規制が関連するノードおよびリンクが記録される。図の例では、リンク「Ｌ２、Ｌ３，Ｌ４」およびその端点となるノード「Ｎ３、Ｎ１、Ｎ２、Ｎ４」が記録される。逆に、これらに対応するリンクデータおよびノードデータには、「規制」項目に「ＲＲ１」なる規制ＩＤが記録されることになる（図中のリンクデータおよびノードデータ参照）。
【００４３】
リンクデータ、ノードデータ、通行規制データは、図示した例に限らず、種々のデータ構造を採ることができる。例えば、通行規制データは、リンクデータまたはノードデータの属性データの一つとして記録するようにしてもよい。また、図中の例では、３リンク規制の例を示したが、通行規制データを２リンク規制に限定してもよい。以下で示す処理例では、地図ＤＢ２０における道路ネットワークデータのデータ形式として、２リンク規制しか許容されていない場合を想定し、３リンク規制を２リンク規制に変換する処理についても説明する。
【００４４】
Ｃ．地図ＤＢ整備処理：
図５は地図ＤＢ整備処理のフローチャートである。地図データ生成装置１０のＣＰＵが実行する処理である。処理が開始されると、ＣＰＵは、ディスプレイにメニューを提示し、モードを入力する（ステップＳ１）。図中にメニュー画面ＭＥＮＵを示した。本実施例では、モードとして、「１．上位レベルデータ整備」と、「２．通行規制整備」の２つを用意している。更に多くのモードを用意してもよい。
【００４５】
オペレータがいずれかのモードを指定すると、ＣＰＵは指定されたモードに応じた処理をそれぞれ実行する（ステップＳ２）。モード１が指定された場合には、ＣＰＵは上位レベルデータ整備処理を行う（ステップＳ１００）。これは、地図ＤＢ２０に格納された詳細ポリゴンから、上位レベルの地図データ、即ち概略ポリゴンを生成する処理である。モード２が指定された場合には、ＣＰＵは通行規制整備処理を実行する（ステップＳ２００）。これは、予め用意された３リンク規制のデータに基づいて、道路ネットワークデータに２リンク規制の通行規制データを付す処理である。処理内容の詳細については、後述する。この他のモードが用意されている場合には、同様に、指定されたモードに応じて、それぞれ対応した処理を実行すればよい。
【００４６】
Ｄ．上位レベルデータ整備処理：
図６は上位レベルデータ整備処理のフローチャートである。地図ＤＢ整備処理（図５）において、モード１が指定された時に実行される処理である。この処理を開始すると、ＣＰＵは、基準レベル、対象レベルの指定を入力し（ステップＳ１０２）、基準レベルからポリゴンデータを読み込む（ステップＳ１０４）。
【００４７】
対象レベルとは、ポリゴンを整備する対象となるレベルである。対象レベル用に生成されるポリゴンが概略ポリゴンに相当する。基準レベルとは、概略ポリゴンを生成するために使用されるポリゴンを格納したレベルである。基準レベルにおけるポリゴンが詳細ポリゴンに相当する。本実施例では、対象レベルの縮尺ＳＣＬ２が基準レベルの縮尺ＳＣＬ１よりも小さい場合、即ち対象レベルの方が基準レベルよりも広域を表示する場合に対する処理を示す。本実施例では、詳細ポリゴンは、基準レベルに格納されているデータ、即ち地図表示に使用されるいずれかのデータを用いるものとしているが、地図表示用のデータとは別に用意されたポリゴンを詳細ポリゴンとして用いても良い。この場合には、詳細ポリゴンは地図データの階層と無関係に定まることになるから、ステップＳ１０２において、「基準レベルの指定」を省略してもよい。
【００４８】
ＣＰＵは次に、正規化処理を行う（ステップＳ１１０）。正規化処理とは、緯度、経度で表される極座標系を、対象レベルに応じた直交座標系に変換する処理である。座標変換の結果は、デフォルメＤＢ２１に格納される。地図データは、予め規定された矩形領域（以下、「メッシュ」と呼ぶ）を単位として整備されるため、各メッシュの左下端を直交座標系の原点とする。ステップＳ１０２中に示した図中の点Ｏが直交座標系の原点に相当する。また、直交座標系では、座標値は整数値のみが許容されているものとする。地図データ上で実数の座標値を許容したとしても、地図表示時には、座標値はディスプレイのピクセルを単位とする整数値に制限されることになるからである。正規化処理の内容については、後述する。
【００４９】
こうしてポリゴンが対象レベルに応じた直交座標系で表されると、ＣＰＵは頂点間引処理（ステップＳ１３０）、およびポリゴン整形処理（ステップＳ１５０）を実行する。頂点間引処理とは、対象レベルの縮尺ＳＣＬ２に応じて、ポリゴンの頂点を間引くことによって、ポリゴン形状を簡略化するための処理である。ポリゴン整形処理とは、正規化処理および頂点間引処理の結果、ポリゴンが塗りつぶしに不適な形状となった場合に、これを塗りつぶしに適した形状に整形する処理である。それぞれの処理の結果は、デフォルメＤＢ２１に格納される。これらの処理の内容については後で詳述する。
【００５０】
以上の処理によって、対象レベルに応じた概略ポリゴンが完成する。図示を省略したが、オペレータの手作業で、ポリゴンの形状を更に整える処理を設けても良い。ＣＰＵは、こうして完成されたポリゴンの座標を、直交座標系から極座標系に変換し、地図ＤＢ２０にデータを格納して（ステップＳ１７０）、上位レベルデータ整備処理を終了する。地図ＤＢ２０に直交座標系でデータを格納する際には、座標変換は省略可能である。
【００５１】
Ｄ１．正規化処理：
図７は正規化処理の方法を示す説明図である。上位レベルデータ整備処理（図６）のステップＳ１１０に相当する処理内容を示している。図７（ａ）の実線は、対象レベルの地図データの整備単位となるメッシュを表している。このメッシュの４つの頂点の（緯度、経度）はそれぞれ原点Ｏ（ＬＡＴ０、ＬＯＮ０）、右下（ＬＡＴ０、ＬＯＮ１）、左上（ＬＡＴ１、ＬＯＮ０）、右上（ＬＡＴ１、ＬＯＮ１）とする。このとき、原点Ｏから右下の点までの距離Ｌｘ、および左上の点までの距離Ｌｙは、次式で求められる。
Ｌｘ＝Ｒ×（ＬＯＮ１−ＬＯＮ０）；
Ｌｙ＝Ｒ×（ＬＡＴ１−ＬＡＴ０）；
Ｒ…地球の半径；
ＬＯＮ０、ＬＯＮ１、ＬＡＴ０、ＬＡＴ１の単位はラジアン（ｒａｄ）。
【００５２】
同様に、原点からメッシュ内の任意の点Ｐ（ＬＡＴ、ＬＯＮ）までのｘ方向の距離Ｌｘｐ、ｙ方向の距離Ｌｙｐは、次式で求められる。
Ｌｘｐ＝Ｒ×（ＬＯＮ−ＬＯＮ０）；
Ｌｙｐ＝Ｒ×（ＬＡＴ−ＬＡＴ０）；
【００５３】
メッシュ上の直交座標系において右下の点のｘ座標をＸｎ、左上の点のｙ座標をＹｎと定義すると、任意の点Ｐの座標（Ｘ、Ｙ）は次の通り求められる。座標値Ｘｎ、Ｙｎは、直交座標系の縮尺およびディスプレイのピクセル数に応じて決定することができる。実際の距離Ｌｘ，Ｌｙを最大Ｘｎ、Ｙｎまでの値で表現するという意味で、解像度に相当する値でもある。
Ｘ＝ＩＮＴ（Ｘｎ×Ｌｘｐ／Ｌｘ）＝ＩＮＴ｛Ｘｎ×（ＬＯＮ−Ｌｏｎ０）／（ＬＯＮ１−ＬＯＮ０）｝；
Ｙ＝ＩＮＴ（Ｙｎ×Ｌｙｐ／Ｌｙ）＝ＩＮＴ｛Ｙｎ×（ＬＯＮ−Ｌｏｎ０）／（ＬＯＮ１−ＬＯＮ０）｝；
ＩＮＴは、小数第１位の四捨五入による整数化を表す演算子とする。
【００５４】
整数化を施すのは、先に説明した通り、メッシュ上の直交座標系は整数値のみをとるからである。図中に示した破線は直交座標系の整数座標を表す格子である。任意の点Ｐが図のように格子点Ｇ００、Ｇ０１、Ｇ１０、Ｇ１１で囲まれる格子内に位置する場合には、上述の整数化によって、点Ｐは最も近い格子点に割り当てられることになる。図の例では、格子点Ｇ００に割り当てられ、この格子点に対応する座標が点Ｐの直交座標系における座標値となる。本明細書では、このように座標値の整数化を施す処理を正規化処理と称する。図７（ａ）の例から明らかな通り、正規化処理を施すことによって、ポリゴンの頂点Ｐの座標には、点Ｐを図中の格子点Ｇ００に割り当てる際に生じる丸め誤差が含まれることがある。
【００５５】
図７（ａ）では、緯度、経度からの座標変換と合わせて正規化処理を施す例を示した。正規化処理は、直交座標系のスケール変更とともに施すこともできる。下位レベルのポリゴンが直交座標系で表されている時、「上位レベルのポリゴンの座標＝下位レベルにおける座標値×上位レベルと下位レベルとの縮尺比」で求めることができる。こうして求められる座標値は実数値となるから、図７（ａ）で示したのと同様の正規化処理が必要となる。従って、直交座標系同士の変換であっても、正規化処理を施すことにより、座標値には丸め誤差が含まれ得る。
【００５６】
図７（ｂ）は、丸め誤差の影響を表している。正規化前後での形状の変化を示した。白丸を結んだ形状が、正規化前のポリゴンを表している。頂点の座標値として実数値を許容しているため、座標系の定義に関わらず、現実の地形または地物に忠実な形状を表していることになる。これに対し、黒丸を太線で結んだ形状が、正規化後のポリゴンを表している。図中で白丸と黒丸とを結ぶ矢印は、正規化前後の頂点の対応関係を示している。図の例では、正規化前のポリゴンは辺同士が交差する部分が存在しないのに対し、正規化後のポリゴンでは、一部で辺同士が交差する形状となることが分かる。このように、正規化処理を施すと、各頂点での丸め誤差が独立に生じる結果、図７（ｂ）に示したように、ポリゴンの形状に看過し得ない影響を与えることがある。本実施例では、こうした影響を、以下に示す頂点間引処理やポリゴン整形処理で除去するものである。
【００５７】
Ｄ２．頂点間引処理：
図８は頂点間引処理のフローチャートである。上位レベルデータ整備処理（図６）のステップＳ１３０に相当する処理内容を示している。処理を開始すると、ＣＰＵは、デフォルメＤＢ２１から正規化処理が完了したポリゴンデータを読み込む（ステップＳ１３１）。そして、このポリゴンを構成する頂点の中から、対象頂点ＰＰを選択する（ステップＳ１３２）。選択方法は、任意に設定可能である。予め設定した規則に従って選択してもよいし、ランダムに選択してもよい。
【００５８】
ＣＰＵは、選択された対象頂点が、予め設定された間引条件に合致する場合には、対象頂点を間引く（ステップＳ１３３）。図中に本実施例で用いた４つの間引き条件を示した。図中の白丸はポリゴンの頂点を表しており、矢印はポリゴンの辺を表すとともに、ポリゴンを構成する点列の格納順序を表している。第１の間引条件によれば、対象頂点ＰＰの両隣の頂点ＰＰ１、ＰＰ２を結んだ直線（図中の破線）と対象頂点ＰＰとの間の距離ｄ１が所定の閾値Ｔｈ１以下の時に対象頂点ＰＰが削除される。これは、ポリゴンの外周形状が、対象頂点ＰＰの部分でわずかに屈曲している場合に、この屈曲を省略した形状に変形する態様に相当する。
【００５９】
第２の間引条件によれば、対象頂点ＰＰの両隣の頂点ＰＰ１、ＰＰ２の距離ｄ２が所定値Ｔｈ２以下の時に対象頂点ＰＰが削除される。この間引条件に該当するポリゴンは、図示するように対象頂点ＰＰの部分で非常に鋭くスパイク状に突出した外周形状となっている。第２の間引条件で対象頂点ＰＰを削除すると、ポリゴンはスパイク状に突出した部分を削った滑らかな形状となる。スパイク状に突出した部分は、地図表示時には、ノイズが残っているかのような違和感を与えることが多いため、このように削除することにより、見栄えのよい地図を提供することが可能となる。
【００６０】
第３の間引条件によれば、対象頂点ＰＰを挟む内角θが所定値Ｔｈ３以下となる時に対象頂点ＰＰを削除する。第３の間引条件によっても、第２の間引条件と同様、スパイク状の部分を削除することができる。対象頂点ＰＰがその両隣の隣接頂点ＰＰ１、ＰＰ２の一方に偏っている場合には、頂点ＰＰ１、ＰＰ２間の距離ｄ３は第２の間引条件を満たさない可能性があるが、このような場合でも、内角θをパラメータとする第３の間引条件は満足する可能性がある。従って、第２および第３の間引条件を併用することにより、相互に補完して、より確実にスパイク状の部分を削除することが可能となる。
【００６１】
第４の間引条件によれば、対象頂点ＰＰと隣の頂点ＰＰ１との距離ｄ４が所定値以下の時に対象頂点ＰＰが削除される。これは、対象頂点と隣接頂点とが近接している場合に、両者を一つの頂点にまとめる態様である。
【００６２】
閾値Ｔｈ１〜Ｔｈ４の値は、それぞれポリゴンの変形の程度が許容範囲に収まるよう、任意に設定すればよい。対象頂点は、第１〜第４の間引条件のいずれか一つに該当すれば削除される。上述の間引条件は、例示であり、この中の一部の条件を省略してもよいし、更に追加の間引条件を設けても良い。
【００６３】
ＣＰＵは、ポリゴンの全頂点を対象頂点として、上述のステップＳ１３２、Ｓ１３３の処理を実行し（ステップＳ１３４）、更に、この処理を、全ポリゴンについて実行して（ステップＳ１３５）、頂点間引処理を終了する。本実施例では、頂点間引処理を全ポリゴンに対して施すものとしたが、湖沼や建物枠など、特定種類のポリゴンに対してのみ施すようにしてもよい。この場合には、ステップＳ１３１において、ポリゴンの属性を参照し、指定された種類のポリゴンのみを選択的に読み込むようにすればよい。また、別の態様として、ステップＳ１３３で適用する間引条件を、ポリゴンの種類によって切り換えても良い。こうすることで、ポリゴンの種類ごとに適切な変形を施すことが可能となる。
【００６４】
Ｄ３．ポリゴン整形処理：
図９はポリゴン整形処理のフローチャートである。上位レベルデータ整備処理（図６）のステップＳ１５０に相当する処理内容を示している。処理を開始すると、ＣＰＵはデフォルメＤＢ２１から、正規化処理および頂点間引処理が完了した状態のポリゴンデータを読み込む（ステップＳ１５１）。そして、このポリゴンに対し、重なり・交差線分の検出を行う（ステップＳ１５２）。先に説明した通り、重なりとは、双方の線分上の２以上の点が同一座標にあること、即ち２つの線分の交点が複数存在することを言う。交差とは、連続する線分以外で２つの線分上の一点が同一座標にあることを言い、両線分の端点とは異なる交点が一つだけ存在することを言う。図中には、「交差」が存在するポリゴンの例を示した。この形状では、線分Ｐ３Ｐ４と、線分Ｐ５Ｐ１が交差している。
【００６５】
結果は、図中に示したテーブル形式で格納する。図示したテーブル（以下、「重なり・交差テーブル」と称する）は、左側に示したポリゴンに対応するものである。このポリゴンは、線分Ｐ１Ｐ２、Ｐ２Ｐ３、Ｐ３Ｐ４、Ｐ４Ｐ５、Ｐ５Ｐ１の５本の線分から構成されている。重なり・交差テーブルには、各線分間の重なり・交差の有無を０、１、２の３値で記録した。例えば、線分Ｐ２Ｐ３と線分Ｐ１Ｐ２の間には重なり、交差ともに存在しないため、このことを示す値「０」が記録されている。線分Ｐ５Ｐ１と線分Ｐ３Ｐ４は、交差しているため、このことを示す値「２」が記録される。図中の例では、重なりは存在しないため、重なりを示す値「１」は記録されていない。図中のハッチングは、データを記録する必要がない部分を示している。
【００６６】
ＣＰＵは、ステップＳ１５２で示した検出処理が完了すると、その結果に応じて、次の処理を実行する（ステップＳ１５３）。まず、いずれかの線分間で重なりが検出された場合には、ポリゴン途切れ回復処理を実行する（ステップＳ１５４）。これは、後述する通り、重なり部分を除去して、ポリゴンを複数の閉図形に分割する処理である。次に、いずれの線分間でも重なりは存在しないが、いずれかの線分が交差している場合には、ポリゴン捻れ回復処理を実行する（ステップＳ１５５）。これは、後述する通り、線分の交点を新たな頂点と定義し、ポリゴンを複数の閉図形に分割する処理である。ＣＰＵは、いずれの線分間でも重なりおよび交差が検出されていない場合には、ポリゴン整形処理を完了する。図示したポリゴン整形処理は、全ポリゴンについて実行される。
【００６７】
図１０は線分間にポリゴン途切れ回復処理の内容を示す説明図である。図１０（ａ）には処理前のポリゴン形状およびポリゴンデータに記録されたデータを例示した。図中のポリゴンは頂点Ｐ１〜Ｐ１０で構成されており、線分Ｐ３Ｐ４と、線分Ｐ８Ｐ９とが完全に重なっている。図の右側に示す通り、処理前の状態では、ポリゴンの形状は、頂点「Ｐ１、Ｐ２、…Ｐ１０、Ｐ１」という一連の点列で定義されている。
【００６８】
図１０（ｂ）はポリゴン途切れ回復処理を施した後の形状を示す説明図である。ポリゴン途切れ回復処理では、重なっている線分Ｐ３Ｐ４、Ｐ８Ｐ９が除去される。従って、ポリゴンの形状は、図１０（ｂ）の左側に示す通り、点Ｐ１，Ｐ２，Ｐ３，Ｐ１０からなる第１図形と、点Ｐ４，Ｐ５，Ｐ６，Ｐ７からなる第２図形に分割される。このとき、ポリゴンの形状は、図の右側に示す通り、第１図形に対応する点列「Ｐ１，Ｐ２，Ｐ３，Ｐ１０，Ｐ１」と、第２図形に対応する点列「Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ４」とから構成される。これらの点列では、点Ｐ１および点Ｐ４がそれぞれ重複して現れるため、第１図形と第２図形とを区分することが可能である。
【００６９】
図１０（ａ）、図１０（ｂ）に示したそれぞれのポリゴンデータを参照して、ポリゴン途切れ回復処理時の形状データの処理方法について説明する。まず、ＣＰＵは図１０（ａ）に示した処理前の点列を冒頭から順次選択し、重なり・交差の検出結果（図９のステップＳ１５２に示したテーブル）を参照して、重なり関係にある頂点か否かを判断する。図１０（ａ）の例では、図中に頂点Ｐ３（図中の実線丸印）が重なり関係にある最初の頂点として抽出される。重なり・交差テーブルを参照すれば、線分Ｐ３Ｐ４と線分Ｐ８Ｐ９が重なっていることが判別する。そこで、本実施例では、重なりの相手方線分を構成する線分、即ち線分Ｐ８Ｐ９のうち、後に位置する頂点Ｐ９を点Ｐ３と同一の点とみなすものとした。後に位置するとは、ポリゴンデータの形状を規定する点列における順序を意味する。従って、ポリゴン途切れ処理を実行すると、ＣＰＵは、点Ｐ３，Ｐ９を同一頂点とみなすため、頂点「Ｐ１，Ｐ２，Ｐ３」に続く点列として、頂点Ｐ９の次の点列「Ｐ１０、Ｐ１」を読み出し、第１図形として定義するのである（図１０（ｂ）参照）。
【００７０】
次に、ＣＰＵは第１図形から漏れた頂点を図１０（ａ）の点列から抽出する。頂点Ｐ１〜Ｐ３および頂点Ｐ９，Ｐ１０，Ｐ１は第１図形で使用されたため、ＣＰＵは、点Ｐ４〜Ｐ８を抽出することができる。そして、重なり・交差テーブルを参照して、点Ｐ８と点Ｐ４が同一点であることを見いだし、頂点Ｐ８をＰ４に置換することで、第２図形の定義を完了する。
【００７１】
上述の処理では、頂点Ｐ３、Ｐ９が同一点であり、頂点Ｐ４、Ｐ８も同一点であることを前提としているが、位置座標を比較することで、頂点Ｐ８、Ｐ９のいずれが頂点Ｐ３と同一点であるかを判定してもよい。また、上述の処理は、これらが同一でない場合にも拡張可能である。この場合には、第１図形の定義時に頂点Ｐ９を頂点Ｐ３の次の点として残せばよい。この結果、第１図形は頂点「Ｐ１、Ｐ２、Ｐ３、Ｐ９、Ｐ１０、Ｐ１」と定義されることになる。第２図形も同様に、頂点Ｐ８を頂点Ｐ４とは異なる点として残せばよい。
【００７２】
図１１はポリゴン捻れ回復処理の内容を示す説明図である。図１１（ａ）には処理前のポリゴン形状およびポリゴンデータに記録されたデータを例示した。図中のポリゴンは頂点Ｐ１〜Ｐ６で構成されており、線分Ｐ２Ｐ３と、線分Ｐ５Ｐ６とが交差している。図の右側に示す通り、処理前の状態では、ポリゴンの形状は、頂点「Ｐ１、Ｐ２、…Ｐ６、Ｐ１」という一連の点列で定義されている。
【００７３】
ポリゴン捻れ回復処理では、交差している線分Ｐ２Ｐ３、Ｐ５Ｐ６が交差する箇所に新たな交点Ｘ１（図中の黒丸）を設定する。そして、ポリゴンの点列にも、この交点Ｘ１を追加する。交点Ｘ１は、線分Ｐ２Ｐ３、Ｐ５Ｐ６上の点であるから、図１１（ａ）の右側に示す通り、形状の点列は、「Ｐ１，Ｐ２，Ｘ１，Ｐ３，Ｐ４，Ｐ５，Ｘ１，Ｐ６，Ｐ１」と定義される。
【００７４】
次にＣＰＵは、図１１（ｂ）に示すようにこの交点Ｘ１でポリゴンを分割する。ハッチングを付した部分が分割されたポリゴンに相当する。ポリゴンデータ上の処理は、ポリゴン途切れ処理（図１０）と同様である。即ち、ＣＰＵは処理前の点列を冒頭から交点Ｘ１に至るまで順次抽出し、交点Ｘ１が検出されると、次の交点Ｘ１まで点列をスキップする。図の例では、「Ｐ１，Ｐ２，Ｘ１」と抽出した後、次の点Ｘ１以降の「Ｐ６，Ｐ１」を抽出して、ハッチング部分に相当する第１図形を定義する。そして、抽出されなかった残りの点列で残存図形を定義する。図中の例では、残存図形は、図１１（ｂ）に破線囲みで示した点列「Ｘ１，Ｐ３，Ｐ４，Ｐ５，Ｘ１」で定義される。
【００７５】
ＣＰＵは、上述の処理を行った後、再度、重なり・交差検出を実行する（図９のステップＳ１５５，Ｓ１５２参照）。この結果、図１１（ｂ）の例では、第２図形において、更に線分Ｘ１Ｐ５と線分Ｐ４Ｐ３の交差が検出される。従って、ＣＰＵは残存図形に対して、ポリゴン捻れ回復処理を実行する。上述の通り、線分Ｘ１Ｐ５と線分Ｐ４Ｐ３が交差する箇所に新たな交点Ｘ２（図中の黒丸）を設定する。そして、ポリゴンの点列上に交点Ｘ２を追加する。その後、図１１（ｃ）に示すように、残存図形を交点Ｘ２で更に第２図形、第３図形の二つの閉図形に分割する。この結果、点列は、図１１（ｃ）に示すように、第１図形「Ｐ１，Ｐ２，Ｘ１，Ｐ６，Ｐ１」、第２図形「Ｘ１，Ｐ３，Ｘ２，Ｘ１」、第３図形「Ｘ２，Ｐ４，Ｐ５，Ｘ２」となる。
【００７６】
上述の処理では、交点Ｘ１、Ｘ２を段階的に設ける方法を示した。これに対し、図１１（ａ）の段階で、交点Ｘ１，Ｘ２を設定し、３つの閉図形への分割を並行して進めるようにしてもよい。
【００７７】
Ｅ．通行規制整備処理：
次に、地図ＤＢ整備処理（図５）でモード２が選択された場合に実行される通行規制整備処理、即ち、道路ネットワークデータに通行規制を付す場合の処理について説明する。本実施例では、通行規制データとして、２リンク規制しか許容されていない場合を想定し、図４に示した３リンク規制の通行規制データが与えられた場合に、この通行規制データを２リンク規制の組み合わせで実現する処理を例にとって説明する。本実施例では、以下に示す通り、通行規制が付された交差点および３リンク規制の内容に応じて、２リンク規制の付与方法を対応づけた規制パターンＤＢ２２（図１参照）を用意し、これを参照することで、通行規制の整備を行う。
【００７８】
図１２は規制パターンＤＢ２２の構造例を示す説明図である。規制パターンＤＢ２２は、図の上段に示す３リンク規制に対して、下段に示す規制パターンを対応づけたデータベースである。図中の例では、リンクＬ１〜Ｌ５からなる交差点に対して、リンクＬ１→Ｌ２→Ｌ５という通行が禁止されている３リンク規制が付されている場合の例を示した。各リンクに付した矢印は、リンクに許容された通行可能方向を表している。
【００７９】
下段には、上段の３リンク規制を、２リンク規制で実現するための規制パターンを示した。この例では、既存のリンクＬ１〜Ｌ５に対して、ダミーリンクＤＬ１、ＤＬ２およびダミーノードＤＮが追加される。ダミーリンクＤＬ１、ＤＬ２とは、現実の路上には実在せず、３リンク規制を２リンク規制で表現するために便宜上、設定されたリンク、ノードである。ダミーノードＤＮをリンクＬ２上、またはリンクＬ２のごく近傍に設ければ、ダミーリンクＤＬ１、ＤＬ２を通行する経路も、ユーザに支障なく案内可能である。
【００８０】
このようにダミーノードＤＮ、ダミーリンクＤＬ１、ＤＬ２を設けた場合、図中に矢印で示すように通行禁止の２リンク規制を設ける。設けられる２リンク規制は、次の通りである；
リンクＬ４    →リンクＤＬ１；
リンクＬ３    →リンクＤＬ２；
リンクＬ１    →リンクＬ２；
リンクＤＬ１←→リンクＬ２；
リンクＤＬ２←→リンクＬ２；
リンクＤＬ２←→リンクＬ５；
【００８１】
上記規制によれば、「リンクＬ１→Ｌ２→Ｌ５」またはこれと同等の経路「リンクＬ１→ＤＬ１→ＤＬ２→Ｌ５」という通行方法は実現し得なくなる。また、それと同時に、リンクＬ２またはダミーリンクＤＬ１、ＤＬ２を通行することにより、３リンク規制「リンクＬ１→Ｌ２→Ｌ５」で禁止されていない通行方法については、支障なく通行することが可能となる。
【００８２】
このように、３リンク規制が与えられた場合、３リンク規制の内容に応じて、ダミーリンク、ダミーノードを追加し、２リンク規制を付すことによって、３リンク規制と同等の内容を２リンク規制のみで実現することが可能となる。ダミーリンク、ダミーノードおよび２リンク規制の設け方は、交差点形状および３リンク規制の内容に依存するため、本実施例では、これを規制パターンとして規制パターンＤＢ２２に格納しているのである。
【００８３】
図中では、一例のみを示したが、規制パターンは、交差点の形状および規制内容ごとに用意されている。例えば、交差点形状が、図中の上段に破線囲みで示した通り、双方向通行可能な１条のリンクと２条のリンクからなる交差点ＩＣ１、２条のリンク同士からなる交差点ＩＣ２という形状をなしている場合には、図１２中の規制パターンとは異なる規制パターンとして、規制パターンＤＢ２２に記録されることになる。
【００８４】
図１３は通行規制整備処理のフローチャートである。地図ＤＢ整備処理（図５）のステップＳ２００に相当する処理である。処理を開始すると、地図データ生成装置１０のＣＰＵは、与えられた通行規制データから、３リンク規制を抽出する（ステップＳ２０２）。そして、３リンク規制の重複部分を結合し、処理単位を決定する（ステップＳ２０４）。
【００８５】
図中に、処理単位を決定する方法を例示した。図示する通り、ノードＮａ、Ｎｂを通過する３リンク規制として規制Ｒ１、Ｒ２の２つが抽出されたとする。この時点では、３リンク規制に着目してデータの抽出を行っているため、規制Ｒ１、Ｒ２は個別の規制として抽出されている。規制Ｒ１、Ｒ２を個別の規制データとして扱って、規制パターンに基づく処理を実行することも可能ではあるが、この場合には、ダミーリンク、ダミーノード、２リンク規制が無用に増えるという弊害がある。規制Ｒ１の処理時に設けられたダミーリンク等とは無関係に、規制Ｒ２の処理時にダミーリンクが改めて設けられることになるからである。こうした弊害を回避するため、本実施例では、３リンク規制が付されているリンク、ノードの一部が共通している規制データを結合する。図中の例では、通行規制Ｒ１，Ｒ２に対して、ノードＮａ、Ｎｂが共通であるため、ノードＮａ，Ｎｂで規定される交差点周りに規制Ｒ１，Ｒ２という二つの３リンク規制が存在している状態を処理単位とするのである。
【００８６】
ステップＳ０４で示した重複部分の結合処理には、規制パターンＤＢ２２に格納すべき規制パターンが増加するという弊害がある。規制Ｒ１と規制Ｒ２とを個別に扱う場合には、交差点周りに規制Ｒ１、Ｒ２のような３リンク規制が一つ存在する場合の規制パターンのみを用意すれば足りるのに対し、重複部分の結合処理を施す場合には、この規制パターンに加えて、交差点周りに規制Ｒ１，Ｒ２という二つの３リンク規制が存在する場合の規制パターンを別途用意する必要があるからである。本実施例では、このように規制パターンが増加するという弊害と、道路ネットワークデータに付されることになる無用なダミーリンク、ダミーノード、２リンク規制が増加するという弊害とを比較した結果、後者を重視して、重複部分の結合処理を施すものとした。
【００８７】
処理単位を決定すると、ＣＰＵは処理単位の交差点を構成するノード、リンクに処理用の番号を付与する（ステップＳ２０６）。この番号は、交差点の形状および規制パターンを、規制パターンＤＢ２２に対応した形式で表現するために用いられる。本実施例では、図中に示すように、交差点を構成するノードに番号Ｎ１，Ｎ２を付し、各ノードごとに接続されているリンクに番号を付した。ノードＮ１に接続されているリンクには、リンクＬ１、Ｌ２、Ｌ３が付されている。ノードＮ２に接続されるリンクには、リンクＬ１１、Ｌ１２、Ｌ１３が付されている。リンクＬ２とリンクＬ１２は実質的には同一リンクであるが、ここでは重複して番号が付されることになる。更に、この番号を用いて３リンク規制を表せば、「リンクＬ１→Ｌ２→Ｌ１２→Ｌ１１」となる。
【００８８】
ＣＰＵは、こうして付された番号および３リンク規制に基づいて、規制パターンＤＢ２２を参照し、そこに格納されている規制パターンに従って、ダミーノード、ダミーリンクを設定し、２リンク規制を付与する（ステップＳ２０８）。そして、ダミーノード、ダミーリンク以外の処理用番号を、もとのノードＩＤ、リンクＩＤに変換し、規制データの付与結果を地図ＤＢ２０の道路ネットワークデータに格納する（ステップＳ２１０）。ダミーノード、ダミーリンクの処理用番号については、既存のノードＩＤ、リンクＩＤと重複しない新たなＩＤを付して、道路ネットワークデータに格納すればよい。
【００８９】
Ｆ．効果：
以上で説明した本実施例の地図データ生成装置１０によれば、上位レベルデータ整備処理（図５）によって、既存の詳細ポリゴンに基づき、上位レベルの概略ポリゴンを容易に生成することができる。この際に用いられる頂点間引処理（図８）において、対象頂点およびそれに隣接する頂点の相対的な位置関係に基づいて対象頂点を削除するか否かを判定するため、ポリゴンの拡大、縮小の倍率に応じた適切な簡略化を実現することができる。また、ポリゴン整形処理（図９）を施すことにより、オペレータに過度な負荷をかけることなく塗りつぶしに適した形状を実現することができる。
【００９０】
また、本実施例の地図データ生成装置１０によれば、通行規制整備処理（図５、１３）によって、３リンク規制から２リンク規制への変換を容易に行うことができる。この処理では、新たな交差点形状、新種の規制が生じた場合でも、規制パターンＤＢ２２への規制パターン追加により、容易に対処可能であるという利点もある。また、３リンク規制と２リンク規制との対応関係のみならず、更に多種多様な規制間の変換も可能である。
【００９１】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。上述の実施例においてソフトウェアで実現するものとして説明した箇所は、ハードウェアで実現してもよいし、その逆も可能である。
【図面の簡単な説明】
【００９２】
【図１】実施例としての地図データ生成装置１０の概略構成を示す説明図である。
【図２】地図ＤＢ２０のデータ構造例を示す説明図である。
【図３】ポリゴンデータの構造例を示す説明図である。
【図４】道路ネットワークデータの構造例を示す説明図である。
【図５】地図ＤＢ整備処理のフローチャートである。
【図６】上位レベルデータ整備処理のフローチャートである。
【図７】正規化処理の方法を示す説明図である。
【図８】頂点間引処理のフローチャートである。
【図９】ポリゴン整形処理のフローチャートである。
【図１０】線分間にポリゴン途切れ回復処理の内容を示す説明図である。
【図１１】ポリゴン捻れ回復処理の内容を示す説明図である。
【図１２】規制パターンＤＢ２２の構造例を示す説明図である。
【図１３】通行規制整備処理のフローチャートである。
【符号の説明】
【００９３】
１０…地図データ生成装置
１１…コマンド入力部
１２…通行規制設定部
１３…表示制御部
１４…デフォルメ修正部
１６…地図ＤＢ参照部
１７…座標変換部
１８…頂点間引処理部
１９…ポリゴン整形部
２０…地図ＤＢ
２１…デフォルメＤＢ
２２…規制パターンＤＢ
【図１】
2007256402.tif 000003
【図２】
2007256402.tif 000004
【図３】
2007256402.tif 000005
【図４】
2007256402.tif 000006
【図５】
2007256402.tif 000007
【図６】
2007256402.tif 000008
【図７】
2007256402.tif 000009
【図８】
2007256402.tif 000010
【図９】
2007256402.tif 000011
【図１０】
2007256402.tif 000012
【図１１】
2007256402.tif 000013
【図１２】
2007256402.tif 000014
【図１３】
2007256402.tif 000015