(57)【要約】【課題】インデクスの小容量化と空間情報の高速な検索とを実現する。【解決手段】インデクス作成サーバ１２は、多角形の各頂点の緯度と経度を含む空間情報がメタデータとして埋め込まれた地図データを対象として、多角形を検索するためのインデクスを作成する。このために、インデクス作成部１２１は、多角形の空間情報に含まれる各頂点の緯度と経度をジオハッシュに変換して、変換された各頂点のジオハッシュの上位文字列側から、各頂点のジオハッシュに共通する最大共通文字列を抽出し、その最大共通文字列を含むインデクスを作成する。検索サーバ１３の検索部１３１は、検索条件の点の緯度と経度をジオハッシュに変換し、インデクス作成部１２１によって作成されたインデクスに含まれる最大共通文字列と、索条件の点のジオハッシュとに基づいてインデクスを選択することによって、選択されたインデクスに対応する多角形を含むリーフを特定する。【選択図】図１
2015069302.tif 000002
【特許請求の範囲】
【請求項１】
多角形の各頂点の緯度と経度を含む空間情報がメタデータとして埋め込まれた地図データを対象として、当該多角形を検索するためのインデクスを作成するインデクス作成装置であって、
前記多角形の空間情報に含まれる各頂点の緯度と経度をジオハッシュに変換して、当該変換された各頂点のジオハッシュの上位文字列側から、当該各頂点のジオハッシュに共通する最大の長さの文字列である最大共通文字列を抽出し、当該最大共通文字列を含むインデクスを作成するインデクス作成手段を備えることを特徴とするインデクス作成装置。
【請求項２】
前記インデクス作成手段が、前記多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点の各位置を前記インデクスに含めることを特徴とする請求項１に記載のインデクス作成装置。
【請求項３】
検索条件の点の緯度と経度をジオハッシュに変換する検索条件変換手段と、
請求項１に記載のインデクス作成装置によって作成されたインデクスに含まれる最大共通文字列と、前記検索条件変換手段によって変換された検索条件の点のジオハッシュとに基づいてインデクスを選択することによって、当該選択されたインデクスに対応する多角形を含むリーフを特定するリーフ特定手段と、
を備えることを特徴とする空間情報検索装置。
【請求項４】
検索条件の点の緯度と経度をジオハッシュに変換する検索条件変換手段と、
請求項２に記載のインデクス作成装置によって作成されたインデクスに含まれる最大共通文字列と、前記検索条件変換手段によって変換された検索条件の点のジオハッシュとに基づいてインデクスを選択することによって、当該選択されたインデクスに対応する多角形を含むリーフを特定するリーフ特定手段と、
前記リーフ特定手段によって特定されたリーフに含まれる多角形の中から、当該多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点を四辺にそれぞれ含む矩形の領域の中に前記検索条件の点が存在する多角形を選択する多角形選択手段と、
を備えることを特徴とする空間情報検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空間情報を検索するためのインデクスを作成するインデクス作成装置およびそのインデクスを用いて空間情報を検索する空間情報検索装置に関する。
【背景技術】
【０００２】
従来より、経緯度を用いて空間情報を検索する技術が知られている。
例えば、特許文献１は、多角形を成す空間情報が埋め込まれた地図データから、その多角形を形成する各頂点の緯度と経度を抽出し、空間情報の検索に利用する方法を開示する。特許文献１に記載の方法では、インデクス（索引）作成時に、多角形の各頂点の空間情報から、その多角形が外接する外接矩形を算出し、リーフとの対応づけを行う。これにより、検索時に判定対象を絞ることが可能となるため、高速に検索することが可能となる。ここで述べるリーフとは、検索エンジンやデータベースのインデクスにおいて、一般的に用いられるツリーデータ構造におけるリーフを指す。
【０００３】
補足すると、この方法では、インデクス作成時に、算出した外接矩形に対応するリーフを、その外接矩形の情報からアルゴリズムによって生成する。算出した外接矩形に対応するリーフが既に存在する場合は、その外接矩形に内接する多角形をそのリーフの子ノードとする。そして、検索時には、検索条件として与えられたある点を含むリーフを選択し、そのリーフが持つノードのみを検索対象とする。
このように経緯度を用いる場合は、頂点をｎ個有する多角形の各頂点の緯度と経度の情報を抽出し、２ｎ個の数値により外接矩形を算出する必要がある。また、その外接矩形に対応するリーフをアルゴリズムによって生成する必要がある。
【０００４】
一方、空間情報の形式には、ジオハッシュという空間情報を文字列で表現する技術がある。ジオハッシュは、緯度と経度の組を一つの文字列で表現する。ジオハッシュは、階層構造を持ち、３２分木インデクス上の位置を示す。例えば、空文字なら全世界、１文字なら世界全体を均等な３２区域に分割したいずれかの領域を表す。文字列が長いほどジオハッシュが表す矩形の範囲は狭小化し、精度が高くなる。逆に、末尾文字列を削ると、ジオハッシュが表す矩形の範囲は広大化し、精度が低くなる。このように、ジオハッシュは末尾文字列を調整するだけで、任意の精度で範囲を表現することが可能である。
例えば、特許文献２は、緯度と経度の組をジオハッシュに変換し、ジオハッシュによって表された位置情報により所定のサイズの矩形領域に存在しているユーザ端末を検索する情報処理装置を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６０５９１号公報
【特許文献２】特開２０１３−４５３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、経緯度を用いる空間情報検索方法では、インデクス作成時に緯度と経度の２つの数値より数学的演算を用いて外接矩形を算出する。また、その外接矩形に対応するリーフをアルゴリズムによって生成する。
しかし、経緯度を用いた方法は、１つの頂点が緯度と経度の２つの数値を有するため、やや複雑な処理を行う必要があり、空間検索において最適な方法とは言い難い。
【０００７】
本発明の目的は、予めジオハッシュを求めておくことによって、位置を示すデータを数値２つの組から文字列１つに簡略化し、インデクスの小容量化と空間情報の高速な検索とを実現することができるインデクス作成装置および空間情報検索装置を提供することである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明のインデクス作成装置は、
多角形の各頂点の緯度と経度を含む空間情報がメタデータとして埋め込まれた地図データを対象として、当該多角形を検索するためのインデクスを作成するインデクス作成装置であって、
前記多角形の空間情報に含まれる各頂点の緯度と経度をジオハッシュに変換して、当該変換された各頂点のジオハッシュの上位文字列側から、当該各頂点のジオハッシュに共通する最大の長さの文字列である最大共通文字列を抽出し、当該最大共通文字列を含むインデクスを作成するインデクス作成手段を備えることを特徴とする。
【０００９】
好ましくは、本発明のインデクス作成装置は、
前記インデクス作成手段が、前記多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点の各位置を前記インデクスに含めることを特徴とする。
【００１０】
また、本発明の空間情報検索装置は、
検索条件の点の緯度と経度をジオハッシュに変換する検索条件変換手段と、
上述したインデクス作成装置によって作成されたインデクスに含まれる最大共通文字列と、前記検索条件変換手段によって変換された検索条件の点のジオハッシュとに基づいてインデクスを選択することによって、当該選択されたインデクスに対応する多角形を含むリーフを特定するリーフ特定手段と、
を備えることを特徴とする。
【００１１】
また、本発明の空間情報検索装置は、
検索条件の点の緯度と経度をジオハッシュに変換する検索条件変換手段と、
上述したインデクス作成装置によって作成されたインデクスに含まれる最大共通文字列と、前記検索条件変換手段によって変換された検索条件の点のジオハッシュとに基づいてインデクスを選択することによって、当該選択されたインデクスに対応する多角形を含むリーフを特定するリーフ特定手段と、
前記リーフ特定手段によって特定されたリーフに含まれる多角形の中から、当該多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点を四辺にそれぞれ含む矩形の領域の中に前記検索条件の点が存在する多角形を選択する多角形選択手段と、
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、予めジオハッシュを求めておくことによって、位置を示すデータを数値２つの組から文字列１つに簡略化し、インデクスの小容量化と空間情報の高速な検索とを実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る空間情報検索システムの構成の一例を示す図である。
【図２】地図データを含むファイルの一例を示す図である。
【図３】観客席に付与されている空間情報の一例を示す図である。
【図４】観客席の各頂点の緯度と経度から変換されたジオハッシュの一例を示す図である。
【図５】観客席に対応する四角形（多角形）のインデクスの構成の一例を示す図である。
【図６】観客席を含むリーフの一例を示す図である。
【図７】インデクスデータの構成の一例を示す図である。
【図８】インデクス作成処理の流れの一例を示す図である。
【図９】検索処理の流れの一例を示す図である。
【図１０】多角形の最東西南北端の位置と検索点の位置とに基づいてインデクスを絞り込む処理の流れの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態に係るインデクス作成装置および空間情報検索装置について図面を参照しながら説明する。
【００１５】
図１は、本発明の実施形態に係る空間情報検索システム１０の構成の一例を示す。
空間情報検索システム１０は、ファイルサーバ１１と、インデクスサーバ１２と、検索サーバ１３とを有する。これらの各サーバは、ネットワーク１４に接続されており、相互に通信することができる。
なお、インデクスサーバ１２は本発明のインデクス作成装置の一例であり、検索サーバ１３は本発明の空間情報検索装置の一例である。
【００１６】
ファイルサーバ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される主メモリと、ハードディスク等で構成される記憶装置１１３とを有する。記憶装置１１３には、対象ファイル群１１３１とファイル読出・書込プログラムが格納されている。
ファイルサーバ１１のＣＰＵが記憶装置１１３から主メモリにファイル読出・書込プログラムを読み込んで実行することにより、ファイル書込部１１１と、ファイル読出部１１２との各部の機能が実現される。
対象ファイル群１１３１は、地図データを含むファイルの集合である。
ファイル書込部１１１は、図示しないクライアント端末からファイルを受信し、そのファイルを記憶装置１１３に書き込んで対象ファイル群１１３１に付け加える。
ファイル読出部１１２は、インデクスサーバ１２による要求に応答して対象ファイル群１１３の中から要求されたファイルを取得し、そのファイルをインデクスサーバ１２に送信する。
【００１７】
インデクスサーバ１２は、ＣＰＵと、ＲＡＭ等で構成される主メモリと、ハードディスク等で構成される記憶装置１２４とを有する。記憶装置１２４には、インデクスデータ１２４１とインデクス作成プログラムが格納されている。
インデクスサーバ１２のＣＰＵが記憶装置１２４から主メモリにインデクス作成プログラムを読み込んで実行することにより、インデクス作成部１２１と、インデクスデータ書込部１２２と、インデクスデータ読出部１２３との各部の機能が実現される。
インデクス作成部１２１は、ファイルサーバ１１にファイルを要求し、取得したファイル中の地図データに含まれる多角形のインデクスを作成する。インデクス作成部１２１は本発明のインデクス作成手段の一例である。
インデクスデータ書込部１２２は、インデクス作成部１２１によって作成されたインデクスにファイルの場所を示すファイルＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）を付加し、記憶装置１２４にインデクスデータ１２４１として書き込む。
インデクスデータ読出部１２３は、検索サーバ１３の要求に応答して記憶装置１２４からインデクスデータ１２４１を読み出し、検索サーバ１３に送信する。
【００１８】
検索サーバ１３は、ＣＰＵと、ＲＡＭ等で構成される主メモリと、ハードディスク等で構成される記憶装置１３２とを有する。記憶装置１３２には、検索プログラムが格納されている。
検索サーバ１３のＣＰＵが記憶装置１３２から主メモリに検索プログラムを読み込んで実行することにより、検索部１３１の機能が実現される。
検索部１３１は、図示しないクライアント端末から検索要求を受信すると、インデクスサーバ１２にインデクスデータ１２４１を要求する。そして、検索部１３１は、取得したインデクスデータ１２４１に基づいて空間情報を検索し、クライアント端末に検索結果を返す。検索部１３１は、本発明の検索条件変換手段とリーフ特定手段とリーフ選択手段の一例である。
なお、上述したシステム構成は一例に過ぎず、異なるシステム構成とすることも可能である。例えば、図１には、ファイルサーバ１１とインデクスサーバ１２と検索サーバ１３とが別々のコンピュータで実現される例を示したが、これらは同一のコンピュータで実現されてもよい。また、これらの各サーバに加えて、クライアント端末も同一のコンピュータで実現されてもよい。さらに、検索サーバ１３とクライアント端末が同一のコンピュータで実現され、ファイルサーバ１１とインデクスサーバ１２とは異なるコンピュータで実現される構成でもよい。
【００１９】
図２は、地図データ２３を含むファイル２０の一例を示す。
ファイル２０は、例えば、ＰＤＦ形式のファイルであり、その名称はｉｎｆｏ１．ｐｄｆである。ファイル２０は、開催する日時２１や場所２２等の文字で表現されるテキストデータと、観客席２４や打上場所２５のような図形で表現される情報を含む地図データ２３とで構成される。
地図データ２３に含まれる観客席２４や打上場所２５のような図形には空間情報がメタデータとして予め付与されている。なお、地図データ２３が空間情報の検索対象であり、日時情報２１や場所情報２２等のテキストデータは空間情報の検索対象ではない。
ここで、頂点Ａ、頂点Ｂ、頂点Ｃ、および頂点Ｄは、観客席２４を成す四角形（多角形）の各頂点である。また、点Ｅは後述する検索条件の点（以下、検索点という。）である。
【００２０】
図３は、観客席２４に付与されている空間情報３１の一例を示す。
空間情報３１は、名称（観客席）と、図２の観客席２４の図形の各頂点の緯度と経度を示す数値の配列とを保持している。頂点Ａの経緯度形式で表現した空間情報は、座標(35.670964,139.745896)であり、35.670964は頂点Ａの緯度、139.745896は頂点Ａの経度である。なお、観客席２４は四角形であるため、図３で示す配列の要素は４つであるが、本発明の多角形には点や直線、５角形以上の多角形が含まれる。多角形には１以上であれば頂点がいくつ存在してもかまわない。多角形を形成する頂点の数分だけ、配列の要素数が存在する。
検索時にある検索点を検索条件としたとき、この要素数が３つ以上の場合は、各要素に格納された頂点で形成される多角形の範囲内に検索点が含まれるときに、検索サーバ１３の検索部１３１はその多角形の範囲に検索点が内包されていると判定する。要素が２つの場合は、各要素に格納された頂点２点をつなぐ線分上に検索点が存在するときに、検索部１３１はその線分の範囲に検索点が内包されていると判定する。要素が１つの場合は、要素に格納された頂点と検索点が一致するときに、検索部１３１はその頂点の範囲に検索点が内包されていると判定する。
【００２１】
図４は、観客席２４の各頂点の緯度と経度から変換されたジオハッシュの一例を示す。図形データに含まれるある多角形のインデクスを作成するとき、インデクスサーバ１２のインデクス作成部１２１は、まず、その多角形の各頂点における緯度と経度をジオハッシュに変換する。緯度と経度からジオハッシュへの変換方法は公知であり、その説明は省略する。
【００２２】
次に、インデクス作成部１２１は、その多角形についてインデクス５０を作成する。図５は、観客席２４に対応する四角形（多角形）のインデクス５０の構成の一例を示す。
インデクス５０は、多角形の索引である。インデクス５０は、各頂点の位置５１と、最大共通文字列５２と、最東端の位置５３と、最西端の位置５４と、最南端の位置５５と、最北端の位置５６とを含む。
各頂点の位置５１は、多角形の各頂点の位置をジオハッシュで示す。
最大共通文字列５２は、多角形の全ての頂点のジオハッシュの上位文字列側から抽出された最大の長さの共通の文字列である。最大共通文字列５２は、図６に示すリーフ６１の位置と大きさを特定する。
最東端の位置５３は、最も東に位置する頂点（観客席２４では頂点Ｂ）のジオハッシュである。
最西端の位置５４は、最も西に位置する頂点（観客席２４では頂点Ｄ）のジオハッシュである。
最南端の位置５５は、最も南に位置する頂点（観客席２４では頂点Ｃ）のジオハッシュである。
最北端の位置５６は、最も北に位置する頂点（観客席２４では頂点Ａ）のジオハッシュである。
なお、図５では最東端の位置のジオハッシュを５３、最西端の位置のジオハッシュを５４、最南端の位置のジオハッシュを５５、最北端の位置のジオハッシュを５６とそれぞれのカラムに格納しているが、最東西南北端と各頂点のジオハッシュの紐付けさえ可能であれば、形式はこれに限らない。
【００２３】
図６に示すように、リーフ６１は、多角形の全ての頂点を包含する矩形の領域である。矩形６２は、多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点を四辺にそれぞれ含む矩形の領域である。
インデクス作成部１２１は、各頂点のジオハッシュの末尾文字列を１文字ずつ削って最大共通文字列５２を求める。例えば、観客席２４の頂点Ａ、頂点Ｂ、頂点Ｃ、および頂点Ｄのジオハッシュは、それぞれ頂点Ａ（Xn76gvxy7mss）、頂点Ｂ（xn76uj90jkpu）、頂点Ｃ（Xn76uj25hbrb）、頂点Ｄ（xn76gvqx56pb）であるため、最大共通文字列はxn76となる。1文字削ると1階層広い範囲を表すジオハッシュの特徴から、最大共通文字列は多角形のすべての頂点を含むリーフ６１を示す。つまり、図６の例では、最大共通文字列xn76は、観客席２４の頂点Ａ、頂点Ｂ、頂点Ｃ、頂点Ｄすべてを包含するリーフ６１を示す。
【００２４】
インデクス作成部１２１が多角形のインデクス５０を作成すると、インデクスデータ書込部１２２は、そのインデクス５０を含むインデクスデータ１２４１を記憶装置１２４に書き込む。
インデクスデータ１２４１は、図７に示すように、ファイルＵＲＩ７１と、インデクス７２とで構成される。
ファイルＵＲＩ７１は、インデクス７２に対応する多角形の空間情報を含むファイルの存在する場所を示す。
インデクス７２には、インデクス作成部１２１によって作成されたインデクス５０が格納される。
インデクスデータ書込部１２２は、インデクス作成部１２１が１つのファイル中の図形データに含まれる全ての多角形のインデクスを作成し終えたときに、全ての多角形のインデクスを含むインデクスデータ１２４１を記憶装置１２４に書き込んでもよいし、インデクス作成部１２１が個々の多角形のインデクス５０を作成するごとに、そのインデクス５０を記憶装置１２４のインデクスデータ１２４１に付加してもよい。
【００２５】
図８は、インデクス作成処理の流れの一例を示す。
インデクスサーバ１２がインデクス作成処理を開始するとき、インデクス作成部１２１はインデクスを作成する対象となるファイルの送信をファイルサーバ１１に要求する。ファイルサーバ１１のファイル読出部１１２は、インデクスサーバ１２による要求に応答して対象ファイル群１１３の中から要求されたファイルを取得し、そのファイルをインデクスサーバ１２に送信する。
インデクス作成部１２１は、ファイルを受信すると、そのファイルに含まれるメタデータを抽出する。そして、インデクス作成部１２１は、抽出されたメタデータに多角形の空間情報が存在しているか否かを判定する（Ｓ１０１）。多角形の空間情報が存在していた場合（Ｓ１０１：ＹＥＳ）、インデクス作成部１２１は、空間情報からこの多角形の頂点の座標を抽出する（Ｓ１０２）。次に、インデクス作成部１２１は、抽出した座標の形式がジオハッシュ形式であるか否かを判定する（Ｓ１０３）。ジオハッシュ形式でない場合（Ｓ１０３：ＮＯ）、インデクス作成部１２１は、経緯度形式であるか否かを判定する（Ｓ１０８）。経緯度形式であった場合（Ｓ１０８：ＹＥＳ）、インデクス作成部１２１は、その多角形の各頂点の経緯度をそれぞれジオハッシュに変換し（Ｓ１０９）、ステップＳ１０４に進む。
ステップＳ１０８で経緯度形式でないと判定された場合（Ｓ１０８：ＮＯ）、インデクス作成部１２１は、ステップＳ１０１に戻り、受信したファイルのメタデータに次の多角形の空間情報が存在しているか否かを判定する。
【００２６】
ステップＳ１０３で抽出した座標の形式がジオハッシュ形式であると判定された場合（Ｓ１０３：ＹＥＳ）、インデクス作成部１２１は、各頂点の最大共通文字列を算出する（Ｓ１０４）。そして、インデクス作成部１２１は、多角形の各頂点のジオハッシュ値と、最大共通文字列と、各頂点の中で最東端、最西端、最南端、最北端に存在する頂点のジオハッシュ値を含むインデクス５０を作成する（Ｓ１０５）。
インデクス作成部１２１によってインデクス５０が作成されると、インデクスデータ書込み部１２２は、そのインデクス５０にファイルＵＲＩを付加し、記憶装置１２４にインデクスデータ１２４１として格納する（Ｓ１０６）。
そして、ステップＳ１０１に戻り、インデクス作成部１２１は、受信したファイルのメタデータに次の多角形の空間情報が存在しているか否かを判定する。ステップＳ１０１で次の多角形の空間情報が存在していないと判定された場合（Ｓ１０１：Ｎｏ）、インデクス作成部１２１は、インデクス作成処理を終了する。
【００２７】
図９は、検索処理の流れの一例を示す。
ユーザは、クライアント端末を用いて、検索対象のファイルと、緯度と経度で示される検索条件の点の位置とを指定する。指定する検索対象のファイルは１つであってもよいし、複数であってもよい。更には、検索対象のファイルとして、ファイルサーバ１１の記憶装置１１３に格納されている対象ファイル群１１３１に含まれる全ファイルを指定することもできる。クライアント端末は、検索対象のファイルを指定する情報と、検索条件の点の位置とを含む検索要求を検索サーバ１２に送信する。
検索サーバが、クライアント端末から、検索要求を受信すると、検索部１３１は、検索要求に含まれる情報で指定されるファイルのインデクスデータをインデクスサーバ１２に要求する。インデクスサーバ１２のインデクスデータ読出部１２３は、検索サーバ１３の要求に応答して記憶装置１２４からインデクスデータ１２４１を読み出し、検索サーバ１３に送信する。
【００２８】
検索サーバ１３がインデクスデータを受信すると、検索部１３１は、検索条件に含まれる検索点の緯度と経度をジオハッシュに変換する（Ｓ２０１）。次に、検索部１３１は、受信したインデクスデータに含まれる各最大共通文字列５２と、検索点のジオハッシュとに基づいてインデクスを選択することによって、当該選択されたインデクスに対応する多角形を含むリーフを特定する（Ｓ２０２）。
例えば、図２の点Ｅの緯度と経度(35.670354,139.746008)を含む検索要求をクライアント端末から受信したとする。このとき、検索部１３１は、ステップＳ２０１において、この緯度と経度をジオハッシュに変換し、xn76gvxfy5bjを取得する。そして、検索部１３１は、ステップＳ２０２において、文字列の長さｎのジオハッシュを、末尾から１文字ずつ削ったｎ個のジオハッシュに分解する。例えば、点Ｅのジオハッシュ値の場合は、x、xn、xn7、xn76、xn76g、xn76gv、xn76gvx、xn76gvxf、xn76gvxfy、xn76gvxfy5、xn76gvxfy5b、xn76gvxfy5bjに分解する。検索部１３１は、これらのジオハッシュ値を最大共通文字列５２と文字列比較し、合致するリーフ６１を求める。この場合、ジオハッシュ値xn76が図２の観客席２４の最大共通文字列５２と一致するため、検索部１３１は、観客席２４を含むリーフ６１を特定する。
【００２９】
次に、検索部１３１は、ステップＳ２０２で特定された各リーフ６１に含まれる多角形の中から、その多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点を四辺にそれぞれ含む矩形の領域の中に検索点が存在する多角形を選択する（Ｓ２０３）。ステップＳ２０３の処理の詳細は、図１０を用いて説明する。
まず、検索部１３１は、ステップＳ２０２の処理で１つ以上のリーフ６１が特定されたか否かを判定する（Ｓ３０１）。１つもリーフ６１が特定されなかった場合（Ｓ３０１：ＮＯ）、検索部１３１は検索処理を終了する。
一方、１つ以上のリーフ６１が特定された場合（Ｓ３０１：ＹＥＳ）、検索部１３１はその中の１つのリーフ６１を選択し（Ｓ３０２）、更に、そのリーフ６１に含まれる多角形のインデクス５０を１つ選択する（Ｓ３０３）。そして、検索部１３１は、検索点が多角形の最東端と最西端の間に位置するか判定する（Ｓ３０４）。具体的には、検索部１３１は、選択されたインデクス５０に含まれる最東端の位置５３のジオハッシュ値と最西端の位置５４のジオハッシュ値の間に、検索点のジオハッシュ値があるか否かを判定する。ステップＳ３０４の判定が成り立つ場合（Ｓ３０４：ＹＥＳ）、検索部１３１は、次に、検索点が多角形の最南端と最北端の間に位置するか判定する（Ｓ３０５）。具体的には、検索部１３１は、選択されたインデクス５０に含まれる最南端の位置５５のジオハッシュ値と最北端の位置５６のジオハッシュ値の間に、検索点のジオハッシュ値があるか否かを判定する。ステップＳ３０５の判定も成り立つ場合（Ｓ３０５：ＹＥＳ）、検索部１３１は、選択されているインデクス５０と、そのインデクス５０に対応する多角形の空間情報を含むファイルの存在する場所を示すファイルＵＲＩ７１とを検索サーバ１３の主メモリ内の所定の記憶領域に一時退避する（Ｓ３０６）。
次に、検索部１３１は、ステップＳ３０２で選択したリーフ６１に含まれる全ての多角形のインデクス５０について判定が終了したか否かを判定する（Ｓ３０７）。検索部１３１は、全ての多角形のインデクス５０についての判定が終了している場合（Ｓ３０７：ＹＥＳ）ステップＳ３０８に進む。一方、判定が終了していないリーフ６１が残っている場合（Ｓ３０７：ＮＯ）、検索部１３１は、ステップＳ３０３に戻ってステップＳ３０２の処理で選択されたリーフ６１に含まれる他の多角形のインデクス５０を選択する。
【００３０】
そして、検索部１３１は、ステップＳ２０２の処理で特定された全てのリーフ６１についての判定が終了したか否かを判定する（Ｓ３０８）。検索部１３１は、全てのリーフ６１についての判定が終了している場合（Ｓ３０８：ＹＥＳ）、検索処理を終了する。一方、判定が終了していないリーフ６１が残っている場合（Ｓ３０８：ＮＯ）、検索部１３１は、ステップＳ３０２に戻ってステップＳ２０２の処理で特定された他のリーフ６１を選択する。
ステップＳ３０３およびＳ３０４の判定が成り立たなかった場合（Ｓ３０３：ＮＯ、Ｓ３０４：ＮＯ）も、検索部１３１は、ステップＳ３０７に進み、ステップＳ３０２で選択したリーフ６１に含まれる全ての多角形のインデクス５０について判定が終了したか否かを判定する。
ステップＳ３０５で退避したインデクス５０とファイルＵＲＩ７１とは、図９のステップＳ２０３の処理の結果であり、次のステップＳ２０４に渡される。
【００３１】
ステップＳ２０３に続いて、検索部１３１は、内包判定を行い、検索点が各多角形の範囲内に存在する多角形に絞り込む（Ｓ２０４）。内包判定の方法については、一般的であるため詳しく述べないが、例えば水平線分の交差回数を用いて判定する方法が広く知られている。
検索部１３１は、ステップＳ２０４で絞り込まれた多角形のインデクス５０と、その多角形の空間情報を含むファイルの存在する場所を示すファイルＵＲＩ７１とを検索結果としてクライアント端末に送信する（Ｓ２０５）。なお、最初にユーザによって指定された検索対象のファイルが１つのみである場合には、検索部１３１は、ステップＳ２０５において、ステップＳ２０４で絞り込まれたインデクス５０のみを検索結果としてクライアント端末に送信してもよい。
【００３２】
なお、上述した実施形態では、インデクス５０の最東端の位置５３と最西端の位置５４と最南端の位置５５と最北端の位置５６にはジオハッシュが含まれるとしたが、インデクス５０の最東端の位置５３には最も東に位置する頂点の緯度を格納し、最西端の位置５４には最も西に位置する頂点の緯度を格納し、最南端の位置５５には最も南に位置する頂点の経度を格納し、最北端の位置５６には最も北に位置する頂点の経度を格納してもよい。ただし、この場合、検索部１３１は、ステップＳ３０４において、選択されたインデクス５０に含まれる最東端の位置５３の緯度と最西端の位置５４の緯度の間に、検索点の緯度があるか否かを判定し、ステップＳ３０５において、選択されたインデクス５０に含まれる最南端の位置５５の経度と最北端の位置５６の経度の間に、検索点の経度があるか否かを判定することとなる。
【００３３】
以上説明したように、本発明によれば、予めジオハッシュを求めておくことによって、処理で用いるデータを数値２つの組から文字列１つに簡略化することができる。
また、ジオハッシュを用いた空間検索では、ジオハッシュ自身が地球上のある範囲の矩形を示す文字列であることから、従来技術のインデクスの作成および検索時に外接矩形を算出していた部分とリーフの生成にアルゴリズムを用いていた部分の計算処理を、部分文字列の比較処理のみに置き換えることができる。
この結果、高速なインデクス作成および空間情報の検索が可能となる。
【符号の説明】
【００３４】
１０…空間情報検索システム、１１…ファイルサーバ、１１１…ファイル書込部、１１２…ファイル読出部、１１３…記憶装置、１１３１…対象ファイル群、１２…インデクスサーバ、１２１…インデクス作成部、１２２…インデクスデータ書込部、１２３…インデクスデータ読出部、１２４…記憶装置、１２４１…インデクスデータ、１３…検索サーバ、１４…ネットワーク、２０…ファイル、２３…地図データ、３１…空間情報、５０…インデクス、６１…リーフ、６２…多角形の最東端の頂点、最西端の頂点、最南端の頂点、および最北端の頂点を四辺にそれぞれ含む矩形の領域
【図１】
2015069302.tif 000003
【図２】
2015069302.tif 000004
【図３】
2015069302.tif 000005
【図４】
2015069302.tif 000006
【図５】
2015069302.tif 000007
【図６】
2015069302.tif 000008
【図７】
2015069302.tif 000009
【図８】
2015069302.tif 000010
【図９】
2015069302.tif 000011
【図１０】
2015069302.tif 000012