(57)【特許請求の範囲】
【請求項１】
地理情報をデータベースとして管理する地理情報処理システムであって、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムにおいて、
地理情報を構成する複数のレコードにおける各レコードを区別するためのレコード識別値をレコード識別フィールドに設定するレコード識別値設定手段と、
地理情報を構成する複数のレコードにおける線的レコード又は面的レコードが分配保存されるすべての空間領域を前記の複数の所定の大きさの空間領域の中から求める検索手段と、
前記線的レコード又は面的レコードが、前記検索手段によって求めた各空間領域に内包されるか否かを判定する判定手段と、
前記線的レコード又は面的レコードが一つの空間領域に内包される場合、当該線的レコード又は面的レコードが一つの空間領域に内包されている状態にあることを示す第一の空間識別値を空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている前記一つの空間領域に対応するファイルに当該線的レコード又は面的レコードを保存する第一の情報保存手段と、
前記線的レコード又は面的レコードが一つの空間領域に内包されない場合、当該線的レコード又は面的レコードが一つの空間領域に内包されていない状態にあることを示す第二の空間識別値を前記空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている複数の空間領域に対応する複数のファイルに当該線的レコード又は面的レコードをそれぞれ複写して保存する第二の情報保存手段と、
前記空間領域のファイルに保存されている情報から元の地理情報を復元するにあたって、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値であるか第二の空間識別値であるかを判定する空間識別値判定手段と、
空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値である場合に限り、当該レコードを復元する工程に送る第一のフィルター手段と、
空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第二の空間識別値である場合に、当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が既にレコード識別値格納部に格納されているか否かを判断するレコード識別値格納状況判定手段と、
当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されていない場合に、当該レコード識別値を前記レコード識別値格納部に格納すると共に、当該レコードを復元する工程に送る第二のフィルター手段と、
当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されている場合に、当該レコードを復元する工程に送らない第三のフィルター手段と、
を備えてなる地理情報処理システム。
【請求項２】
地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用するコンピュータからなる地理情報処理システムで地理情報をデータベースとして管理するために前記コンピュータを、
地理情報を構成する複数のレコードにおける各レコードを区別するためのレコード識別値をレコード識別フィールドに設定するレコード識別値設定手段、
地理情報を構成する複数のレコードにおける線的レコード又は面的レコードが分配保存されるすべての空間領域を前記の複数の所定の大きさの空間領域の中から求める検索手段、
前記線的レコード又は面的レコードが、前記検索手段によって求めた各空間領域に内包されるか否かを判定する判定手段、
前記線的レコード又は面的レコードが一つの空間領域に内包される場合、当該線的レコード又は面的レコードが一つの空間領域に内包されている状態にあることを示す第一の空間識別値を空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている前記一つの空間領域に対応するファイルに当該線的レコード又は面的レコードを保存する第一の情報保存手段、
前記線的レコード又は面的レコードが一つの空間領域に内包されない場合、当該線的レコード又は面的レコードが一つの空間領域に内包されていない状態にあることを示す第二の空間識別値を前記空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている複数の空間領域に対応する複数のファイルに当該線的レコード又は面的レコードをそれぞれ複写して保存する第二の情報保存手段、
前記空間領域のファイルに保存されている情報から元の地理情報を復元するにあたって、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値であるか第二の空間識別値であるかを判定する空間識別値判定手段、
空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値である場合に限り、当該レコードを復元する工程に送る第一のフィルター手段、
空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第二の空間識別値である場合に、当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が既にレコード識別値格納部に格納されているか否かを判断するレコード識別値格納状況判定手段、
当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されていない場合に、当該レコード識別値を前記レコード識別値格納部に格納すると共に、当該レコードを復元する工程に送る第二のフィルター手段、
当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されている場合に、当該レコードを復元する工程に送らない第三のフィルター手段、
として機能させるための地理情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、地理情報をデータベースとして管理する地図情報処理システム及び地図情報処理プログラムに関し、特に、地理情報システム（Geographical Information System）（ＧＩＳ）において、地理情報を構成する複数のレコード（例えば、地理情報を構成するレコードの図形形状種別である線的レコードや、面的レコード）のそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システム及び、地理情報を構成する前記複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムで地理情報をデータベースとして管理するためのコンピュータプログラムに関する。
【背景技術】
【０００２】
ＧＩＳにおいて、図１図示のように、例えば、３０Ｋｍ四方の地図空間（図１の左側）の地理情報を構成する複数のレコード（例えば、地理情報を構成するレコードの図形形状種別である線的レコードや、面的レコード）を、複数の所定の大きさの空間領域に分配保存するとき、例えば、図１の右側に図示するように、１０Ｋｍ四方の範囲で分割して９個の空間領域に保存するとき、それらの空間領域を、広範囲の地理情報が分割されて保存されるタイルマップ（ファイル）（一般的呼称）と呼び、図１の右側に図示されているような、例えば、１０Ｋｍ四方の９個の空間領域を、それぞれ、タイル（一般的呼称）と呼んでいる。
【０００３】
このような「分配保存」においては、タイルの境界にまたがる線的レコード（道路や河川）や面的レコード（行政界や建物、湖）の処理が重要になる。
【０００４】
この処理における従来の手法を分析すると、下記の３種類に分類できる。
【０００５】
第一の手法が「分割方式」というものである。これは、タイルの境界で切断し、それぞれのタイルにその線的レコード、面的レコードを格納するものである。
【０００６】
第二の手法が「本籍方式」というものである。これは、始点を含むひとつのタイルにしか線的レコード、面的レコードを格納しないものである。
【０００７】
第三の手法が「複写方式」というものである。これは、跨っているタイルすべてに、それぞれ、同一の線的レコード、面的レコードを複写して格納するものである。
【０００８】
以下、前記の各手法を図解する。図２図示のように２つの空間領域を跨る道路があると仮定し、この空間領域に対応するタイルに、それぞれの方式で道路データ（線的レコード）を格納する場合を各手法・方式について説明する。
【０００９】
分割方式では、図３図示のように、タイルＡ、タイルＢにはそれぞれ分割された線的レコードが格納される。このため、道路を表す線的レコードを切断する処理が必要である。
【００１０】
本籍方式では、道路の始点が空間領域（タイル）Ａ（図２）にあるとすれば、図４図示のように、始点を含むタイルＡにのみ道路を表す線的レコードが格納される。
【００１１】
複写方式では、図５図示のように、道路を表す同じ線的レコードがタイルＡ、タイルＢにそれぞれ複写されて格納される。
【００１２】
次に、前記のように道路を表す線的レコードが格納された空間領域（タイル）からの地理情報を構成するレコードの取り出し（復元）について説明する。
【００１３】
これらのレコードを復元するとき（例えば、隣接するタイル４枚分の範囲を同時表示する等するとき）、タイルの境界をまたがる線的レコードの復元は、上記３方式ごとにそれぞれ処理することになる。
【００１４】
「分割方式」で格納されたタイルの場合、線的レコードをそのままコンピュータ画面に表示しても「つながって見える」ので問題ないが、レコードの個数を求める場合には実際より多くカウントされてしまう。ただし長さを求める場合はそれらを加算するだけでよい。
【００１５】
「本籍方式」で格納されたタイルでは、あるひとつのタイルを横断している線的レコード（始点終点が当該タイルの範囲外に存在する線的レコード）は、始点が存在するタイルにだけ保存されているので、そのタイルも同時に開かれていなければ表示されないことになる。例えば、図６図示のように、隣接する９枚のタイルを開いていても、図６中、点線で示すの線的レコードは始点がこの９枚のタイルの範囲外に存在するので表示されないことになる（欠損）。したがって、「本籍方式」は限定された長さのものにしか適用できない。
【００１６】
「複写方式」で格納されたタイルでは、「本籍方式」における前述した欠損は克服できるが、逆にレコードの重複が発生する。表示上は重なっていても気が付かないので、それを無視することもあり得るが、長さを求めたり、レコードの個数を求める場合には、この重複は容認できない。
【００１７】
以上のように、従来手法にはそれぞれに欠点と利点があり、地理情報を構成するレコードの利用目的に応じていずれかの手法を選択し、レコード格納時の処理や、レコード取り出し時の「重複」「欠損」などの欠点を解消するためのプログラムをおのおののケースについて作成しなければならなかった。つまり、地理情報を構成する複数のレコード（地理情報を構成するレコードの図形形状種別である線的レコードや、面的レコード）を複数の所定の大きさの空間領域（タイル）に分配保存するときに行った処理と逆の処理を、当該複数の所定の大きさの空間領域（タイル）に分配保存されている情報から分配保存される前の元の地理情報を復元するときに行う必要があった。
【特許文献１】特開２００４−１７７９５９
【発明の開示】
【発明が解決しようとする課題】
【００１８】
前述したように、レコードの格納方法により処理を切り分けるという従来の手法は、地理情報を「データベース化」できていないことを意味する。一定の問い合わせルールに従うだけで目的のデータ（レコード）を取り出して活用できる仕組みがプログラミング手法でいう「データのデータベース化」であるが、これができていなかったのである。
【００１９】
地理情報を「データベース化」するには、タイルの境界を跨ぐ線的レコード、面的レコードについて、切断も重複もされない形でそのまま取り出せるシステムを実現すればよい。それらの処理をデータベースシステム側がすべて引き受け、利用者側ではそれらの処理を不要とさせることである。これにより、利用者側（データ利用プログラム側）にとっては、タイル境界跨りの線的レコード、面的レコードがどのように処理されて格納されているか知る必要がなくなるばかりか、地理情報が複数の所定の大きさの空間領域（タイル）に分配保存されていることによる境界の存在も忘れることになる。
【００２０】
このような処理は文字や数値データだけを扱ってきた従来のデータベースシステムには求められてこなかったものであり、連続的で無限な地図空間を格納しなければならない地理情報の「マップデータベース」に不可欠な、そして本質的な機能である。
【００２１】
そこで、この発明は、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコードとが含まれる地理情報をデータベースとして管理する地理情報処理システムであって、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システム及び、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムで地理情報をデータベースとして管理するためのコンピュータプログラムにおいて、前記の地理情報を、複数の所定の大きさの空間領域（タイル）に分配保存するときも、取り出して復元するときも、各空間領域（タイル）の境界をまたがる線的レコードや、面的レコードを「切断も重複もさせない」地理情報処理システム及び地理情報処理プログラムを提案することを目的にしている。
【課題を解決するための手段】
【００２２】
この発明は、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコードとが含まれる地理情報をデータベースとして管理する地理情報処理システムであって、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システム及び、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムで地理情報をデータベースとして管理するためのコンピュータプログラムにおいて、前記空間領域に分配保存する地理情報の線的レコード、面的レコードが各空間領域に内包されるか否かを判定し、各空間領域に内包される場合には、線的レコード、面的レコードを一つの空間領域に対応するファイルに保存すると共に、ここから復元するようにし、前記空間領域に分配保存する地理情報の線的レコード、面的レコードが各空間領域に内包されない場合には、これを認識できるようにしつつ、当該複数の空間領域に跨る線的レコード、面的レコードを複写して、当該線的レコード、面的レコードが跨っている複数の空間領域に対応する複数のファイルにそれぞれ保存し、ここから復元するにあたっては、復元工程に送る線的レコード、面的レコードが既に復元工程に送られたものであるかどうかを判定し、未だに復元工程へ送られていない線的レコード、面的レコードのみを復元工程へ送り、既に復元工程に送られている線的レコード、面的レコードについては復元工程へ送られることがないようにするフィルター手段と、かかるフィルター手段の動作を可能にする処理をコンピュータに行わせることによって、前記課題を解決したのである。
【発明の効果】
【００２３】
本発明の地理情報処理システム及び地理情報処理プログラムによれば、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコードとが含まれる地理情報をデータベースとして管理する地理情報処理システムであって、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システム及び、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムで地理情報をデータベースとして管理するためのコンピュータプログラムにおいて、前記の地理情報を、複数の所定の大きさの空間領域（タイル）に分配保存するときも、取り出して復元するときも、各空間領域（タイル）の境界をまたがる線的レコードや、面的レコードを「切断も重複もさせない」ようにすることができる。
【００２４】
すなわち、本発明の地理情報処理システム及び地理情報処理プログラムによれば、複数の所定の大きさの空間領域（タイル）に分配保存されている地理情報から、分配保存される前の元の地理情報を復元する場合も、あるいはデータの個数や属性集計を行う場合も、前記の空間領域（タイル）の境界に跨るデータを一切考慮する必要がなくなる。
【００２５】
このように、地理情報を複数の所定の大きさの空間領域（タイル）に分配保存するときも、取り出して復元するときも、各空間領域（タイル）の境界をまたがる線的レコードや、面的レコードを「切断も重複もさせない」ようにする機能は、本発明の地理情報処理システム及び地理情報処理プログラムによって実行されるので、本発明の地理情報処理システムを利用して、複数の所定の大きさの空間領域（タイル）に分配保存されている地理情報から、分配保存される前の元の地理情報を復元する利用者は、空間領域（タイル）の境界を跨ぐ線的レコード、面的レコードを、切断も重複もされない形でそのまま取り出すことができ、利用者側で「空間領域（タイル）の境界を跨ぐ線的レコード、面的レコードを切断も重複もされない形でそのまま取り出す」ための特別の処理を行う必要はない。これにより、利用者側にとっては、空間領域（タイル）の境界を跨ぐ線的レコード、面的レコードがどのように処理されて本発明の地理情報処理システムに格納されているか知る必要がなくなるばかりか、地理情報が複数の所定の大きさの空間領域（タイル）に分配保存されていることによる境界の存在も忘れることが可能になる。
【発明を実施するための最良の形態】
【００２６】
本発明の地理報処理システム及び本発明の地理情報処理プログラムは、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコード（全頂点の座標値列からなる線的レコードと面的レコード）とが含まれる地理情報をデータベースとして管理する地理情報処理システム及び地理情報処理プログラムであって、地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用するものである。
【００２７】
例えば、図１図示のように、３０Ｋｍ四方の地図空間（図１の左側）の地理情報（線的レコード、面的レコード）を、図１の右側に図示するように、１０Ｋｍ四方の範囲で分割されている９個の空間領域（タイル）に分配保存し、また、図６図示のように、例えば、１０Ｋｍ四方の範囲で分割されている９個の空間領域（タイル）に分配保存されている地理情報（線的レコード、面的レコード）から分配保存される前の元の地理情報を復元するものである。
【００２８】
ここで、コンピュータからなる本発明の地理情報処理システムは、図１０にその概略構成を説明するように、本発明の地理情報処理プログラム（コンピュータプログラム）の指示の下に、以下の処理動作を行うレコード識別値設定手段、検索手段、判定手段、第一の情報保存手、第二の情報保存手段、空間識別値判定手段、第一のフィルター手段、レコード識別値格納状況判定手段、第二のフィルター手段、第三のフィルター手段を備えている。
【００２９】
前記のレコード識別値設定手段は、地理情報を構成する複数のレコードにおける各レコードを区別するためのレコード識別値をレコード識別フィールドに設定するコンピュータの処理動作部である。
【００３０】
また、前記の検索手段は、地理情報を構成する複数のレコードにおける線的レコード又は面的レコードが分配保存されるすべての空間領域（タイル）を前記の複数の所定の大きさの空間領域（タイル）の中から求めるコンピュータの処理動作部である。
【００３１】
この検索手段による処理動作は、例えば、次のように行われる。
【００３２】
まず、線的レコード又は面的レコード（これは、全頂点の座標値列からなる線的レコード又は面的レコードである）を完全内包する最小矩形範囲を求める。例えば、全頂点の座標値列からなる線的レコード又は面的レコードの最小Ｘ−Ｙ座標、最大Ｘ−Ｙ座標を求め、これから、全頂点の座標値列からなる線的レコード又は面的レコードを完全内包する最小矩形範囲を求める。図８図示の場合であれば、図中、斜線を引いてある矩形範囲が、全頂点の座標値列からなる線的レコード又は面的レコードを完全内包する最小矩形範囲ということになる。
【００３３】
次に、前記の検索手段は、この最小矩形範囲に含まれる全ての空間領域（タイル）を求める。図８図示の場合であれば、図中、斜線を引いてある３枚の空間領域（タイル）が、前記の最小矩形範囲に含まれる全ての空間領域（タイル）ということになる。
【００３４】
次いで、前記の検索手段は、求められた全ての空間領域（タイル）について、全頂点の座標値列からなる線的レコード又は面的レコードの座標値列を結んだライン（辺）と、空間領域（タイル）の境界線との交点を求める。
【００３５】
この結果、交点がある場合には、前記の線的レコード又は面的レコードは、当該境界線を挟んで隣接している空間領域（タイル）に跨っているものと認識される。
【００３６】
一方、交点がない場合には、前記の線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在しているかどうか、内外判定を行う。そして、前記の線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在している場合には、当該１つの空間領域（タイル）に前記の線的レコード又は面的レコードが完全に内包されているということになる。
【００３７】
なお、前述した、全頂点の座標値列からなる線的レコード又は面的レコードの最小Ｘ−Ｙ座標、最大Ｘ−Ｙ座標を求め、これから、全頂点の座標値列からなる線的レコード又は面的レコードを完全内包する最小矩形範囲を求める処理動作、この最小矩形範囲に含まれる全ての空間領域（タイル）を求める処理動作も同様にして行われるものである。この場合、内外判定を行って、線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在していないときには、当該線的レコード又は面的レコードは当該１つの空間領域（タイル）の外側に存在することになる。
【００３８】
なお、前記の判定手段は、前記の線的レコード又は面的レコードが、前記検索手段によって求めた各空間領域（タイル）に内包されるか否かを判定するコンピュータの処理動作部であり、この処理動作も、例えば、前述したようにして行われる。
【００３９】
次に、前記の第一の情報保存手段は、前記の線的レコード又は面的レコードが一つの空間領域に内包される場合、当該線的レコード又は面的レコードが一つの空間領域に内包されている状態にあることを示す第一の空間識別値を空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている前記一つの空間領域に対応するファイルに当該線的レコード又は面的レコードを保存するコンピュータの処理動作部である。
【００４０】
例えば、線的レコード又は面的レコードが一つの空間領域（タイル）に内包される場合に、当該線的レコード又は面的レコードに対して「重複フラグ」と呼ぶ論理値「偽」を空間識別フィールドに設定し、当該第一の空間識別値「偽」が設定された線的レコード又は面的レコードを、当該線的レコード又は面的レコードが内包されている一つの空間領域のファイルに保存する処理が行われる。
【００４１】
第二の情報保存手段は、前記線的レコード又は面的レコードが一つの空間領域に内包されない場合、当該線的レコード又は面的レコードが一つの空間領域に内包されていない状態にあることを示す第二の空間識別値を前記空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている複数の空間領域に対応する複数のファイルに当該線的レコード又は面的レコードをそれぞれ複写して保存するコンピュータの処理動作部である。
【００４２】
例えば、図８図示のように、線的レコードが一つの空間領域（タイル）に内包されない場合、すなわち、線的レコードが図８に斜線で示す３つの空間領域（タイル）に跨っており、線的レコード又は面的レコードが一つの空間領域（タイル）に内包されず複数の空間領域（タイル）に存在する場合、当該線的レコード又は面的レコードに対して「重複フラグ」と呼ぶ論理値「真」を空間識別フィールドに設定し、当該第二の空間識別値「真」が設定された線的レコード又は面的レコードを、当該線的レコード又は面的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存する処理が行われる。
【００４３】
次に、前記の空間識別値判定手段は、前記空間領域のファイルに保存されている情報から元の地理情報を復元するにあたって、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値（「偽」）であるか第二の空間識別値（「真」）であるかを判定するコンピュータの処理動作部である。
【００４４】
そして、第一のフィルター手段は、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の識別値（「偽」）である場合に限り、当該レコードを復元する工程に送るコンピュータの処理動作部である。
【００４５】
そこで、線的レコード又は面的レコードが一つの空間領域（タイル）に内包される場合には、当該線的レコード又は面的レコードが内包されている一つの空間領域（タイル）において、当該線的レコード又は面的レコードが復元される。
【００４６】
レコード識別値格納状況判定手段は、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第二の識別値である場合に、当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が既にレコード識別値格納部に格納されているか否かを判断するコンピュータの処理動作部である。
【００４７】
そして、第二のフィルター手段は、線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されていない場合に、当該レコード識別値を前記レコード識別値格納部に格納すると共に、当該レコードを復元する工程に送るコンピュータの処理動作部である。
【００４８】
一方、第三のフィルター手段は、線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部に格納されている場合に、当該レコードを復元する工程に送らない処理を行う、例えば、当該線的レコード又は面的レコードを破壊する処理を行うコンピュータの処理動作部である。
【００４９】
本発明の地理情報処理システムによれば、上述した処理動作部の機能により、複数の所定の大きさの空間領域（タイル）に分配保存される地理情報の線的レコード、面的レコードが各空間領域（タイル）に内包される場合であっても、内包されない場合であっても、各空間領域（タイル）の境界を跨る線的レコード、面的レコードの切断が生じることはなく、また、複数の所定の大きさの空間領域（タイル）に分配保存される地理情報の線的レコード、面的レコードが各空間領域（タイル）に内包されない場合には、当該複数の空間領域（タイル）に跨る線的レコード、面的レコードが複写されて当該線的レコード、面的レコードが跨っている複数の空間領域に対応する複数のファイルにそれぞれ保存されるにもかかわらず、各空間領域（タイル）の境界を跨る線的レコード、面的レコードの重複が生じることはない。
【００５０】
前記のレコード識別値格納部は、コンピュータからなる本発明の地図情報処理システムに備えられているデータ登録部（例えば、本明細書、図面においてこれを「ＩＤスタック」と呼ぶ）からなるものである。ＩＤスタックとしては、例えば、ハッシュ表を用いることができ、この場合、「レコード識別値をレコード識別値格納部（ＩＤスタック）に格納する」とは、ハッシュ表に登録するという処理になる。
【００５１】
前記の第二の情報保存手段が行う処理動作の結果、例えば、図８図示のように、線的レコードが一つの空間領域（タイル）に内包されない、すなわち、線的レコードが図８に斜線で示す３つの空間領域（タイル）に跨っている場合、当該線的レコードに対して「重複フラグ」と呼ぶ論理値「真」を空間識別フィールドに設定し、当該第二の空間識別値「真」が設定された線的レコードを、当該線的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存する処理が行われる。
【００５２】
そこで、図８に斜線で示す３つの空間領域（タイル）のファイルにそれぞれ保存（格納）されている線的レコードが復元されると、前述した従来の手法における「複写方式」の場合と同様に、レコードが重複し（３個復元されることになる）、長さを求めたり、レコードの個数を求める場合に問題が生じる。
【００５３】
しかし、本発明のシステムによれば、前述したように、線的レコードのレコード識別フィールドに設定されているレコード識別値がレコード識別値格納部（ＩＤスタック）に格納されていない場合、第二のフィルター手段が、当該レコード識別値をレコード識別値格納部（ＩＤスタック）に格納すると共に、当該レコードを復元する工程に送り、一方、線的レコードのレコード識別フィールドに設定されているレコード識別値がレコード識別値格納部（ＩＤスタック）に格納されている場合、第三のフィルター手段が、当該レコードを復元する工程に送らない処理を行う。そこで、レコードが重複することがなくなる。
【００５４】
これによって、複数の所定の大きさの空間領域に分配保存されている地理情報から、分配保存される前の元の地理情報を復元する場合も、あるいはレコードの個数や属性集計を行う場合も、前記の空間領域（タイル）の境界に跨るレコードを一切考慮する必要がなくなるのである。
【００５５】
次に、本発明が提案する地図情報処理プログラムは、前述した本発明の地理情報処理システムをコンピュータで実行させるもので、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコード（全頂点の座標値列からなる線的レコードと面的レコード）とが含まれる地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用する地理情報処理システムで地理情報をデータベースとして管理するために、コンピュータを、前述したレコード識別値設定手段、地理情報を構成する複数のレコードにおける線的レコード又は面的レコードが分配保存されるすべての空間領域を前記の複数の所定の大きさの空間領域の中から求める検索手段、前記線的レコード又は面的レコードが、前記検索手段によって求めた各空間領域に内包されるか否かを判定する判定手段、第一の情報保存手段、第二の情報保存手段、空間識別値判定手段、第一のフィルター手段、レコード識別値格納状況判定手段、第二のフィルター手段、第三のフィルター手段として機能させるものである。
【００５６】
以下、添付図面を参照して、本発明の好ましい実施例を説明する。
【実施例】
【００５７】
本発明の地理報処理システム及び本発明の地理情報処理プログラムは、複数のレコードから構成され、当該複数のレコードには、レコードの図形形状種別である線的レコードと面的レコード（全頂点の座標値列からなる線的レコードと面的レコード）とが含まれる地理情報をデータベースとして管理するものて、前記の地理情報を構成する複数のレコードのそれぞれを複数の所定の大きさの空間領域に分配保存する方式を採用するものである。
【００５８】
例えば、図１図示のように、３０Ｋｍ四方の地図空間（図１の左側）の地理情報（線的レコード、面的レコード）を、図１の右側に図示するように、１０Ｋｍ四方の範囲で分割されている９個の空間領域（タイル）に分配保存し、また、図６図示のように、例えば、１０Ｋｍ四方の範囲で分割されている９個の空間領域（タイル）に分配保存されている地理情報（線的レコード、面的レコード）から分配保存される前の元の地理情報を復元するものである。
【００５９】
コンピュータからなる本発明の地理情報処理システムは、図１０にそのシステム構成の概略を例示しているように、本発明の地理情報処理プログラム（コンピュータプログラム）の指令の下に、以下の処理動作を行うレコード識別値設定手段、検索手段、判定手段、第一の情報保存手、第二の情報保存手段、空間識別値判定手段、第一のフィルター手段、レコード識別値格納状況判定手段、第二のフィルター手段、第三のフィルター手段を備えている。
【００６０】
図１１を参照して、本発明の地理情報処理システムによって、地理情報が複数の所定の大きさの空間領域に分配保存される工程を説明する。
【００６１】
まず、本発明の地理情報処理システムにおいては、レコード識別値設定手段により、地理情報を構成する複数のレコード（全頂点の座標値列からなる線的レコード、面的レコード）における各レコードを区別するためのレコード識別値がレコード識別フィールドに設定されている。
【００６２】
この下で、以下のように処理動作が行われる。
【００６３】
まず、検索手段によって、地理情報を構成する複数のレコードにおける線的レコード又は面的レコードが分配保存されるすべての空間領域（タイル）が、前記の複数の所定の大きさの空間領域（タイル）の中から求められる（ステップ１１０１）。
【００６４】
この検索手段による処理動作は、例えば、図１２に図示したように、次のように行われる。
【００６５】
まず、線的レコード又は面的レコード（これは、全頂点の座標値列からなる線的レコード又は面的レコードである）を完全内包する最小矩形範囲が求められる（ステップ１２０１）。
【００６６】
例えば、全頂点の座標値列からなる線的レコード又は面的レコードの最小Ｘ−Ｙ座標、最大Ｘ−Ｙ座標を求め、これから、全頂点の座標値列からなる線的レコード又は面的レコードを完全内包する最小矩形範囲を求める。
【００６７】
図８図示の場合であれば、実線で示されている線的レコード（例えば、道路に対応している線的レコード）が内包されている、図８中、斜線を引いてある矩形範囲が、全頂点の座標値列からなる線的レコードを完全内包する最小矩形範囲ということになる。
【００６８】
なお、図８に実線で示されている線的レコード（例えば、道路に対応している線的レコード）の、図８の４枚のタイル（空間領域）における右上のタイル（空間領域）の部分に記載されている矢印は、線的レコードの終端側の頂点を示すものであり、データとしての図形ではない。全頂点の座標値列からなる線的レコード、面的レコードは線分列からなるものである。
【００６９】
次に、この最小矩形範囲に含まれる全ての空間領域（タイル）を求める（ステップ１２０２）。図８図示の場合であれば、図中、斜線を引いてある３枚の空間領域（タイル）が、前記の最小矩形範囲に含まれる全ての空間領域（タイル）ということになる。
【００７０】
次いで、求められた全ての空間領域（タイル）について、全頂点の座標値列からなる線的レコード又は面的レコードの座標値列を結んだライン（辺）と、空間領域（タイル）の境界線との交点を求める（ステップ１２０３）。
【００７１】
この結果、交点がある場合には、前記の線的レコード又は面的レコードは、当該境界線を挟んで隣接している空間領域（タイル）に跨っているものと認識される。
【００７２】
一方、交点がない場合には、前記の線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在しているかどうか、内外判定を行う（ステップ１２０４）。
【００７３】
そして、前記の線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在している場合には、当該１つの空間領域（タイル）に前記の線的レコード又は面的レコードが完全に内包されているということになる。
【００７４】
一方、内外判定を行って、線的レコード又は面的レコードの始点座標が１つの空間領域（タイル）の中に存在していないときには、当該線的レコード又は面的レコードは当該１つの空間領域（タイル）の外側に存在することになる。
【００７５】
なお、前述した、全頂点の座標値列からなる線的レコード又は面的レコードの最小Ｘ−Ｙ座標、最大Ｘ−Ｙ座標を求め、これから、全頂点の座標値列からなる線的レコード又は面的レコードを完全内包する最小矩形範囲を求める処理動作、この最小矩形範囲に含まれる全ての空間領域（タイル）を求める処理動作も、図１２のステップ１２０３以降の工程に従って行うことができる。
【００７６】
次いで、前記の判定手段により、前記の線的レコード又は面的レコードが、前記検索手段によって求めた各空間領域（タイル）に内包されるか否かが判定される（ステップ１１０２）。この工程も、図１２のステップ１２０３以降の工程に従って行うことができる。
【００７７】
次に、前記の線的レコード又は面的レコードが一つの空間領域に内包される場合、第一の情報保存手段によって、当該線的レコード又は面的レコードが一つの空間領域に内包されている状態にあることを示す第一の空間識別値を空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている前記一つの空間領域に対応するファイルに当該線的レコード又は面的レコードを保存する（ステップ１１０３）。
【００７８】
例えば、線的レコード又は面的レコードが一つの空間領域（タイル）に内包される場合に、当該線的レコード又は面的レコードに対して「重複フラグ」と呼ぶ論理値「偽」を第一の情報保存手段によって空間識別フィールドに設定し、当該第一の空間識別値「偽」が設定された線的レコード又は面的レコードを、当該線的レコード又は面的レコードが内包されている一つの空間領域のファイルに保存する。
【００７９】
一方、前記線的レコード又は面的レコードが一つの空間領域に内包されない場合、第二の情報保存手段によって、当該線的レコード又は面的レコードが一つの空間領域に内包されていない状態にあることを示す第二の空間識別値を前記空間識別フィールドに設定して、当該線的レコード又は面的レコードが内包されている複数の空間領域に対応する複数のファイルに当該線的レコード又は面的レコードをそれぞれ複写して保存する（ステップ１１０４）。
【００８０】
例えば、図８図示のように、図中、実線で表されている線的レコードが一つの空間領域（タイル）に内包されない場合、すなわち、線的レコードが図８に斜線で示す３つの空間領域（タイル）に跨っており、線的レコード又は面的レコードが一つの空間領域（タイル）に内包されず複数の空間領域（タイル）に存在する場合、第二の情報保存手段によって、当該線的レコード又は面的レコードに対して「重複フラグ」と呼ぶ論理値「真」を空間識別フィールドに設定し、当該第二の空間識別値「真」が設定された線的レコード又は面的レコードを、当該線的レコード又は面的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存する。
【００８１】
次に、図１３、図９を参照して、本発明の地理情報処理システムによって、複数の所定の大きさの空間領域に分配保存された地理情報が復元される工程を説明する。
【００８２】
空間領域のファイルに保存されている情報から元の地理情報を復元するにあたって、まず、空間識別値判定手段によって、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の空間識別値（「偽」）であるか第二の空間識別値（「真」）であるかが判定される（ステップ１３０１）。
【００８３】
そして、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第一の識別値（「偽」）である場合に限り、第一のフィルター手段によって、当該レコードが復元する工程に送られる（ステップ１３０２）。
【００８４】
すなわち、線的レコード又は面的レコードが一つの空間領域（タイル）に内包される場合には、１レコードがレコード復元工程に送られ、当該線的レコード又は面的レコードが内包されている一つの空間領域（タイル）において、当該線的レコード又は面的レコードが復元される。
【００８５】
一方、空間領域のファイルに保存されている線的レコード又は面的レコードの前記空間識別フィールドに設定されている空間識別値が第二の識別値（「真」）である場合には、レコード識別値格納状況判定手段によって、当該線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が既にレコード識別値格納部（ＩＤスタック）に格納されているか否かが判定される（ステップ１３０３）。
【００８６】
そして、線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部（ＩＤスタック）に格納されていない場合、第二のフィルター手段によって、当該レコード識別値を前記レコード識別値格納部（ＩＤスタック）に格納すると共に、当該レコードが復元する工程に送られる（ステップ１３０４）。
【００８７】
一方、線的レコード又は面的レコードの前記レコード識別フィールドに設定されているレコード識別値が前記レコード識別値格納部（ＩＤスタック）に格納されている場合に、第三のフィルター手段によって、当該レコードを復元する工程に送らない処理、例えば、当該線的レコード又は面的レコードを破壊する処理が行われる（ステップ１３０５）。
【００８８】
本発明の地理情報処理システムによれば、前記の第二の情報保存手段が行う処理動作の結果、例えば、図８図示のように、図８中、実線で示す線的レコード（例えば、道路に対応している線的レコード）が一つの空間領域（タイル）に内包されない、すなわち、線的レコードが図８に斜線で示す３つの空間領域（タイル）に跨っている場合、当該線的レコードに対して「重複フラグ」と呼ぶ論理値「真」を空間識別フィールドに設定し、当該第二の空間識別値「真」が設定された線的レコードを、当該線的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存する処理が行われる（図７の右側における「分配複写」の工程である）。
【００８９】
そこで、図８に斜線で示す３つの空間領域（タイル）のファイルにそれぞれ保存（格納）されている線的レコードが復元されると、前述した従来の手法における「複写方式」の場合と同様に、レコードが重複し（３個復元されることになる）、長さを求めたり、レコードの個数を求める場合に問題が生じる。
【００９０】
しかし、本発明のシステムによれば、前述したように、レコード識別値格納状況判定手段によって、前述したＩＤチェックが行われ（図９の中央に図示）、線的レコードのレコード識別フィールドに設定されているレコード識別値がレコード識別値格納部（ＩＤスタック）に格納されていない場合、第二のフィルター手段が、当該レコード識別値をレコード識別値格納部（ＩＤスタック）に格納すると共に、当該レコードを復元する工程に送る。そして、一方、線的レコードのレコード識別フィールドに設定されているレコード識別値がレコード識別値格納部（ＩＤスタック）に格納されている場合、第三のフィルター手段が、当該レコードを復元する工程に送らない処理を行う。これが、図９の中央に図示されている「重複排除フィルタ」と名付けた機能である。
【００９１】
そこで、前述した図７の右側における「分配複写」と表示している機能によって、図８図示のように、図８中、実線で示す線的レコードが一つの空間領域（タイル）に内包されない場合、当該線的レコードが、図９の右側に示しているように、当該線的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存されているにもかかわらず、前述した重複排除、重複排除フィルタの機能によって、分配複写されていた中の１レコードのみが、図９の左側に示すように復元工程に送られ、レコードが重複することがなくなる。
【００９２】
これによって、図７図示のように本発明の地理情報処理システム（図７中に「マップデータベース」と表示）にアクセスして、従来公知のデータ利用プログラムＡ（データの図形表示用のコンピュータプログラム）や、従来公知のデータ利用プログラムＢ（データの属性集計用のコンピュータプログラム）を利用して、ユーザ（図７中に「クライアント」と表示）が、複数の所定の大きさの空間領域に分配保存されている地理情報から、分配保存される前の元の地理情報を復元する場合も、あるいはレコードの個数や属性集計を行う場合も、前記の空間領域（タイル）の境界に跨るレコードを一切考慮する必要がなくなる。
【００９３】
このように、本発明によれば、タイルの境界を跨ぐ線的レコード、面的レコードについて、切断も重複もされない形でそのまま取り出せるシステムを実現し、地理情報を「データベース化」することができる。そして、それらの処理を、図７の右側に示すように、データベースシステム側がすべて引き受け、図７の左側に示す利用者側ではそれらの処理を不要にすることができる。これにより、利用者側（データ利用プログラム側）にとっては、タイル境界跨りの線的レコード、面的レコードがどのように処理されて格納されているか知る必要がなくなるばかりか、地理情報が複数の所定の大きさの空間領域（タイル）に分配保存されていることによる境界の存在も忘れることになるのである。
【００９４】
なお、前記のレコード識別値格納部（ＩＤスタック）に格納された情報は、例えば、本発明のシステムを利用する者が命令した場合にのみクリアされるようにすることができる。
【００９５】
以上説明した本発明の地理情報処理システム、地理情報処理プログラムによれば、例えば、図８図示のように、線的レコードが一つの空間領域（タイル）に内包されない場合、すなわち、線的レコードが図８に斜線で示す３つの空間領域（タイル）に跨っている場合、前記の第二の情報保存手段が行う処理動作の結果、当該線的レコードに対して「重複フラグ」と呼ぶ論理値「真」を空間識別フィールドに設定し、当該第二の空間識別値「真」が設定された線的レコードを、当該線的レコードが内包されている複数の空間領域（図８に斜線で示す３つの空間領域（タイル））の複数のファイルにそれぞれ複写して保存する処理が行われる（いわゆる「分配複写」である）ので、データベースに格納されるデータ量が実際よりも増える。
【００９６】
これはデータ破壊を回避するためデータを２重に格納するディスクシステム（ＲＡＩＤシステム）と比較すれば、その量は小さなものであり、特に、問題となるものではない。
【００９７】
しかし、可能な限り重複データを回避する場合には以下の手法を採用することができる。
【００９８】
この手法は、線的レコード、面的レコードの種類による空間的広がりを考慮して、タイルマップのサイズ（幅と高さ）を決定するものである。
【００９９】
例えば、都道府県界（面的レコード）を格納するタイルは日本列島全体を含むことができるタイルサイズにすることができる。また市町村界を格納するタイルは都県レベルのサイズ（例えば５０Ｋｍ）にすることができる。更に、下水道の埋設管（線的レコード）を格納するタイルは台帳図面サイズ（４００ｍ×３００ｍ）のサイズが適しているといえる。
【０１００】
即ち、重複データがなるべく少ないようにタイルサイズを決める（タイルサイズが大きくなる方向）考え方と、ひとつのタイルに格納されるデータ量がなるべく小さくなるようにタイルサイズを決める（タイルサイズが小さくなる方向）考え方の両方を勘案して決定するものである。
【０１０１】
上記のようなタイルサイズの最適化により本発明の地理情報処理システムは効率の良いものとなり、クライアントに届けられるデータがほぼ等しいものに平均化され、一定の応答時間が保証されることとなる。
【図面の簡単な説明】
【０１０２】
【図１】広範囲な地図空間の地理情報を複数の所定の大きさの空間領域に分配保存する状態を説明する図。
【図２】隣接する２つの空間領域に跨る線的レコード（道路）を説明する図。
【図３】図２図示の線的レコードを従来の「分割方式」によって２つの空間領域に分配保存する場合を説明する図。
【図４】図２図示の線的レコードを従来の「本籍方式」によって２つの空間領域に分配保存する場合を説明する図。
【図５】図２図示の線的レコードを従来の「複写方式」によって２つの空間領域に分配保存する場合を説明する図。
【図６】所定の大きさの複数の空間領域に従来の「本籍方式」で分配保存されている線的レコードを復元する際に「欠損」が生じる状態を説明する図。
【図７】本発明の地理情報処理システムを用いて、利用者が地理情報を利用する状況を説明する概念図。
【図８】複数の空間領域（タイル）を跨ぐ線的レコードを本発明の地理情報処理システムを用いて複数の空間領域（タイル）のファイルに分配保存する工程を説明する図。
【図９】複数の空間領域（タイル）を跨ぐ線的レコードが複数の空間領域（タイル）のファイルに分配保存されているときに、本発明の地理情報処理システムによって、この複数の空間領域（タイル）のファイルに分配保存されている情報から元の線的レコードが復元される工程を説明する図。
【図１０】本発明の地理情報処理システムのシステム構成の概略を説明する図。
【図１１】本発明の地理情報処理システムによって地理情報が複数の所定の大きさの空間領域に分配保存される工程の一例を説明するフロー図。
【図１２】本発明の地理情報処理システムにおける検索手段によって地理情報に含まれている線的レコード又は面的レコードが存在する全てのタイルが複数のタイルの中から求められる工程の一例を説明するフロー図。
【図１３】本発明の地理情報処理システムによって複数の所定の大きさの空間領域に分配保存されている地理情報が復元される工程の一例を説明するフロー図。
【図１】
0004616088.tif 000002
【図２】
0004616088.tif 000003
【図３】
0004616088.tif 000004
【図４】
0004616088.tif 000005
【図５】
0004616088.tif 000006
【図６】
0004616088.tif 000007
【図７】
0004616088.tif 000008
【図８】
0004616088.tif 000009
【図９】
0004616088.tif 000010
【図１０】
0004616088.tif 000011
【図１１】
0004616088.tif 000012
【図１２】
0004616088.tif 000013
【図１３】
0004616088.tif 000014