(57)【要約】【課題】ポリゴンの単純化に際して、不整合なデータが生じないようにする。【解決手段】隣接する複数のポリゴンで構成される地図データを単純化する。（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する（Ｓ２０）。特定ノードには、対象ポリゴンに隣接する２以上のポリゴンと共有されるノードＮＳ１〜ＮＳ５が含まれる。（ｂ）複数のノードのうち特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行う（Ｓ３０）。削除されるノードの少なくとも一部は、残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある。（ｃ）地図データに含まれる複数のポリゴンについて、ラインの単純化処理が行われた結果を出力する。【選択図】図４
2016191999.tif 000002
【特許請求の範囲】
【請求項１】
隣接する複数のポリゴンで構成される地図データを単純化する地図データ処理装置であって、
（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する特定ノード決定部であって、前記特定ノードには、前記対象ポリゴンに隣接する２以上のポリゴンと共有されるノードが含まれる、特定ノード決定部と、
（ｂ）前記複数のノードのうち前記特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行うライン処理部であって、前記削除されるノードの少なくとも一部は、前記残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある、ライン処理部と、
（ｃ）前記地図データに含まれる前記複数のポリゴンについて、前記ラインの単純化処理が行われた結果を出力する出力部と、を備える、地図データ処理装置。
【請求項２】
請求項１記載の地図データ処理装置であって、
前記ライン処理部は、
（ｂ１）前記複数のノードのうちの一つを始点として連続する複数のラインについて、前記複数のラインの終点のノードと前記始点のノードとの間の中間点のノードのすべてが、前記始点のノードと前記終点のノードとを結ぶ直線に対して、前記距離しきい値より小さい距離の範囲内にある場合であって、所定の条件が満たされる場合に、前記対象ポリゴンに含まれるノードのうち、前記始点のノードから数えた順番が前記終点のノードよりも一つ多いノードを、新たな終点のノードとする第１の処理と、
（ｂ２）前記第１の処理を、すべての前記中間点のノードが前記直線に対して前記距離しきい値より小さい距離の範囲内にある、という距離条件が満たされなくなるまで繰り返し、前記距離条件が満たされなくなった場合に、最後に前記第１の処理が行われる前の前記中間点のノードであって、前記特定ノードではないノードを、削除すべきノードに分類し、前記距離条件が満たされなくなったときの前記終点のノードを、新たな始点とする第２の処理と、
（ｂ３）前記第２の処理を、当該対象ポリゴンの処理において、最初に始点となったノードが終点となるまで繰り返す第３の処理と、を実行し、
隣接するポリゴンによって共有されるラインの少なくとも一部について、各ポリゴンを対象とする前記ラインの単純化処理において、前記始点から前記終点に向かう向きが一致するように、前記地図データに含まれる前記複数のポリゴンについて、前記ラインの単純化処理を実行する、地図データ処理装置。
【請求項３】
請求項２記載の地図データ処理装置であって、
前記ライン処理部は、さらに、
（ｂ４）前記第２の処理の後、前記対象ポリゴンのノードのうち、前記始点、前記中間点または前記終点に指定されたノードであって、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、ノードを介して隣接する二つのラインがなす角度が、角度しきい値より小さいノードが存在する場合に、当該二つのラインが共有するノードを、新たに削除すべきノードに分類する第４の処理を実行し、
前記第３の処理は、前記第２の処理および前記第４の処理を、最初に始点となったノードが終点となるまで繰り返す処理である、地図データ処理装置。
【請求項４】
請求項３記載の地図データ処理装置であって、
前記ライン処理部は、さらに、
（ｂ５）前記第２の処理の後、前記始点のノードから始まって、前記距離条件が満たされなくなったときの前記終点のノードまで、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、自己交差が生じる場合には、前記距離しきい値をより小さく設定して、当該対象ポリゴンについて、前記第２の処理を再度実行する第５の処理を実行する、地図データ処理装置。
【請求項５】
請求項４記載の地図データ処理装置であって、
前記ライン処理部は、さらに、
（ｂ６）前記第５の処理の結果が、当該対象ポリゴンについてそれまでに行われた前記第２の処理の結果と一致する場合に、前記終点のノードを、新たな始点として、前記第２の処理を実行する第６の処理を実行し、
前記第３の処理は、前記第２の処理ならびに前記第４から前記第６の処理を、最初に始点となったノードが終点となるまで繰り返す処理である、地図データ処理装置。
【請求項６】
隣接する複数のポリゴンで構成される地図データを単純化する方法であって、
（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する工程であって、前記特定ノードには、前記対象ポリゴンに隣接する２以上のポリゴンと共有されるノードが含まれる、工程と、
（ｂ）前記複数のノードのうち前記特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行う工程であって、前記削除されるノードの少なくとも一部は、前記残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある工程と、
（ｃ）前記地図データに含まれる前記複数のポリゴンについて、前記工程（ａ）および（ｂ）を実行する工程と、を備える方法。
【請求項７】
請求項６記載の方法であって、
前記（ｂ）は、
（ｂ１）前記複数のノードのうちの一つを始点として連続する複数のラインについて、前記複数のラインの終点のノードと前記始点のノードとの間の中間点のノードのすべてが、前記始点のノードと前記終点のノードとを結ぶ直線に対して、前記距離しきい値より小さい距離の範囲内にある場合であって、所定の条件が満たされる場合に、前記対象ポリゴンに含まれるノードのうち、前記始点のノードから数えた順番が前記終点のノードよりも一つ多いノードを、新たな終点のノードとする工程と、
（ｂ２）前記工程（ｂ１）を、すべての前記中間点のノードが前記直線に対して前記距離しきい値より小さい距離の範囲内にある、という距離条件が満たされなくなるまで繰り返し、前記距離条件が満たされなくなった場合に、最後に前記工程（ｂ１）が行われる前の前記中間点のノードであって、前記特定ノードではないノードを、削除すべきノードに分類し、前記距離条件が満たされなくなったときの前記終点のノードを、新たな始点とする工程と、
（ｂ３）前記工程（ｂ２）を、当該対象ポリゴンの処理において、最初に始点となったノードが終点となるまで繰り返す工程と、を含み、
前記（ｃ）は、隣接するポリゴンによって共有されるラインの少なくとも一部について、各ポリゴンを対象とする前記工程（ｂ）において、前記始点から前記終点に向かう向きが一致するように、前記地図データに含まれる前記複数のポリゴンについて、前記工程（ｂ）を実行する工程である、方法。
【請求項８】
請求項７記載の方法であって、
前記工程（ｂ）は、さらに、
（ｂ４）前記工程（ｂ２）の後、前記対象ポリゴンのノードのうち、前記始点、前記中間点または前記終点に指定されたノードであって、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、ノードを介して隣接する二つのラインがなす角度が、角度しきい値より小さいノードが存在する場合に、当該二つのラインが共有するノードを、新たに削除すべきノードに分類する工程を含み、
前記工程（ｂ３）は、前記工程（ｂ２）および（ｂ４）を、最初に始点となったノードが終点となるまで繰り返す工程である、方法。
【請求項９】
請求項８記載の方法であって、
前記工程（ｂ）は、さらに、
（ｂ５）前記工程（ｂ２）の後、前記始点のノードから始まって、前記距離条件が満たされなくなったときの前記終点のノードまで、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、自己交差が生じる場合には、前記距離しきい値をより小さく設定して、当該対象ポリゴンについて、前記工程（ｂ２）を再度実行する工程を含む、方法。
【請求項１０】
請求項９記載の方法であって、
前記工程（ｂ）は、さらに、
（ｂ６）前記工程（ｂ５）の結果が、当該対象ポリゴンについてそれまでに行われた前記工程（ｂ２）の結果と一致する場合に、前記終点のノードを、新たな始点として、前記工程（ｂ２）を実行する工程を含み、
前記工程（ｂ３）は、前記工程（ｂ２）ならびに（ｂ４）〜（ｂ６）を、最初に始点となったノードが終点となるまで繰り返す工程である、方法。
【請求項１１】
コンピュータを使用して、隣接する複数のポリゴンで構成される地図データを単純化するためのコンピュータプログラムであって、
（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する機能であって、前記特定ノードには、前記対象ポリゴンに隣接する２以上のポリゴンと共有されるノードが含まれる、機能と、
（ｂ）前記複数のノードのうち前記特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行う機能であって、前記削除されるノードの少なくとも一部は、前記残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある機能と、
（ｃ）前記地図データに含まれる前記複数のポリゴンについて、前記機能（ａ）および（ｂ）を実行する機能と、をコンピュータに実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポリゴンを単純化する技術に関するものである。
【背景技術】
【０００２】
従来、ポリゴン（クローズドポリゴン）を単純化するための技術として、ポリゴンを構成するラインを単純化する技術が存在する。ラインの単純化処理においては、以下のような処理が行われる。すなわち、ポリゴンを構成するラインのうち、ある連続した複数のラインにおいて、それら複数の連続ラインの両端の２個のノード以外の中間のノードが、両端の２個のノードを結ぶ直線に対して所定の距離内にある場合には、それら中間のノードは削除される。そして、連続した複数のラインとその各ラインの端点である複数のノードは、連続した複数のラインの両端の２個のノードとそれらを結ぶ一つのラインに置き換えられる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「ラインまたはポリゴンの単純化（Simplify Line Or Polygon） (カバレッジ) 」http://resources.arcgis.com/ja/help/main/10.1/index.html#//001300000045000000
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、航空写真に基づいて生成されポリゴンで表された詳細な地図データや、ポリゴンで表された大縮尺の（詳細な）地図データから、上記の技術を使用して、より小縮尺の地図データを生成しようとすると、以下のような問題が生じうる。すなわち、港の桟橋などの細長くかつ屈曲した形状が単純化された結果、ポリゴンを形成するラインの自己交差が生じ得る。また、隣接する区画を表すポリゴンがそれぞれ単純化された結果、隣接する区画を表すポリゴン同士が一部重複した不整合な地図データが生成され得る。
【０００５】
そのため、ポリゴンの単純化に際して、不整合なデータが生じないようにする技術が望まれていた。そのほか、従来のポリゴンデータの処理を行う装置においては、記憶領域の縮小、負荷の低減、処理速度の向上、使い勝手の向上等が望まれていた。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
（１）本発明の一形態によれば、隣接する複数のポリゴンで構成される地図データを単純化する地図データ処理装置が提供される。この地図データ処理装置は：（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する特定ノード決定部であって、前記特定ノードには、前記対象ポリゴンに隣接する２以上のポリゴンと共有されるノードが含まれる、特定ノード決定部と；（ｂ）前記複数のノードのうち前記特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行うライン処理部であって、前記削除されるノードの少なくとも一部は、前記残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある、ライン処理部と；（ｃ）前記地図データに含まれる前記複数のポリゴンについて、前記ラインの単純化処理が行われた結果を出力する出力部と、を備える。
【０００８】
このような態様とすれば、地図データの単純化において、ラインの三つ叉以上の分岐の交点であるノードは削除されない。このため、隣接する複数のポリゴンで構成される地図データを単純化する際に、単純化する前には隣接していた二つのポリゴンが一部重複したり、離間したりしてしまう可能性を低減できる。
【０００９】
（２）上記の地図データ処理装置において、前記ライン処理部が：（ｂ１）前記複数のノードのうちの一つを始点として連続する複数のラインについて、前記複数のラインの終点のノードと前記始点のノードとの間の中間点のノードのすべてが、前記始点のノードと前記終点のノードとを結ぶ直線に対して、前記距離しきい値より小さい距離の範囲内にある場合であって、所定の条件が満たされる場合に、前記対象ポリゴンに含まれるノードのうち、前記始点のノードから数えた順番が前記終点のノードよりも一つ多いノードを、新たな終点のノードとする第１の処理と；（ｂ２）前記第１の処理を、すべての前記中間点のノードが前記直線に対して前記距離しきい値より小さい距離の範囲内にある、という距離条件が満たされなくなるまで繰り返し、前記距離条件が満たされなくなった場合に、最後に前記第１の処理が行われる前の前記中間点のノードであって、前記特定ノードではないノードを、削除すべきノードに分類し、前記距離条件が満たされなくなったときの前記終点のノードを、新たな始点とする第２の処理と；（ｂ３）前記第２の処理を、当該対象ポリゴンの処理において、最初に始点となったノードが終点となるまで繰り返す第３の処理と、を実行し、
隣接するポリゴンによって共有されるラインの少なくとも一部について、各ポリゴンを対象とする前記ラインの単純化処理において、前記始点から前記終点に向かう向きが一致するように、前記地図データに含まれる前記複数のポリゴンについて、前記ラインの単純化処理を実行する、態様とすることもできる。
【００１０】
隣接するポリゴンによって共有されるラインについて、各ポリゴンを対象とするラインの単純化処理における始点から終点に向かう向きが逆であると、単純化する前には隣接していた二つのポリゴンが一部重複したり、離間したりしてしまう可能性がある。しかし、上記のような態様とすれば、隣接する複数のポリゴンで構成される地図データを単純化する際に、単純化する前には隣接していた二つのポリゴンが一部重複したり、離間したりしてしまう可能性をより低減できる。
【００１１】
（３）上記の地図データ処理装置において、前記ライン処理部が、さらに、（ｂ４）前記第２の処理の後、前記対象ポリゴンのノードのうち、前記始点、前記中間点または前記終点に指定されたノードであって、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、ノードを介して隣接する二つのラインがなす角度が、角度しきい値より小さいノードが存在する場合に、当該二つのラインが共有するノードを、新たに削除すべきノードに分類する第４の処理を実行し；前記第３の処理は、前記第２の処理および前記第４の処理を、最初に始点となったノードが終点となるまで繰り返す処理である、態様とすることができる。
【００１２】
このような態様とすれば、細長い部分を省略した地図データを、地図データの単純化によって、生成することができる。
【００１３】
（４）上記の地図データ処理装置において、前記ライン処理部が、さらに、（ｂ５）前記第２の処理の後、前記始点のノードから始まって、前記距離条件が満たされなくなったときの前記終点のノードまで、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、自己交差が生じる場合には、前記距離しきい値をより小さく設定して、当該対象ポリゴンについて、前記第２の処理を再度実行する第５の処理を実行する、態様とすることができる。
【００１４】
このような態様とすれば、地図データの単純化において、自己交差が生じる事態を防止することができる。
【００１５】
（５）上記の地図データ処理装置において、前記ライン処理部が、さらに、（ｂ６）前記第５の処理の結果が、当該対象ポリゴンについてそれまでに行われた前記第２の処理の結果と一致する場合に、前記終点のノードを、新たな始点として、前記第２の処理を実行する第６の処理を実行し；前記第３の処理は、前記第２の処理ならびに前記第４から前記第６の処理を、最初に始点となったノードが終点となるまで繰り返す処理である、態様とすることができる。
【００１６】
このような態様とすれば、無駄な処理を廃して、地図データ処理装置を効率的に運用することができる。
【００１７】
（６）本発明のさらに他の形態によれば、隣接する複数のポリゴンで構成される地図データを単純化する方法が提供される。この方法は：（ａ）一つの対象ポリゴンを構成する複数のノードのうち、削除されるべきではない１以上の特定ノードを決定する工程であって、前記特定ノードには、前記対象ポリゴンに隣接する２以上のポリゴンと共有されるノードが含まれる、工程と；（ｂ）前記複数のノードのうち前記特定ノードを含む一部を残し、他の一部のノードを削除する処理によって、ラインの単純化処理を行う工程であって、前記削除されるノードの少なくとも一部は、前記残されるノードを結ぶラインに対して、距離しきい値より小さい距離にある工程と；（ｃ）前記地図データに含まれる前記複数のポリゴンについて、前記工程（ａ）および（ｂ）を実行する工程と、を備える。
【００１８】
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。
【００１９】
本発明は、装置以外の種々の形態で実現することも可能である。例えば、経路案内装置、経路探索装置、経路案内方法、経路案内装置、その方法を実現するコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施例である地図データ処理装置のハードウェア構成を示す説明図である。
【図２】ポリゴンで表された地図データが表す地図の一例を示す図である。
【図３】ポリゴンで表された地図データが表す地図の一例を示す図である。
【図４】ＣＰＵ２１１（図１参照）がポリゴンで表された大縮尺の詳細な地図データからポリゴンで表されたより小縮尺のおおまかな地図データを生成する際の処理を示すフローチャートである。
【図５】対象ポリゴンＴＰを構成する複数のノードの中の特定ノードの例を示す図である。
【図６】図４のステップＳ３０の処理内容を示すフローチャートである。
【図７】図６の処理内容の一例を示す図である。
【図８】第２実施形態において実行される処理を示すフローチャートである。
【図９】地図データにおいて桟橋を表す部分について図８の処理の結果を示す図である。
【図１０】地図データにおいて桟橋を表す部分について２回目の図８の処理の結果を示す図である。
【図１１】第３実施形態において実行される処理を示すフローチャートである。
【図１２】自己交差の例を示す図である。
【発明を実施するための形態】
【００２１】
Ａ．第１実施形態：
図１は、本発明の第１実施例である地図データ処理装置のハードウェア構成を示す説明図である。地図データ処理装置２００は、インターフェイス２０５と、キーボード２０６と、主制御部２１０と、ハードディスクドライブ２１５と、液晶ディスプレイ２２０と、を有している。
【００２２】
キーボード２０６は、ユーザが、キーを押して操作を行うことによって、地図データ処理装置２００に情報を入力するためのデバイスである。インターフェイス２０５は、通信ネットワークとしてのインターネットを介して、外部と情報を送受信することができる。なお、通信ネットワークとしては、インターネットのほかにＬＡＮやＷＡＮ、公衆回線等を使用できる。
【００２３】
主制御部２１０は、地図データ処理装置２００の各部を制御するための制御ユニットである。主制御部２１０は、それらの制御に使用されるＣＰＵ２１１、ＲＡＭ２１２、ＲＯＭ２１３を備えている。例えば、主制御部２１０は、ＣＰＵ２１１でアプリケーションソフトウェアを実行することによって、地図データ処理装置２００の各部を制御して様々な処理を行わせることができる。また、主制御部２１０は、地図データ処理装置２００と外部との間でデータを送受信することができる。
【００２４】
ハードディスクドライブ２１５は、ＣＰＵで実行されるべきソフトウェアや、ＣＰＵ２１１が処理または参照すべきデータ、ＣＰＵ２１１が処理したデータを格納する。
【００２５】
液晶ディスプレイ２２０は、主制御部２１０が処理したデータに基づいて画像を表示することができる。なお、本明細書において、「画像」とは、狭義の画像のほか、文字、記号等を含む概念である。すなわち、本明細書において、「画像」とは、２次元で表現できる任意の対象を含む。
【００２６】
図２は、ポリゴンで表された地図データが表す地図の一例を示す図である。図３は、ポリゴンで表された地図データが表す地図の一例を示す図である。図２と図３の地図データは、同一の領域の地図を表す。ただし、図２の地図データは、大縮尺の（詳細な）地図を表す。図３の地図データは、図２の地図データよりも小縮尺の（おおまかな）地図を表す。
【００２７】
図２と図３の地図データは、いずれも、互いに隣接するポリゴンの集合によって地図を表す。本実施形態において、ポリゴンは、ノードと、二つのノードを結ぶライン（直線）と、によって規定される。図２および図３で表された範囲において、閉じたポリゴンで表される領域は、陸を表す。他の領域を表すポリゴンは、海を表す。陸を表すポリゴンと海を表すポリゴンは、互いに隣接しており、境界を共有している。
【００２８】
図３の地図においては、図２の地図において再現されている詳細な凹凸がなくなっていることが分かる。詳細な凹凸を表すデータを有していないことから、図３の地図データは、図２の地図データよりも情報量が少ない。地図データ処理装置２００は、ポリゴンで表された詳細な地図データ（図２参照）から、ポリゴンで表されたよりおおまかな地図データ（図３参照）を生成する。ポリゴンで表された大縮尺の（詳細な）地図データは、ＣＰＵ２１１によって、あらかじめインターフェイス２０５を介して外部から取得され、ハードディスクドライブ２１５に格納されている。
【００２９】
図４は、ＣＰＵ２１１（図１参照）がポリゴンで表された大縮尺の詳細な地図データから、ポリゴンで表されたより小縮尺のおおまかな地図データを生成する際の処理を示すフローチャートである。
【００３０】
ステップＳ１０において、ＣＰＵ２１１は、処理対象である地図データ（図２参照）の未処理のポリゴンの中から、一つの対象ポリゴンを特定する。対象ポリゴンは、最初にステップＳ１０を行う際には、たとえば、処理対象である地図データのポリゴンの中で、隣接する他のポリゴンの数が最も多いポリゴンとすることができる。そのようなポリゴンを選択することで、隣接するポリゴンによって共有されるより多くのラインについて、処理の方向を統一して、以下で説明するラインの単純化処理を行うことができる。
【００３１】
２回目以降にステップＳ１０を行う際には、たとえば、処理対象である地図データの未処理のポリゴンの中で、処理済みのポリゴンともっとも長い距離のラインで接しているポリゴンとすることができる。そのようなポリゴンを選択することで、隣接するポリゴンによって共有されるより長い距離のラインについて、処理の方向を統一して、以下で説明するラインの単純化処理を行うことができる。
【００３２】
ステップＳ２０では、ＣＰＵ２１１は、対象ポリゴンを構成する複数のノードの中から１以上の特定ノードを決定する。「特定ノード」は、地図データの単純化処理においてポリゴンから削除されるべきではないノードである。
【００３３】
図５は、対象ポリゴンＴＰを構成する複数のノードの中の特定ノードの例を示す図である。ＣＰＵ２１１は、たとえば、対象ポリゴンに隣接する２以上のポリゴンと共有されるノードを特定ノードとする。図５において、対象ポリゴンＴＰを構成する複数のノードの中うち、ノードＮＳ１〜ＮＳ５は、対象ポリゴンに隣接する２以上のポリゴンと共有される。これらの３個以上ノードによって共有されるノードＮＳ１〜ＮＳ５は、特定ノードに分類される。なお、技術の理解を容易にするため、図５において、特定ノード以外のノードは、明示を省略している。ステップＳ２０の処理を実現するＣＰＵ２１１の機能部を、特定ノード決定部２３１として図１に示す。
【００３４】
図４のステップＳ３０では、ＣＰＵ２１１は、対象ポリゴンと、特定ノードと、に基づいて、ラインの単純化処理を行う。より具体的には、ＣＰＵ２１１は、特定ノードを残しつつ、対象ポリゴンから一部のノードを削除することにより、ラインの単純化処理を行う。ラインの単純化処理については、後に詳細に説明する。ステップＳ３０の処理を実現するＣＰＵ２１１の機能部を、ライン処理部２３２として図１に示す。
【００３５】
ステップＳ３５では、ＣＰＵ２１１は、対象となる地図データ中のすべてのポリゴンについてＳ３０の処理を完了したか否かを判定する。未処理のポリゴンが存在する場合は（Ｓ３５：Ｎｏ）、処理はステップＳ１０に戻る。すべてのポリゴンについてＳ３０の処理を完了した場合には（Ｓ３５：Ｙｅｓ）、処理は、ステップＳ４０に進む。
【００３６】
ステップＳ４０では、ＣＰＵ２１１は、ステップＳ１０〜Ｓ３５の処理によって、大縮尺の（詳細な）地図データから生成された、より小縮尺の（おおまかな）地図データ（図３参照）を、ハードディスクドライブ２１５に格納する。そして、ＣＰＵ２１１は、得られた小縮尺の地図データに基づいて、液晶ディスプレイ２２０に地図の画像を表示する。ＣＰＵ２１１は、その後、処理を終了する。ステップＳ４０の処理を実現するＣＰＵ２１１の機能部を、出力部２３３として図１に示す。
【００３７】
図６は、図４のステップＳ３０の処理内容を示すフローチャートである。ステップＳ３１０では、ＣＰＵ２１１は、対象ポリゴンのノードの中から「始点」となるノードと「終点」となるノードを選択する。
【００３８】
ステップＳ３１０において、「始点」となるノードは、特定ノードの中の任意のノードである。「始点」となるノードは、たとえば、特定ノードの中で、隣接する他の一つの特定ノードとの間のラインの長さの合計が最も長いノードとすることができる。なお、「隣接する特定ノード」とは、ポリゴンに含まれるノードをラインに沿って順に見たときに、それら二つの特定ノードの間に他の特定ノードが存在しないことを意味する。
【００３９】
ステップＳ３１０において、「終点」となるノードは、対象ポリゴンに含まれるノードであって、「始点」のノード（特定ノード）の一方の側にあるノードのうち、「始点」のノードに近い方から２番目のノードである。
【００４０】
対象ポリゴンに対しては、「始点」のノードから「終点」のノードに向かう向きに沿って、ラインの単純化処理が行われる。対象ポリゴンが、すでに対象ポリゴンとなったポリゴンと、処理前の地図データ（図２参照）においてラインを共有しているポリゴンである場合には、「終点」のノードは、以下のように決定される。すなわち、当該共有ラインにおける処理の方向が、すでに対象ポリゴンとなった隣接ポリゴンと、当該対象ポリゴンとで一致するように、「始点」のノードに対する「終点」のノードの位置（側）が決定される。対象ポリゴンが、すでに対象ポリゴンとなった複数のポリゴンとラインを共有しているポリゴンである場合には、最も長いラインを共有している処理済みポリゴンのラインの単純化処理の方向と一致するように、「始点」のノードに対する「終点」のノードの位置（側）が決定される。
【００４１】
このように、隣接しているポリゴンの処理において、共有しているラインの単純化の向きを共通にすることにより、以下の効果が得られる。すなわち、ラインの単純化により、隣接するポリゴンの一部が、重複したり、隣接すべき二つのポリゴンが離れてしまったりする可能性を低減できる。
【００４２】
ステップＳ３１０では、「始点」のノードと「終点」のノードの間のノードである「中間点」のノードが特定ノードである場合には、ＣＰＵ２１１は、その「中間点」のノードを新たに「始点」のノードに設定し、「終点」のノードを上記の基準によって決定し直す。このような処理を行うことにより、特定ノードが削除すべきノードに分類される事態を防止できる。
【００４３】
また、「終点」のノードが特定ノードである場合には、ＣＰＵ２１１は、その「終点」のノードを新たに「始点」のノードに設定し、「終点」のノードを新たに上記の基準によって決定し直す。このような処理を行うことにより、特定ノードが削除すべきノードに分類される事態を防止できる。
【００４４】
図７は、図６の処理内容の一例を示す図である。図７において、ノードＮ１〜Ｎ５と、ノードＮ１〜Ｎ５をその順に結ぶラインとは、対象ポリゴンの一部を構成する。ノードＮ１は、特定ノードである。ノードＮ２〜Ｎ５は、いずれも特定ノードではない。図６のステップＳ３１０において、最初に、ノードＮ１が「始点」に指定される。そして、「始点」のノードＮ１に近い方から２番目のノードであるノードＮ３が「終点」のノードに指定される。
【００４５】
図６のステップＳ３２０では、ＣＰＵ２１１は、「始点」と「終点」を結ぶ直線である「傾向線」を決定する。図７の例では、「始点」のノードＮ１と「終点」のノードＮ３を結ぶ傾向線Ｌｔ１３が決定される。
【００４６】
図６のステップＳ３２５では、ＣＰＵ２１１は、「始点」と「終点」の間に位置するノードである「中間点」のノードが、すべて傾向線の近傍にあるか否かを判定する。より具体的には、ＣＰＵ２１１は、すべての「中間点」のノードの傾向線からの距離（傾向線に下ろした垂線の足の長さ）が、所定の距離しきい値より小さいか否かを判定する。すべての「中間点」のノードの傾向線からの距離が、所定の距離しきい値より小さい場合には（Ｓ３２５：Ｙｅｓ）、処理はステップＳ３２７に進む。
【００４７】
図７の例では、「始点」Ｎ１と「終点」Ｎ３の間に位置するノードである「中間点」のノードＮ２が、傾向線Ｌｔ１３の近傍にあるか否かが判定される。すなわち、「中間点」のノードＮ２の傾向線Ｌｔ１３に下ろした垂線の足の長さＤ１３２が、距離しきい値Ｔｈｄより小さいか否かを判定される。判定結果はＹｅｓとなる。
【００４８】
図６のステップＳ３２７では、ＣＰＵ２１１は、「終点」のノードが、特定ノードであるか否かを判定する。「終点」のノードが、特定ノードではない場合（Ｓ３２７：Ｎｏ）には、処理は、ステップＳ３３０に進む。図７の例では、「終点」のノードＮ３は、特定ノードではないため、処理は、図６のステップＳ３３０に進む。
【００４９】
ステップＳ３３０では、ＣＰＵ２１１は、新たな「終点」のノードを決定する。より具体的には、ＣＰＵ２１１は、対象ポリゴンに含まれるノードのうち、「始点」のノードから数えた順番がその時点での「終点」のノードよりも一つ多いノードを、新たな「終点」のノードとする。そして、処理はステップＳ３２０に戻る。図７の例では、「始点」のノードＮ１から数えた順番がその時点での「終点」のノードＮ３よりも一つ多いノードＮ４が、新たな「終点」として決定される。
【００５０】
一方、ステップＳ３２７において、「終点」のノードが、特定ノードである場合（Ｓ３２７：Ｙｅｓ）には、処理は、ステップＳ３４０に進む。
【００５１】
ステップＳ３４０では、ＣＰＵ２１１は、「始点」のノードと「終点」のノードの間の「中間点」のノードであって、特定ノードではないノードを、削除すべきノードに分類する。そして、ＣＰＵ２１１は、ステップＳ３２７の処理が行われた際の「終点」のノードを、新たな「始点」のノードとする。そして、処理は、ステップＳ３５５に進む。このような処理を行うことにより、特定ノードが削除すべきノードに分類される事態を防止しつつ、傾向線近傍にあって、削除してもポリゴンの全体形状に与える影響が小さいノードを、削除すべきノードに分類することができる。
【００５２】
たとえば、仮に、図７の例において、ノードＮ１，Ｎ２が特定ノードではなく、ノードＮ３が特定ノードである場合には、図６のステップＳ３２５において、「中間点」のノードＮ２が傾向線Ｌｔ１３の近傍にあると判定された後（Ｓ３２５：Ｙｅｓ）、ステップＳ３２７の判定結果は、Ｙｅｓとなる。そして、ステップＳ３４０では、「始点」のノードＮ１と「終点」のノードＮ３の間の「中間点」のノードＮ２が、削除すべきノードに分類される。そして、「終点」のノードＮ３が、新たな「始点」のノードとされる。
【００５３】
一方、図６のステップＳ３２５において、１以上の「中間点」のノードの傾向線からの距離が、所定の距離しきい値以上である場合には（Ｓ３２５：Ｎｏ）、処理はステップＳ３５０に進む。
【００５４】
ステップＳ３５０では、ＣＰＵ２１１は、最後に実行されたステップＳ３２０の処理から一つ前に実行されたステップＳ３２０の処理における中間点のノードであって、特定ノードではないノードを、削除すべきノードに分類する。一つ前に実行されたステップＳ３２０の処理における中間点のノードは、最後に実行されたステップＳ３２０の処理における中間点のノードのうち、「始点」のノードから最も遠いノードを除いたノードである。そして、ＣＰＵ２１１は、その時点の「終点」のノード、すなわち、ステップＳ３２５の処理が行われた際の「終点」のノードを、新たな「始点」のノードとする。
【００５５】
図７の例では、処理が図６のステップＳ３３０（ノードＮ４を「終点」とする）からステップＳ３２０に戻ると、ステップＳ３２０において、「始点」のノードＮ１と「終点」のノードＮ４を結ぶ傾向線Ｌｔ１４が決定される。図６のステップＳ３２５において、「始点」Ｎ１と「終点」Ｎ４の間に位置するノードである「中間点」のノードＮ２，Ｎ３が、傾向線Ｌｔ１４の近傍にあるか否かが判定される。「中間点」のノードＮ３の傾向線Ｌｔ１４に下ろした垂線の足の長さＤ１４３は、距離しきい値Ｔｈｄより小さいが、「中間点」のノードＮ２の傾向線Ｌｔ１４に下ろした垂線の足の長さＤ１４２が、距離しきい値Ｔｈｄより大きいため、判定結果はＮｏとなる。
【００５６】
すると、図６のステップＳ３５０において、一つ前に実行されたステップＳ３２０の処理における中間点のノードＮ２を、削除すべきノードに分類する。一つ前に実行されたステップＳ３２０の処理における中間点のノードは、最後に実行されたステップＳ３２０の処理における中間点のノードＮ２，Ｎ３のうち、「始点」のノードＮ１から最も遠いノードＮ３を除いたノードである。そして、ステップＳ３２５の処理が行われた際の「終点」のノードＮ４が、新たな「始点」のノードとされる。
【００５７】
図６のステップＳ３５５では、新たな「始点」のノードが、当該対象ポリゴンの処理において、最初に始点となったノードであるか否かを判定する。新たな「始点」のノードが、当該対象ポリゴンの処理において、最初に始点となったノードである場合（Ｓ３５５：Ｙｅｓ）には、処理は終了する。一方、新たな「始点」のノードが、当該対象ポリゴンの処理において、最初に始点となったノードではない場合（Ｓ３５５：Ｎｏ）には、処理はステップＳ３６０に進む。
【００５８】
ステップＳ３６０では、新たな「終点」のノードを決定する。より具体的には、「終点」となるノードは、対象ポリゴンに含まれるノードであって、新たな「始点」のノードに対して未処理のノードおよびラインが位置する側にあるノードのうち、「始点」のノードに近い方から２番目のノードである。
【００５９】
ただし、ステップＳ３１０と同様、「始点」のノードと「終点」のノードの間の「中間点」のノードが特定ノードである場合には、ＣＰＵ２１１は、その「中間点」のノードを新たに「始点」のノードに設定し、「終点」のノードを上記と同じ基準によって決定し直す。このような処理を行うことにより、特定ノードが削除すべきノードに分類される事態を防止できる。
【００６０】
また、「終点」のノードが特定ノードである場合には、ＣＰＵ２１１は、その「終点」のノードを新たに「始点」のノードに設定し、「終点」のノードを上記と同じ基準によって決定し直す。このような処理を行うことにより、特定ノードが削除すべきノードに分類される事態を防止できる。
【００６１】
その後、新たな「始点」のノードと「終点」のノードに基づいて、上記処理が繰り返される。
【００６２】
以上の処理により、特定ノードが、削除されるべきノードの分類されるのを防止しつつ、ラインの単純化処理を行うことができる。
【００６３】
本実施形態の図６のステップＳ３２５，Ｓ３３０が、［課題を解決するための手段］における「第１の処理」に対応する。「終点が特定ノードではないこと」（ステップＳ３２７：Ｎｏ）が、「第１の条件」に対応する。ステップＳ３２５，Ｓ３３０，３５０が、「第２の処理」に該当する。ステップＳ３５５が、「第３の処理」に対応する。
【００６４】
Ｂ．第２実施形態：
図８は、第２実施形態において実行される処理を示すフローチャートである。第２実施形態においては、図６のステップＳ３４０，Ｓ３５０とＳ３５５との間に、追加の処理が加えられている。第２実施形態の他の点については、第１実施形態と同じである。
【００６５】
第２実施形態においては、図６のステップＳ３４０またはＳ３５０において、新たに削除すべきノードが決定され、新たな「始点」のノードが決定されると、処理は図８のステップＳ３５１に進む。
【００６６】
ステップＳ３５１では、ＣＰＵ２１１は、それまでに削除されるべきノードに分類されなかったノードの中に、鋭角ノードが存在するか否かを判定する。「鋭角ノード」とは、それまでに削除すべきノードに分類されなかったノードを順にラインで結んだ場合に、そのノードを介して接続される二つのラインが鋭角（本実施形態では１５度以下）をなすノードである。
【００６７】
具体的には、ＣＰＵ２１１は、対象ポリゴンのノードのうち、それまでに始点、中間点または終点に指定されたノードであって、削除すべきノードに分類されていないノードを順にラインで結んだ場合に、隣接する二つのラインがなす角度が、角度しきい値（本実施形態において１５度）より小さいノードが存在するか否かを判定する。そのようなノードが存在しない場合は（Ｓ３５１：Ｎｏ）、処理は図６のステップＳ３５５に進む。そのようなノードが存在する場合は（Ｓ３５１：Ｙｅｓ）、処理はステップＳ３５３に進む。
【００６８】
ステップＳ３５３においては、鋭角ノードを削除すべきノードにあらかじめ分類する。言い換えれば、鋭角ノードをあらかじめ対象ポリゴンから除く。そして、図６のステップＳ３１０以下の処理をやり直す。このような処理を行うことにより、ラインの単純化処理後に、鋭角部分を含む例外的に詳細な構成が残る事態を防止することができる。また、あらかじめ鋭角ノードとなるノードを対象ポリゴンから除いた後、ステップＳ３１０以下の処理をやり直すことにより、以下の効果が得られる。すなわち、最後に発見された鋭角ノードを除いた結果、除かれなかったノードによって新たに鋭角部分が生じ、それが処理後の対象ポリゴンに残ってしまう事態を防止できる。
【００６９】
図９は、地図データにおいて桟橋を表す部分について、図８の処理の結果を示す図である。細い線が、処理前の地図データにおいてノードとラインで表される桟橋の形状を表している。太い線が、処理後の地図データにおいてノードとラインで表される桟橋の形状を表している。図８の最初の処理において、ノードＮｄ１は、鋭角ノードと判定される（図８のＳ３５１：Ｙｅｓ）。その結果、ノードＮｄ１が除かれて（Ｓ３５３）、再度、ラインの単純化処理が行われる（図６のＳ３１０以下参照）。
【００７０】
図１０は、地図データにおいて桟橋を表す部分について、２回目の図８の処理の結果を示す図である。図１０の表記法は、図９と同じである。図８の最初の処理において、ノードＮｄ１が除かれた結果、２回目の図８の処理においては、ノードＮｄ２が鋭角ノードと判定される（図８のＳ３５１：Ｙｅｓ）。なお、ノードＮｄ２は、１回目の図８の処理においては鋭角ノードと判定されない。そして、２回目の図８の処理において、ノードＮｄ２が除かれて（Ｓ３５３）、再度、ラインの単純化処理が行われる。このように、図８の処理が繰り返し行われることで、地図から鋭角部分が除去される。
【００７１】
第２実施形態の処理を行うことにより、詳細な地図のデータに基づいて、鋭角部分を含む微細な構成を除いた地図データを生成することができる。
【００７２】
本実施形態の図８のステップＳ３５１，Ｓ３５３が、［課題を解決するための手段］における「第４の処理」に対応する。
【００７３】
Ｃ．第３実施形態：
図１１は、第３実施形態において実行される処理を示すフローチャートである。第３実施形態においては、図８のステップＳ３５１：Ｎｏと、図６のＳ３５５との間に、追加の処理が加えられている。第３実施形態の他の点については、第２実施形態と同じである。
【００７４】
第３実施形態においては、図８のステップＳ３５１においてＮｏの判定がなされると、処理は、ステップＳ３５６に進む。
【００７５】
図１１のステップＳ３５６では、ＣＰＵ２１１は、それまでに削除されるべきノードに分類されなかったノードを結ぶラインによって、自己交差が生じるか否かを判定する。「自己交差」とは、一つのポリゴンを構成するライン同士が交差することである。
【００７６】
図１２は、自己交差の例を示す図である。図１２において、桟橋のポリゴンを構成するラインがＳＣ１，ＳＣ２において交差している。なお、図１２においては、技術の理解を容易にするため、図９と同じ地図データの例を使用して、自己交差を示している。実際の処理においては、図９の桟橋のポリゴンを構成する鋭角ノードは、図８の処理によってあらかじめ削除されているため、そのような鋭角ノードを含むポリゴンが図１１の処理対象とはならない。
【００７７】
図１１のステップＳ３５６において、自己交差が存在しない場合には（Ｓ３５６：Ｎｏ）、処理は、図６のステップＳ３５５に進む。自己交差が存在する場合には（Ｓ３５６：Ｙｅｓ）、処理は、図１１のステップＳ３５７に進む。
【００７８】
ステップＳ３５７では、ＣＰＵ２１１は、最後に実行されたステップＳ３５６の判定の際に削除すべきノードに分類されていなかったノードと、それより前に行われたステップＳ３５１の処理において、削除すべきノードに分類されていなかったノードと、が同じであるか否かを判定する。両者が同じノードである場合には（Ｓ３５７：Ｙｅｓ）、処理はステップＳ３５０に進む。ステップＳ３５０では、ＣＰＵ２１１は、前述のように、中間点のノードであって特定ノードではないノードを、削除すべきノードに分類する。そして、ＣＰＵ２１１は、その時点の「終点」のノードを、新たな「始点」のノードとする。このような処理を行うことにより、図８の処理が無限に行われる事態を防止できる。
【００７９】
ステップＳ３５７において、最後に実行されたステップＳ３５６の判定の際に削除すべきノードに分類されていなかったノードと、それより前に行われたステップＳ３５１の処理において、削除すべきノードに分類されていなかったノードとが、同じノードではない場合には（Ｓ３５７：Ｎｏ）、処理はステップＳ３５８に進む。
【００８０】
ステップＳ３５８においては、ＣＰＵ２１１は、ステップＳ３２５において適用されるべき距離しきい値を、一定量だけ小さくする。すなわち、各ノードが削除すべきノードに分類されにくい方向に、言い換えれば、各ノードが処理後のポリゴンにおいて残りやすい方向に、条件を緩和する。なお、距離しきい値は、その後、図６のステップＳ３４０，Ｓ３５０において新たな始点が設定された際に、初期値にリセットされる。
【００８１】
そして、ステップＳ３５９においては、ＣＰＵ２１１は、始点を、図６のＳ３５０において新たに設定される前のノードに戻す。すなわち、ステップＳ３２５においてＮｏの判定がなされた際の始点に戻す。そして、処理はステップＳ３６０に進む。ステップＳ３６０では、設定し直された「始点」に基づいて、「終点」が設定される。
【００８２】
このような処理を行うことにより、地図において自己交差が生じる事態を防止することができる。
【００８３】
本実施形態の図１１のステップＳ３５７、図６のステップＳ３５０が、［課題を解決するための手段］における「第５の処理」に対応する。
【００８４】
Ｄ．変形例：
Ｄ１．変形例１：
上記実施形態においては、始点と終点を選択する際、処理済みのポリゴンと共有されるラインについては、処理の向きが一致するように、始点と終点が選択される（図６のステップＳ３１０）。しかし、そのような制約なしで始点と終点が選択される態様とすることもできる。ただし、そのような態様においては、処理前に隣接していた二つのポリゴンについては、それぞれの単純化処理後、境界となるべきラインを、それぞれの単純化処理後のラインから一つ選択する処理を行うことが好ましい。
【００８５】
Ｄ２．変形例２：
上記実施形態において、特定ノードは、３以上のポリゴンに共有されるノードである。しかし、特定ノードは、他のノードを含んでもよい。たとえば、特定ノードは、重要な地物の近傍にあるノードとすることができる。そのような態様とすれば、他の領域に比べて、重要な地物の近傍において、ポリゴンがより正確に地形を表現することとなる。その結果、たとえば、ラインの単純化処理の結果、ある行政区画のポリゴン内にある重要な地物が、単純化処理後に、隣接する別の行政区画のポリゴン内に位置してしまう、という事態を防止できる。
【００８６】
Ｄ３．変形例３：
上記実施形態においては、図２のステップＳ２０において、最初の始点として特定ノードが選択される。しかし、最初の始点を含む始点のノードは、特定ノードではないノードとすることもできる。
【００８７】
Ｄ４．変形例４：
上記実施形態においては、ある始点から始まって、ポリゴンを形成する複数のラインがその並びの順に単純化処理される（図６のステップＳ３５０）。しかし、ラインの単純化処理は、複数のラインで構成されるライン群について、並びの順に処理せず、ポリゴンを形成する複数のラインの任意の部分を選択して、処理する態様とすることもできる。すなわち、結果として、一つのポリゴンを形成する複数のラインの少なくとも一部が単純化処理されればよい。
【００８８】
Ｄ５．変形例５：
上記実施形態では、終点のノードが特定ノードである場合には、終点のノードを始点のノードとして、それまでのラインの単純化処理を終了し、新たにラインの単純化処理を開始する（図６のＳ３２７，Ｓ３４０）。しかし、終点のノードが特定ノードであっても、ラインの単純化処理を続行することとしてもよい。すなわち、図６の処理において、ステップＳ３２７，Ｓ３４０の処理を省略することもできる。ただし、そのような態様においては、図６のステップＳ３５０で中間点のノードを削除すべきノードに分類する際、特定ノードは、削除すべきノードに分類しないことが好ましい。そのような態様としても、特定ノードを残しつつ、ラインの単純化処理を行うことができる。
【００８９】
Ｄ６．変形例６：
上記第２実施形態において、角度しきい値は、１５度である（図８のステップＳ３５１）。しかし、角度しきい値は、５度、１０度などの１５度よりも小さい角度とすることもでき、２０度、２５度などの１５度よりも大きい角度とすることもできる。
【００９０】
Ｄ７．変形例７：
上記第２実施形態においては、鋭角ノードを削除した後、当該ポリゴンの単純化処理は最初からやり直される（図８のＳ３５３参照）。しかし、鋭角ノードを削除した後、当該ポリゴンの単純化処理を途中からやり直す態様とすることもできる。たとえば、鋭角ノードを削除した後、始点をＮ個（Ｎは、１以上、かつ当該ポリゴンに含まれる全ノードの数より小さい整数）前の始点に戻して、単純化処理をやり直す態様とすることもできる。
【００９１】
Ｄ８．変形例８：
上記第３実施形態においては、自己交差が生じた場合には、距離しきい値を緩和して、ラインの単純化処理をやり直す（図１１のステップＳ３５６，Ｓ３５８，Ｓ３５９）。しかし、自己交差が生じた場合に、他の処理を行う態様とすることもできる。すなわち、直前に削除すべきノードの分類されたノードの一部を、あらかじめ「削除すべきでないノード」に設定して、ラインの単純化処理をやり直す態様とすることもできる。
【００９２】
Ｄ９．変形例９：
上記実施形態においては、地図データ処理装置は、一つのコンピュータである。地図データ処理装置は、上記実施形態のように、その各構成要素が一つの筐体内に収納されている一つの装置であってもよい。また、地図データ処理装置は、その構成要素が、互いにデータ通信回線で結ばれている２以上の装置として構成されるものとすることもできる。特定ノードを選択する機能、ラインの単純化処理を行う機能などの各機能については、各装置に１以上の任意の機能を割り当てることができる。そして、各機能は、それぞれ一つの装置で実現されてもよく、２以上の装置が協働して実現してもよい。なお、２以上の構成要素が通信回線で結ばれている態様においては、ユーザに対して情報を出力する出力部は、ユーザが情報を地図データ処理装置に入力する入力部の近傍にあることが好ましい。
【００９３】
Ｄ１０．変形例１０：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、アプリケーションソフトウェアの機能の一部を制御回路が実行するようにすることもできる。
【００９４】
このような機能を実現するコンピュータプログラムは、磁気ディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。コンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをコンピュータが直接実行するようにしてもよい。
【００９５】
この明細書において、コンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
【００９６】
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【００９７】
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【００９８】
２００…地図データ処理装置
２２０…液晶ディスプレイ
２０５…インターフェイス
２０６…キーボード
２１０…主制御部
２１１…ＣＰＵ
２１５…ハードディスクドライブ
２３１…特定ノード決定部
２３２…ライン処理部
２３３…出力部
Ｌｔ１３…傾向線
Ｌｔ１４…傾向線
Ｎ１〜Ｎ５…ノード
ＮＳ１〜ＮＳ５…対象ポリゴンに隣接する２以上のポリゴンと共有されているノード
Ｎｄ１，Ｎｄ２…鋭角ノード
Ｔｈｄ…距離しきい値
ＴＰ…対象ポリゴン
【図１】
2016191999.tif 000003
【図２】
2016191999.tif 000004
【図３】
2016191999.tif 000005
【図４】
2016191999.tif 000006
【図５】
2016191999.tif 000007
【図６】
2016191999.tif 000008
【図７】
2016191999.tif 000009
【図８】
2016191999.tif 000010
【図９】
2016191999.tif 000011
【図１０】
2016191999.tif 000012
【図１１】
2016191999.tif 000013
【図１２】
2016191999.tif 000014