(57)【特許請求の範囲】
【請求項１】
多角形の各頂点の緯度及び経度を含む多角形情報の登録要求を受け付け、
緯度及び経度の範囲を含む２次元空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の大きさについて、前記多角形の最小外接矩形を含みうる最小の大きさを特定し、
特定された大きさの単位矩形の中で、前記最小外接矩形と一部又は全部が重なる単位矩形を特定し、
特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成し、
生成された前記文字列をキーとし、前記多角形情報を前記キーに対応付けて記憶部に記憶する処理をコンピュータが実行する情報管理方法。
【請求項２】
前記文字列を生成する処理は、前記単位矩形を特定する処理において複数の単位矩形が特定された場合には、特定された前記単位矩形ごとに、前記文字列を生成する請求項１記載の情報管理方法。
【請求項３】
第二の多角形の各頂点の緯度及び経度が指定された検索要求を受け付け、
前記２次元空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の中で、前記第二の多角形の最小外接矩形に一致する又は該最小外接矩形を含む最小の単位矩形を特定し、
特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成し
生成された前記文字列に前方一致するキーを前記記憶部より検索する処理をコンピュータが実行する請求項１又は２記載の情報管理方法。
【請求項４】
第二の多角形の各頂点の緯度及び経度が指定された検索要求を受け付け、
前記２次元空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の中で、前記第二の多角形の最小外接矩形に一致する又は該最小外接矩形を含む最小の単位矩形を特定し、
特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成し
生成された前記文字列又は前記文字列の末尾から２文字ずつ削除した文字列に完全一致するキーを前記記憶部より検索する処理をコンピュータが実行する請求項１又は２記載の情報管理方法。
【請求項５】
多角形の各頂点の緯度及び経度を含む多角形情報の登録要求を受け付ける受付部と、
緯度及び経度の範囲を含む２次元空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の大きさについて、前記多角形の最小外接矩形を含みうる最小の大きさを特定する第１の特定部と、
特定された大きさの単位矩形の中で、前記最小外接矩形と一部又は全部が重なる単位矩形を特定する第２の特定部と、
特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成する生成部と、
生成された前記文字列をキーとし、前記多角形情報を前記キーに対応付けて記憶する記憶部とを有する情報管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報管理方法及び情報管理装置に関する。
【背景技術】
【０００２】
本願発明者は、移動体や施設等の位置情報として緯度及び経度を収集及び管理し、位置情報に関する高速な検索サービスを提供することを検討していた。検索サービスの内容の一例として、或る範囲（例えば、施設）に含まれる移動体群の検索等が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−４１１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
移動体や施設等の位置情報の管理手段として、ＲＤＢ（Relational Database）を用いることが考えられる。例えば、移動体や施設等の属性として、移動体又は施設等のＩＤ及び位置情報等がＲＤＢに登録されることが考えられる。
【０００５】
しかしながら、この場合、例えば、或る範囲に含まれる移動体群を検索することを考えると、当該範囲と全てのレコードの位置情報とを比較する必要がある。上記したように、管理対象となる移動体は、車両に搭載される車載器のみならず、人が携帯する端末も含まれる。したがって、レコード数は数千万台に及び、又は数千万台を超える可能性がある。そうすると、全てのレコードの位置情報と或る範囲とを比較していたのは、実用性の或る検索性能を得るのは困難であると考えられる。
【０００６】
検索性能の向上のために、位置情報に関して、インデックスを作成することが考えられる。しかし、この場合、移動体の位置情報は刻々と変化するため、インデックスの再編成が頻発してしまい、当該再編成による処理負荷が、無視できない程度に大きくなる可能性が考えられる。
【０００７】
また、移動体は、厳密には点ではなく、広がりを有する。例えば、台風や雨雲等を移動体としてその位置情報を管理する場合、位置とともにその範囲の管理が重要となる。そうすると、或る範囲に含まれる移動体や、或る範囲と重なる移動体の検索のためには、当該範囲と移動体の範囲との包含関係等を演算する必要があり、検索性能は更に劣化する可能性がある。
【０００８】
そこで、１側面では、上記の点に鑑みてなされたものであって、実用的な検索性能を確保しつつ位置情報を管理することのできる情報管理方法及び情報管理装置の提供を目的とする。
【課題を解決するための手段】
【０００９】
一つの案では、情報管理方法は、多角形の各頂点の緯度及び経度を含む多角形情報の登録要求を受け付け、緯度及び経度の範囲を含む２次元空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の中で、前記多角形の最小外接矩形に一致する又は該最小外接矩形を含む最小の単位矩形を特定し、特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成し、生成された前記文字列をキーとし、前記多角形情報を前記キーに対応付けて記憶部に記憶する処理をコンピュータが実行する。
【発明の効果】
【００１０】
一態様によれば、実用的な検索性能を確保しつつ位置情報を管理することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における情報管理システムの構成例を示す図である。
【図２】本発明の実施の形態における情報管理装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における情報管理装置の機能構成例を示す図である。
【図４】位置キーの生成処理の処理手順の一例を説明するためのフローチャートである。
【図５】移動体情報の登録処理の処理手順の一例を説明するためのフローチャートである。
【図６】移動体情報記憶部の構成例を示す図である。
【図７】多角形に対する位置キーの生成処理の処理手順の一例を説明するための図である。
【図８】ＭＢＲの例を示す図である。
【図９】最小単位矩形を求めるための処理を説明するためのＭＢＲの第一の例を示す図である。
【図１０】一つの多角形に対して複数の位置キーが生成される例を説明するための図である。
【図１１】移動体情報の検索処理の処理手順の一例を説明するためのフローチャートである。
【図１２】検索範囲が含む移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【図１３】検索キーとの前方一致の意義を説明するための図である。
【図１４】検索範囲が含む移動体の検索処理を説明するための図である。
【図１５】検索範囲が含まれる移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【図１６】検索範囲が含まれる移動体の検索処理を説明するための図である。
【図１７】検索範囲と重なる移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【図１８】４分木による位置キーの生成方法の一例を説明するための図である。
【図１９】１次元空間を採用した場合の例を示す図である。
【図２０】３次元空間を採用した場合の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報管理システムの構成例を示す図である。同図の情報管理システム１において、移動体端末２０ａ、２０ｂ、及び２０ｃ等の複数の移動体端末２０と情報管理装置１０とは、例えば、移動体通信網等を介して通信可能とされている。
【００１３】
移動体端末２０は、管理対象とされる移動体の位置を把握するために用いられる。したがって、移動体端末２０は、車載器、携帯電話、スマートフォン、又はタブレット型端末等、移動体通信網を利用した通信機能及びＧＰＳ（Global Positioning System）機能を有し、移動可能な端末であるのが好適である。移動体とは、移動体端末２０が設置された車両、や移動体端末２０を携帯する人等、移動体端末２０を移動させる主体である。但し、移動体端末２０自体が移動体として把握されてもよい。また、台風、雨雲、雷雲、前線等、それ自体に位置を計測するための機器は設置されなくても、その位置を外部から観測又は計測可能なものが移動体として把握されてもよい。
【００１４】
情報管理装置１０は、各移動体や、非図示の施設又はエリアに関する位置情報（緯度及び経度）等を管理するコンピュータである。複数のコンピュータが情報管理装置１０を構成してもよい。情報管理装置１０が管理する情報は、各移動体端末２０を用いて検索可能である。又は、当該情報は、ＰＣ（Personal Computer）等、固定端末から検索可能であってもよい。なお、エリアは、行政区画のように、予め定まっている範囲でもよいし、任意に定義される範囲でもよい。
【００１５】
図２は、本発明の実施の形態における情報管理装置のハードウェア構成例を示す図である。図２の情報管理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１６】
情報管理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報管理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１８】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１９】
図３は、本発明の実施の形態における情報管理装置の機能構成例を示す図である。同図において、情報管理装置１０は、サービス部１１及び基盤部１２を有する。
【００２０】
基盤部１２は、情報管理装置１０における情報管理機能において基盤的又は基本的な機能をサービス部１１に提供する。したがって、基本的に、基盤部１２のクライアントは、サービス部１１である。サービス部１１は、基盤部１２が提供する機能を利用して、応用的な機能又はサービスを移動体端末２０等に提供する。したがって、基本的に、サービス部１１のクライアントは、移動体端末２０等である。なお、基盤部１２の機能は、基盤部１２が備えるＡＰＩ（Application Program Interface）を介して利用することができる。
【００２１】
基盤部１２は、移動体情報受信部１２１、登録要求受付部１２２、ＭＢＲ算出部１２３、位置キー対象矩形特定部１２４、位置キー生成部１２５、登録部１２６、検索要求受付部１２７、及び検索部１２８等を含む。これら各部は、情報管理装置１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理により実現される。基盤部１２は、また、移動体情報記憶部１３１、施設情報記憶部１３２、及びエリア情報記憶部１３３等を利用する。これら各記憶部は、補助記憶装置１０２又は情報管理装置１０とネットワークを介して接続される記憶装置等を用いて実現可能である。
【００２２】
移動体情報受信部１２１は、移動体の位置情報及び属性情報等を逐次的に受信する。以下、移動体の位置情報及び属性情報等を含む情報を「移動体情報」という。本実施の形態において、移動体の位置情報は、移動体の形状を表現する多角形の各頂点の緯度及び経度によって示される。以下、多角形の各頂点の緯度及び経度の集合を、「ポリゴン情報」という。したがって、ポリゴン情報は、移動体の位置と共に範囲を示す情報であるといえる。なお、ポリゴン情報に含まれる各緯度及び経度は、例えば、多角形を形成する順番に配列されていてもよい。または、多角形を形成するための順序情報が、各緯度及び経度に付与されていてもよい。すなわち、緯度及び経度の集合に基づいて、どのように多角形を形成すべきかを識別可能な情報が、ポリゴン情報に含まれていればよい。
【００２３】
移動体情報は、移動体端末２０ごとに、適当なタイミングで受信される。例えば、移動体情報は、一定周期ごと、又は移動体の位置が所定量変化するたびに受信される。移動体情報は、移動体通信網を介して各移動体端末２０から直接的に受信されてもよいし、移動体情報を管理している他のコンピュータシステムより取得又は受信されてもよい。後者の場合、他のコンピュータシステムは、一種類に限定されなくてもよい。他のコンピュータシステムの一例として、テレマティクスサービスを提供するコンピュータシステムが挙げられる。
【００２４】
なお、移動体情報が取得されるタイミングは、移動体端末２０ごとに異なっていてもよい。すなわち、全ての移動体端末２０に関して、同じ日時における移動体情報が受信されなくてもよい。
【００２５】
登録要求受付部１２２は、施設の位置情報及び属性情報やエリアの位置情報及び属性情報の登録要求をサービス部１１より受け付ける。施設の位置情報及び属性情報を、以下「施設情報」という。エリアの位置情報及び属性情報を、以下「エリア情報」という。
【００２６】
すなわち、登録要求受付部１２２は、基盤部１２が提供するＡＰＩの一部を構成する。但し、登録要求受付部１２２が、能動的に、施設情報やエリア情報等を他のコンピュータシステムより取得してもよい。なお、施設やエリアの位置情報についても、施設又はエリアの形状を表現する多角形の各頂点の緯度及び経度の集合であるポリゴン情報によって示される。
【００２７】
ＭＢＲ算出部１２３は、受信された移動体情報、又は登録要求に係る施設情報若しくはエリア情報等に含まれているポリゴン情報が示す多角形に対する最小外接矩形を求める。以下、最小外接矩形を、「ＭＢＲ」という。ＭＢＲは、Minimum Bouding Rectangleの略である。
【００２８】
位置キー対象矩形特定部１２４は、緯度及び経度の精度ごとに、当該精度の緯線及び経線のメッシュ、格子、又は交差によって形成される単位矩形の中で、位置キーの生成対象となる単位矩形を特定する。以下、位置キーの生成対象となる単位矩形を、「位置キー対象矩形」という。例えば、緯度及び経度の精度ごとに形成される単位矩形の中で、多角形のＭＢＲに一致する又は該ＭＢＲを含む最小の単位矩形が有る場合、当該最小の単位矩形は、位置キー対象矩形である。換言すれば、当該単位矩形の範囲を示す位置キーが生成される。以下、斯かる最小の単位矩形を、「最小単位矩形」という。例えば、１０００分の１度の精度の緯線及び経線によって形成される矩形は、１０００分の１度幅の単位矩形である。１００分の１度の精度の緯線及び経線によって形成される矩形は、１００分の１度幅の単位矩形である。例えば、対象とする多角形のＭＢＲが、１００００分の１度幅の単位矩形に一致する場合、又は当該単位矩形に含まれる場合であって、１０００００分の１度幅の単位矩形には含まれない場合、１００００分の１度幅の単位矩形が、当該多角形の最小単位矩形となる。なお、後述されるように、位置キー対象矩形は、必ずしも、最小単位矩形であるとは限らない。
【００２９】
位置キー生成部１２５は、移動体情報受信部１２１によって受信された移動体情報や、登録要求受付部１２２によって受け付けられた施設情報又はエリア情報に関するキーを生成する。キーとは、ＫＶＳ（Key-Value Store）におけるキーである。すなわち、本実施の形態では、ＫＶＳを用いて、移動体情報、施設情報、及びエリア情報が管理される。本実施の形態では、移動体、施設、又はエリアに対して求められた最小単位矩形に基づいてキーが生成される。当該キーを、「位置キー」と呼ぶ。
【００３０】
登録部１２６は、位置キー生成部１２５によって生成された位置キーに対応付けて、移動体情報、施設情報、又はエリア情報を、移動体情報記憶部１３１、施設情報記憶部１３２、又はエリア情報記憶部１３３に登録する。
【００３１】
移動体情報記憶部１３１は、位置キーに対応付けて移動体情報を記憶するＫＶＳ型のデータベースである。施設情報記憶部１３２は、位置キーに対応付けて施設情報を記憶するＫＶＳ型のデータベースである。エリア情報記憶部１３３は、位置キーに対応付けてエリア情報を記憶するＫＶＳ型のデータベースである。
【００３２】
検索要求受付部１２７は、移動体情報、施設情報、又はエリア情報の検索要求をサービス部１１より受け付ける。検索部１２８は、検索要求に基づいて位置キー生成部１２５等によって生成される位置キーを用いて、移動体情報、施設情報、又はエリア情報の検索を行う。
【００３３】
以下、情報管理装置１０が実行する処理手順について説明する。まず、位置キーの生成処理について説明する。
【００３４】
図４は、位置キーの生成処理の処理手順の一例を説明するためのフローチャートである。当該処理手順は、移動体情報等の登録時や検索時における上位の処理手順から呼び出されるものであるが、説明の便宜上、上位の処理手順よりも先に説明する。
【００３５】
ステップＳ３０１において、位置キー生成部１２５は、処理対象の緯度及び経度のそれぞれを、数値から文字列に変換する。したがって、緯度を示す文字列（以下、「緯度文字列」という。）と、経度を示す文字列（以下、「経度文字列」という。）とが生成される。ここでは、処理対象の緯度及び経度は、（３５．５６７８，１３９．１２３４）であるとする。したがって、緯度文字列は、「３５．５６７８」であり、経度文字列は、「１３９．１２３４」である。なお、緯度の範囲は、＋９０度（北緯）〜−９０度（南緯）であるとする。すなわち、南緯は、マイナス（−）で表現されることとする。また、経度の範囲は、＋１８０度（東経）〜−１８０度（西経）であるとする。すなわち、西経は、マイナス（−）で表現されることとする。なお、北緯及び東経は、プラス（＋）で表現されるが、数値である北緯及び東経には、「＋」は明示的には付加されていなくてもよい。また、緯度および経度の、どの角度範囲を「＋」とし、どの角度範囲をマイナス（−）とするかは、上記例に限るものではない。
【００３６】
続いて、位置キー生成部１２５は、緯度文字列及び経度文字列を所定の形式に変換する（Ｓ３０２）。まず、整数部分が３桁となるように、整数部分が１桁または２桁の場合には文字「０（ゼロ）」が先頭に挿入される。したがって、緯度文字列は「０３５．５６７８」となる。経度文字列は、この例では整数部分は当初から３桁であるため、「１３９．１２３４」のままである。また、元の数値としての緯度及び経度に基づいて、緯度文字列及び経度文字列の先頭に「＋」又は「−」が付加される。したがって、緯度文字列は「＋０３５．５６７８」となり、経度文字列は、「＋１３９．１２３４」となる。また、小数点を示す文字（「．」）が除去される。したがって、緯度文字列は「＋０３５５６７８」となる。経度文字列は、「＋１３９１２３４」となる。更に、小数点以下について、短い方には「０」が追加される。例えば、一方が、変換前の経度文字列が「３５．５６７」であり、変換前の緯度文字列は、「１３９．１２３４」である場合、「３５．５６７」の後に「０」が追加される。その結果、経度文字列は、「＋０３５５６７０」となる。
【００３７】
以上で所定の形式への変換は完了する。
【００３８】
続いて、位置キー生成部１２５は、経度文字列の最上位桁から順に１つの文字を取得し、当該文字を作業用の文字列変数（以下、「作業用変数」という。）の先頭に追加する（Ｓ３０３）。したがって、最初にステップＳ３０４が実行されるときは、「＋１３９１２３４」より「＋」が取得され、作業用変数に追加される。
【００３９】
続いて、位置キー生成部１２５は、緯度文字列の最上位桁から順に１つの文字を取得し、当該文字を作業用変数の先頭に追加する（Ｓ３０４）。したがって、最初にステップＳ３０３が実行されるときは、「＋０３５５６７８」より「＋」が取得され、作業用変数に追加される。なお、ステップＳ３０４における作業用変数は、ステップＳ３０３における作業用変数と同一のものである。したがって、最初にステップＳ３０３及びＳ３０４が終了した時点において、作業用変数の内容は、「＋＋」となる。なお、ステップＳ３０３とステップＳ３０４とは実行される順序を問わない。
【００４０】
ステップＳ３０３及びＳ３０４は、緯度文字列及び経度文字列の全ての桁（全ての文字）が処理されるまで繰り返し実行される（Ｓ３０５）。その結果、緯度文字列及び経度文字列のそれぞれの最上位桁から順に同じ桁の文字が１桁ずつ交互に配列された一つの文字列が作業用変数に格納される。上記の例では、「＋＋１０３３９５１５２６３７４８」という文字列が作業用変数に格納される。当該文字列が、位置キーとしての文字列である。したがって、位置キー生成部１２５は、作業用変数に格納された値、すなわち位置キーを返却する（Ｓ３０６）。
【００４１】
なお、本実施の形態において、位置キーは、当該位置キーに係る緯度及び経度の精度に応じた単位を一辺とする矩形範囲を示す情報としても扱われる。緯度及び経度の精度に応じた単位を一辺とする矩形範囲とは、例えば、（３５．５６７８，１３９．１２３４）に関しては、１００００分の１を一辺とする矩形範囲をいう。したがって、位置キーは、厳密には、範囲を示す情報を含むキーであるといえる。位置キーがこのように生成される意義については後述される。
【００４２】
続いて、移動体情報の登録処理の処理手順について説明する。図５は、移動体情報の登録処理の処理手順の一例を説明するためのフローチャートである。
【００４３】
ステップＳ１０１において、移動体情報受信部１２１は、移動体情報の登録要求を受信する。移動体情報には、例えば、移動体の識別情報及びポリゴン情報等が含まれる。移動体の識別情報を、以下「移動体ＩＤ」という。一つの移動体に関して、複数のポリゴン情報が移動体情報に含まれていてもよい。すなわち、一つの移動体の形状が、複数の多角形によって表現されてもよい。移動体に関するその他の属性情報が、移動体情報に含まれていてもよい。
【００４４】
続いて、ＭＢＲ算出部１２３、位置キー対象矩形特定部１２４、及び位置キー生成部１２５等は、移動体の形状を表現する多角形に対する位置キーの生成処理を実行する（Ｓ１０２）。なお、複数の多角形によって表現される移動体については、多角形ごとにステップＳ１０２が実行される。また、後述より明らかなように、一つの多角形に対して複数の位置キーが生成される場合がある。
【００４５】
続いて、登録部１２６は、生成された位置キーごとに、移動体情報に含まれている移動体ＩＤ及びポリゴン情報等を値（Ｖａｌｕｅ）として対応付けて、移動体情報記憶部１３１に登録する（Ｓ１０３）。
【００４６】
図６は、移動体情報記憶部の構成例を示す図である。同図に示されるように、移動体情報記憶部１３１は、キーに対応付けて値を記憶する。キーには、移動体の形状を表現する多角形に対して生成された位置キーが記憶される。値は、一以上の行を含む。各行は、一つの移動体に対応し、ｉｄ、データ、及び登録日時の三つの項目（列）を含む。ｉｄには、移動体ＩＤが記憶される。データには、ポリゴン情報及びその他の属性情報等が記憶される。登録日時は、行が登録された日時である。なお、一つの位置キーに対して、複数の行（複数の移動体）が対応付けられうる。同時期又は異なる時期に、同じ緯度及び経度に対して複数の移動体が位置しうるからである。また、後述より明らかなように、異なる場所に位置する移動体同士に関して、同一の位置キーが生成される場合が有るからである。これは、位置キーが、移動体の多角形のＭＢＲを含む単位矩形ごとに生成されることに起因する。
【００４７】
ステップＳ１０２において複数の位置キーが生成された場合は、移動体情報記憶部には、位置キーごとに、当該位置キーに対応付けられて値が記憶される。この場合、同じ位置情報に対する複数の位置キーに対応付けられる値は同じでもよい。同図では、移動体ＩＤが、「ｉｄ６６６６」である移動体に関して、三つの位置キーが割り当てられている例が示されている。
【００４８】
なお、図６に示される構成は一例であり、値の構成は適宜変更されてよい。
【００４９】
図５の処理は、移動体情報が受信されるたびに実行される。したがって、複数の移動体のそれぞれに関して、刻々と移動体情報が受信され、図６に示されるような形態で、移動体情報記憶部１３１に登録される。
【００５０】
一方、移動体情報記憶部１３１は、ＫＶＳエンジンの機能として、登録後所定時間が経過したデータは削除するように設定されている。したがって、移動体情報記憶部１３１に登録されたデータは、所定時間経過後に削除される。このことは、基本的に、各移動体に関して、最後に受信された位置情報が、移動体情報記憶部１３１において管理されることを意味する。
【００５１】
なお、図５では、移動体情報の登録処理を説明したが、登録要求受付部１２２が、施設情報又はエリア情報等の登録要求を受け付けた場合も、基本的に同様の処理手順が実行される。ただし、施設情報に関しては、移動体ＩＤは施設の識別情報である施設ＩＤに置き換えられ、登録先は施設情報記憶部１３２である。また、エリア情報に関しては、移動体ＩＤはエリアの識別情報であるエリアＩＤに置き換えられ、登録先はエリア情報記憶部１３３である。更に、施設情報記憶部１３２及びエリア情報記憶部１３３は、登録後所定時間経過したデータの自動削除は行わないように設定されている。施設やエリアは、基本的に、移動体と異なり、位置情報が刻々と変化するものではないからである。
【００５２】
続いて、図５のステップＳ１０２の詳細について説明する。図７は、多角形に対する位置キーの生成処理の処理手順の一例を説明するための図である。
【００５３】
ステップＳ２０１において、ＭＢＲ算出部１２３は、対象の多角形に対するＭＢＲを求める。対象の多角形とは、図５の処理が、ステップＳ１０２より呼び出される場合は、移動体情報のポリゴン情報が示す多角形をいう。
【００５４】
図８は、ＭＢＲの例を示す図である。図８では、多角形Ｐｇｎ１に対するＭＢＲ５０が示されている。
【００５５】
なお、ステップＳ１０２では、ＭＢＲの各頂点の座標値が算出される。図８の例では、頂点Ｐ１〜Ｐ４のそれぞれの緯度及び経度が算出される。多角形Ｐｇｎ１の各頂点の経度の中で最小の経度が、頂点Ｐ１及び頂点Ｐ３の経度となる。多角形Ｐｇｎ１の各頂点の経度の中で最大の経度が、頂点Ｐ２及び頂点Ｐ４の経度となる。多角形Ｐｇｎ１の各頂点の緯度の中で最大の緯度が、頂点Ｐ３及び頂点Ｐ４の緯度となる。多角形Ｐｇｎ１の各頂点の緯度の中で最小の緯度が、頂点Ｐ１及び頂点Ｐ２の緯度となる。
【００５６】
続いて、位置キー対象矩形特定部１２４によって、位置キー対象矩形を特定するための処理が実行される。位置キー対象矩形を求めるための処理については、具体例を用いて説明する。
【００５７】
図９は、最小単位矩形を求めるための処理を説明するためのＭＢＲの第一の例を示す図である。すなわち、図９では、単独で位置キー対象矩形を構成する最小単位矩形を求めるための処理が説明される。図９において、ＭＢＲ５１の各頂点の座標値は、図示されている通りである。
【００５８】
ステップＳ２０２において、位置キー対象矩形特定部１２４は、頂点Ｐ４の経度と頂点Ｐ１の経度との差の最大の桁を求める。最大の桁とは、有効数字が属する桁の中で最大の桁をいう。図９において、頂点Ｐ４の経度と頂点Ｐ１の経度との差、すなわち、ＭＢＲ５１の幅は、０．０００６５である。この数値における有効数字の中で、最大の桁は、１００００分の１の桁の「６」である。したがって、最大の桁は、１００００分の１である。
【００５９】
続いて、位置キー対象矩形特定部１２４は、頂点Ｐ４の緯度と頂点Ｐ１の緯度との差の最大の桁を求める（Ｓ２０３）。図９において、頂点Ｐ４の緯度と頂点Ｐ１の緯度との差、すなわち、ＭＢＲ５１の高さは、０．０００６である。当該数値における有効数字は１００００分の１の桁の「６」のみである。したがって、最大の桁は、１００００分の１であることが求められる。
【００６０】
続いて、位置キー対象矩形特定部１２４は、求められた二つの最大の桁の中で、大きい方の桁を求める（Ｓ２０４）。以下、大きい方の桁を、「丸め桁」という。双方の桁が同じ場合は、当該桁が丸め桁とされる。大きい方の桁とは、小数点以下の桁であれば、小数点に近い方の桁をいい、小数点以上の桁であれば小数点より遠い方の桁をいう。したがって、例えば、１０００００分の１と、１００００分の１とでは、１００００分の１の方が大きい桁であると判定される。なお、図９の例では、双方が１００００分の１であるため、１００００分の１が丸め桁とされる。
【００６１】
続いて、位置キー対象矩形特定部１２４は、ＭＢＲ５１の頂点Ｐ１の緯度及び経度について、丸め桁以下の有効数字を削除した丸め座標値ｐ１を求める（Ｓ２０５）。丸め桁以下の有効数字を削除するとは、丸め桁以下の有効数字を０に置き換えることをいう。頂点Ｐ１の（経度，緯度）は、（０．００１１５，０．０００２２）である。したがって、丸め座標値ｐ１は、（０．００１，０）となる。続いて、位置キー生成部１２５は、丸め座標値ｐ１について、位置キーを生成する（Ｓ２０６）。すなわち、（０．００１，０）に関して、図４において説明した処理が実行される。その結果、（０．００１，０）に対する位置キーが生成される。以下、丸め座標値ｐ１に基づいて生成された位置キーを、「位置キー１」という。
【００６２】
続いて、位置キー対象矩形特定部１２４は、ＭＢＲ５１の頂点Ｐ２の緯度及び経度について、丸め桁以下を削除した丸め座標値ｐ２を求める（Ｓ２０７）。頂点Ｐ２の（経度，緯度）は、（０．００１１５，０．０００８２）である。したがって、丸め座標値ｐ２は、（０．００１，０）となる。続いて、位置キー生成部１２５は、丸め座標値ｐ２について、位置キーを生成する（Ｓ２０８）。以下、丸め座標値ｐ２に基づいて生成された位置キーを、「位置キー２」という。
【００６３】
続いて、位置キー対象矩形特定部１２４は、ＭＢＲ５１の頂点Ｐ３の緯度及び経度について、丸め桁以下を削除した丸め座標値ｐ３を求める（Ｓ２０９）。頂点Ｐ３の（経度，緯度）は、（０．００１８，０．０００２２）である。したがって、丸め座標値ｐ３は、（０．００１，０）となる。続いて、位置キー生成部１２５は、丸め座標値ｐ３について、位置キーを生成する（Ｓ２１０）。以下、丸め座標値ｐ３に基づいて生成された位置キーを、「位置キー３」という。
【００６４】
続いて、位置キー対象矩形特定部１２４は、ＭＢＲ５１の頂点Ｐ４の緯度及び経度について、丸め桁以下を削除した丸め座標値ｐ４を求める（Ｓ２１１）。頂点Ｐ４の（経度，緯度）は、（０．００１８，０．０００８２）である。したがって、丸め座標値ｐ４は、（０．００１，０）となる。続いて、位置キー生成部１２５は、丸め座標値ｐ４について、位置キーを生成する（Ｓ２１２）。以下、丸め座標値ｐ４に基づいて生成された位置キーを、「位置キー４」という。
【００６５】
続いて、位置キー対象矩形特定部１２４は、位置キー１を、処理結果に追加する（Ｓ２１３）。処理結果とは、図７の処理の処理結果をいう。位置キー１が処理結果に追加されるということは、位置キー１が、対象の多角形の位置キーとされたことを意味する。すなわち、図９において、ＭＢＲ５１は、左下頂点を（０．００１，０）とし、１辺を１０００分の１とする単位矩形に含まれる。一方、仮に、当該単位矩形が、緯度方向及び経度方向のそれぞれについて１０分割された場合、すなわち、１００個の単位矩形に分割された場合、その結果生成される単位矩形には、ＭＢＲ５１は含まれない。したがって、左下頂点を（０．００１，０）とし、１辺を１０００分の１とする単位矩形は、ＭＢＲ５１の最小単位矩形である。当該最小単位矩形の位置及び範囲を示すのは、位置キー１である。よって、位置キー１は、対象の多角形の位置キーとされる。
【００６６】
なお、対象の多角形に関して位置キー１が対応付けられるということは、対象の多角形の範囲が、位置キー１が示す単位矩形に丸められることを意味する。対象の多角形の範囲が位置キー１の示す単位矩形によって丸められることにより、後述されるように、高速な検索が可能となる。
【００６７】
続いて、位置キー対象矩形特定部１２４は、位置キー１と位置キー２とは同じであるか否かを判定する（Ｓ２１４）。ＭＢＲ５１に関しては、丸め座標値ｐ１及び丸め座標値ｐ２は同じである。すなわち、位置キー１と位置キー２とは一致する。したがって、ステップＳ２１９に進む。
【００６８】
ステップＳ２１９において、位置キー対象矩形特定部１２４は、位置キー１と位置キー３とは同じであるか否かを判定する。ＭＢＲ５１に関しては、丸め座標値ｐ１及び丸め座標値ｐ３は同じである。すなわち、位置キー１と位置キー３とは一致するはずである。したがって、図７の処理は終了する。
【００６９】
一方、位置キー１と位置キー３とは異なる場合（Ｓ２１９でＮｏ）、位置キー対象矩形特定部１２４は、位置キー３を処理結果に追加する（Ｓ２２０）。すなわち、位置キー３についても、対象の多角形の位置キーとされる。
【００７０】
また、ステップＳ２１４において、位置キー１と位置キー２とは異なる場合（Ｓ２１４でＮｏ）、位置キー対象矩形特定部１２４は、位置キー２を処理結果に追加する（Ｓ２１５）。すなわち、位置キー２についても、対象の多角形の位置キーとされる。続いて、位置キー対象矩形特定部１２４は、位置キー１と位置キー３とは同じであるか否かを判定する（Ｓ２１６）。位置キー１と位置キー３とは異なる場合（Ｓ２１６でＮｏ）、位置キー対象矩形特定部１２４は、位置キー３を処理結果に追加する（Ｓ２１７）。すなわち、位置キー３についても、対象の多角形の位置キーとされる。続いて、位置キー対象矩形特定部１２４は、位置キー４を処理結果に追加する。すなわち、位置キー４についても、対象の多角形の位置キーとされる。
【００７１】
図７の処理の終了時の処理結果は、例えば、図５のステップＳ１０３において利用される。すなわち、当該処理結果に含まれる位置キーごとに、移動体情報が登録される。
【００７２】
ステップＳ２１４以降の意義について説明する。ステップＳ２１４以降の処理は、一つの多角形に対して、２以上の位置キーが生成されうることを意味する。図９の例では、ＭＢＲ５１の全部は、位置キー１に係る矩形範囲に含まれる。一方、ＭＢＲが、図１０に示されるような位置及び範囲を有する場合、ＭＢＲの全部は、当該ＭＢＲに関して生成される位置キー１に係る矩形範囲には含まれない。すなわち、当該ＭＢＲを含みうる最小の単位矩形には含まれない。ＭＢＲを含みうる最小の単位矩形とは、サイズとしては、当該ＭＢＲを含む単位矩形の中で最小の単位矩形であって、ＭＢＲが当該単位矩形を跨ぐことによって、当該ＭＢＲが当該単位矩形に含まれない大きさの単位矩形をいう。
【００７３】
図１０は、一つの多角形に対して複数の位置キーが生成される例を説明するための図である。
【００７４】
図１０において、（１）、（２）、及び（３）に示される、ＭＢＲ５２、５３、及び５４は、サイズ的には、１０００分の１の単位矩形に含まれうるが、斯かる単位矩形の境界を跨いでいる。すなわち、ＭＢＲ５２、５３、及び５４は、複数の１０００分の１の単位矩形にその一部が含まれている。このような場合、各ＭＢＲは、当該ＭＢＲに関して生成される位置キー１に係る単位矩形には含まれない。具体的には、（１）の場合、ＭＢＲ５２の位置キー１が示す範囲は、左下頂点を（０，０）とし、１０００分の１を１辺とする単位矩形である。しかしながら、ＭＢＲ５２において、０．００１の経度を超える部分は、当該単位矩形には含まれない。
【００７５】
また、（２）の場合、ＭＢＲ５３の位置キー１が示す範囲は、左下頂点を（０．００１，０）とし、１０００分の１を１辺とする単位矩形である。しかしながら、ＭＢＲ５３において、０．００１の緯度を超える部分は、当該単位矩形には含まれない。
【００７６】
また、（３）の場合、ＭＢＲ５４の位置キー１が示す範囲は、左下頂点を（０，０）とし、１０００分の１を１辺とする単位矩形である。しかしながら、ＭＢＲ５４において、０．００１の経度及び経度を超える部分は、当該単位矩形には含まれない。
【００７７】
そこで、ステップＳ２１４以降では、対象のＭＢＲに関して、位置キー１が示す単位矩形に含まれない部分が有る場合に、当該部分が含まれる単位矩形に対する位置キーが処理結果として追加される。すなわち、位置キー１が示す単位矩形の他に、当該単位矩形に含まれない部分を含む単位矩形も、位置キー対象矩形とされる。その結果、複数の単位矩形の組み合わせによって、ＭＢＲの範囲が丸められる。
【００７８】
例えば、（１）の例では、ステップＳ２２０において、位置キー３が処理結果に追加される。（１）において、位置キー３が示す範囲は、（０．００１，０）を左下頂点とし、１０００分の１を１辺とする単位矩形である。
【００７９】
また、（２）の例では、ステップＳ２１５において、位置キー２が処理結果に追加される。（２）において、位置キー２が示す範囲は、（０．００１，０．００１）を左下頂点とし、１０００分の１を１辺とする単位矩形である。
【００８０】
更に、（３）の例では、ステップＳ２１５にいて位置キー２が処理結果に追加され、ステップＳ２１７及びＳ２１８において、位置キー３及び位置キー４が処理結果に追加される。（３）において、位置キー２が示す範囲は、（０，０．００１）を左下頂点とし、１０００分の１を１辺とする単位矩形である。位置キー３が示す範囲は、（０．００１，０）を左下頂点とし、１０００分の１を１辺とする単位矩形である。位置キー４が示す範囲は、（０．００１，０．００１）を左下頂点とし、１０００分の１を１辺とする単位矩形である。
【００８１】
このように、一つのＭＢＲ、ひいては、一つの多角形に関して、複数の位置キーが生成されうる。
【００８２】
なお、本実施の形態において、複数の位置キーが生成されうるのは、常に最小単位矩形を、位置キー対象矩形とした場合、当初の多角形の大きさに対して過大な単位矩形が、位置キー対象矩形とされてしまう場合があるからである。
【００８３】
すなわち、本実施の形態において、最小単位矩形の定義は、緯度及び経度の精度ごとに、当該精度幅の緯線及び経線のメッシュ、格子、又は交差によって形成される単位矩形の中で、多角形のＭＢＲに一致する又は該ＭＢＲを含む最小の単位矩形である。この定義に従うと、図１０の（１）〜（３）のそれぞれのケースにおいて、各ＭＢＲに一致する又は各ＭＢＲを含む最小の単位矩形は、左下頂点を（０，０）とし、１００分の１幅の緯線及び経線のメッシュ等によって形成される単位矩形である。具体的には、１辺が１００分の１である単位矩形である。当該単位矩形は、１辺が１０００分の１である単位矩形の１００個分に相当する。したがって、１辺が１００分の１である単位矩形は、各ＭＢＲの１００倍以上の面積を有することになる。そのような単位矩形は、ＭＢＲの範囲、ひいては、多角形の範囲を丸めた範囲として、当初の多角形に対してずれが大きすぎる。
【００８４】
そこで、本実施の形態では、必ずしも最小単位矩形に対する位置キーではなく、ＭＢＲを含む最小の大きさの単位矩形であって、ＭＢＲが跨る複数の単位矩形のそれぞれに対する位置キーを、元の多角形の位置キーとされる。そうすることで、最小単位矩形のみを用いる場合における問題点を回避しているのである。
【００８５】
続いて、移動体情報の検索処理について説明する。図１１は、移動体情報の検索処理の処理手順の一例を説明するためのフローチャートである。
【００８６】
ステップＳ５０１において、検索要求受付部１２７は、移動体情報の検索要求をサービス部１１より受け付ける。なお、サービス部１１は、例えば、移動体端末２０や、非図示の固定端末からの検索要求に応じて、検索要求受付部１２７に対して検索要求を入力する。
【００８７】
検索要求には、移動体情報の検索範囲を示す情報及び検索の種類が指定される。検索範囲は、移動体のポリゴン情報と同じ形式で指定される。すなわち、検索範囲は、当該検索範囲を示す多角形の各頂点の緯度及び経度の集合によって指定される。
【００８８】
検索の種類とは、検索範囲に対してどのような関係を有する移動体情報を検索するかを示す情報である。本実施の形態では、検索の種類として３通りの指定が可能である。第一の指定は、当該検索範囲が含むもの、すなわち、検索範囲に含まれるものを検索するという指定である。第二の指定は、当該検索範囲が含まれるもの、すなわち、検索範囲を含むものを検索するという指定である。第三の指定は、当該検索範囲と重なるものを検索するという指定である。
【００８９】
続いて、ＭＢＲ算出部１２３、位置キー対象矩形特定部１２４、及び位置キー生成部１２５等は、検索範囲に指定された多角形に対する位置キーの生成処理を実行する（Ｓ５０２）。当該位置キーの生成処理は、図７において説明した通りである。したがって、位置キーは、１以上生成される。
【００９０】
生成された位置キーは、検索に用いられるキーである。当該位置キーと、移動体情報記憶部１３１に登録されている被検索対象に対する位置キーとの混同を避けるため、生成された位置キーを、以下、「検索キー」という。
【００９１】
続いて、検索部１２８は、検索要求に指定された検索の種類に基づいて、処理を分岐させる。検索範囲が含む移動体の検索である場合（Ｓ５０３でＹｅｓ）、検索部１２８は、検索範囲が含む移動体の検索処理を実行する（Ｓ５０４）。一方、検索範囲が含まれる移動体の検索である場合（Ｓ５０５でＹｅｓ）、検索部１２８は、検索範囲が含まれる移動体の検索処理を実行する（Ｓ５０６）。また、検索範囲と重なる移動体の検索である場合（Ｓ５０７でＹｅｓ）、検索部１２８は、検索範囲と重なる移動体の検索処理を実行する（Ｓ５０８）。
【００９２】
ステップＳ５０４、Ｓ５０６、又はＳ５０８に続いて、検索部１２８は、結果データを検索結果としてサービス部１１に応答する（Ｓ５０９）。結果データとは、ステップＳ５０４、Ｓ５０６、又はＳ５０８の検索処理において、検索結果の移動体情報が格納されるデータである。その後、サービス部１１によって、検索結果が検索要求元の移動体端末２０又は非図示の固定端末等に返信される。但し、検索結果がそのまま返信されなくてもよい。サービス部１１によって、検索結果の加工が行われたり、当該検索結果に基づいて、基盤部１２に対して更なる検索等が行われたりした結果が、検索要求元に返信されてもよい。
【００９３】
続いて、図１１のステップＳ５０４の詳細について説明する。図１２は、検索範囲が含む移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【００９４】
ステップＳ５２１において、検索部１２８は、図１１のステップＳ５０２において生成された検索キーのうちの一つを処理対象とする。以下、処理対象とされた検索キーを「対象検索キー」という。続いて、検索部１２８は、対象検索キーに前方一致する位置キーを、移動体情報記憶部１３１より検索する（Ｓ５２２）。なお、対象検索キーに前方一致する位置キーとは、対象検索キーの全てを、前方からの一部又は全部に含む位置キーである。したがって、前方一致には、完全一致も含まれる。
【００９５】
対象検索キーに前方一致する位置キーは、対象検索キーに対応する単位矩形に一致する、又は当該単位矩形に含まれる単位矩形に対する位置キーに該当する。この点について図を用いて説明する。
【００９６】
図１３は、検索キーとの前方一致の意義を説明するための図である。同図では、検索キーに対応する緯度及び経度が、（３５．５６１，１３９．１２２）であり、移動体情報記憶部１３１に記憶されている移動体の位置キーに対応する緯度及び経度が（３５．５６１２，１３９．１２２３）である例が示されている。この場合、検索キーが示す単位矩形は、図中太線で囲まれた単位矩形ｃ１に相当する。一方、移動体の位置キーが示す単位矩形は、図中の黒い矩形で示された単位矩形ｃ２に相当する。同図より明らかなように、単位矩形ｃ１は単位矩形ｃ２を含む。
【００９７】
また、（３５．５６１，１３９．１２２）を位置キー（すなわち検索キー）に変換すると、「＋＋１０３３９５１５２６２１」となる。（３５．５６１２，１３９．１２２３）を位置キーに変換すると、「＋＋１０３３９５１５２６２１３２」となる。そして、当該位置キーは、当該検索キーに前方一致する。
【００９８】
このように、位置キーが検索キーに前方一致する場合、当該位置キーが示す単位矩形は、当該検索キーが示す単位矩形に含まれるか又は一致することになる。位置キーのこのような特性によって、本実施の形態では、検索範囲が含む可能性の有る移動体を高速に検索することができる。
【００９９】
換言すれば、本実施の形態では、或る範囲に含まれる移動体を検索する際に、キーの前方一致による高速な検索を可能とするために、緯度及び経度は、位置キーの形式に変換されて、ＫＳＶのキーとされるのである。仮に、緯度及び経度の順に単純に接続された文字列が位置キーとされた場合、上記のような前方一致による高速な検索は困難である。緯度及び経度の順に単純に接続された場合の文字列は、図１３の例において、検索キーは、「＋３５５６１＋１３９１２２」となる。また、移動体の位置キーは、「＋３５５６１２＋１３９１２２３」となる。当該位置キーは、当該検索キーに前方一致しない。また、ＫＶＳの特性上、「＋３５５６１＊＋１３９１２２＊」といった正規表現によるキーの検索を行うのは困難である。なお、ここで、「＊」は、ワイルドカードを示す。
【０１００】
なお、上記したように、単位矩形の大きさは、当該単位矩形の左下頂点を示す緯度及び経度の精度に依存する。単位矩形ｃ１に関しては、左下頂点の緯度及び経度が、１０００分の１度単位である。したがって、単位矩形ｃ１は、１辺が１０００分の１度である矩形領域に相当する。一方、単位矩形ｃ２に関しては、左下頂点の緯度及び経度が、１００００分の１度単位である。したがって、単位矩形ｃ２は、１辺が１００００分の１度である矩形領域に相当する。すなわち、位置キーの文字数が多くなればなるほど、当該位置キーに対応する単位矩形は小さいことを意味する。
【０１０１】
続いて、検索部１２８は、検索された位置キーに対する値として記憶されている移動体情報を、移動体情報記憶部１３１より取得する（Ｓ５２３）。続いて、検索部１２８は、検索範囲に指定されたポリゴン情報が示す多角形が、取得された移動体情報に含まれているポリゴン情報が示す多角形を含むか否かを判定する（Ｓ５２４）。当該判定は、公知の幾何学的演算によって行われればよい。検索範囲に指定されたポリゴン情報が示す多角形が、取得された移動体情報に含まれているポリゴン情報が示す多角形を含む場合、当該移動体情報は、結果データに含められる。
【０１０２】
すなわち、検索キーと位置キーとの包含関係は、必ずしも、検索キーに係る多角形と、位置キーに係る多角形との包含関係に一致しない。検索キーに対応する単位矩形は、検索範囲の多角形を丸めた範囲であり、位置キーに対応する単位矩形は、移動体の多角形を丸めた範囲であるからである。したがって、ステップＳ５２２において検索された位置キーに対応付けられているポリゴン情報の示す多角形は、必ずしも検索範囲に指定されたポリゴン情報の示す多角形に含まれているとは限らない。したがって、多角形同士の包含関係の判定については、双方のポリゴン情報に基づく幾何学的演算が必要とされる。但し、本実施の形態では、演算対象とされるポリゴン情報の数が、ステップＳ５２２によって、高速に絞り込まれる。換言すれば、検索範囲に含まれる可能性が全く無い移動体に関しては、ステップＳ５２２において、検索候補から除去される。したがって、ステップＳ５２４における演算量を削減することができる。
【０１０３】
ステップＳ５２１〜Ｓ５２４は、図１１のステップＳ５０２において生成された全ての検索キーについて実行される（Ｓ５２５）。続いて、検索部１２８は、結果データを返却する（Ｓ５２６）。
【０１０４】
なお、図１２の処理を、図によって概念的に示すと、例えば、図１４に示される通りになる。
【０１０５】
図１４は、検索範囲が含む移動体の検索処理を説明するための図である。図１４において、（１）は、検索範囲の多角形に対するＭＢＲ５５を示す。（２）において網掛けが施されている領域は、ＭＢＲ５５に対する最小単位矩形である。すなわち、当該最小単位矩形は、検索キーが示す単位矩形である。検索キーと前方一致の位置キーが検索されることにより、当該単位矩形に含まれる多角形に対する位置キーが検索される。更に、（３）では、検索キーが示す単位矩形が、１桁高い精度の単位矩形によって分割された状態が示されている。すなわち、検索キーと前方一致する位置キーの中には、（３）に示されるように分割された単位矩形に対する位置キーも含まれる。すなわち、分割された単位矩形に含まれる多角形も検索される。なお、更に精度の高い単位矩形に対する位置キーが存在する場合は、斯かる位置キーも検索されるが、図１４では便宜上省略されている。
【０１０６】
続いて、図１１のステップＳ５０６の詳細について説明する。図１５は、検索範囲が含まれる移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【０１０７】
ステップＳ５３１において、検索部１２８は、図１１のステップＳ５０２において生成された検索キーのうちの一つを処理対象とする。以下、処理対象とされた検索キーを「対象検索キー」という。続いて、検索部１２８は、対象検索キーに完全一致する位置キーを、移動体情報記憶部１３１より検索する（Ｓ５３２）。なお、検索部１２８は、位置キーの検索に使用された対象検索キーを、使用済みの検索キーとして、例えば、メモリ装置１０３に記憶しておく。
【０１０８】
続いて、検索部１２８は、検索された位置キーに対する値として記憶されている移動体情報を、移動体情報記憶部１３１より取得する（Ｓ５３３）。続いて、検索部１２８は、検索範囲に指定されたポリゴン情報が示す多角形が、取得された移動体情報に含まれているポリゴン情報が示す多角形に含まれるか否かを判定する（Ｓ５３４）。当該判定は、公知の幾何学的演算によって行われればよい。検索範囲に指定されたポリゴン情報が示す多角形が、取得された移動体情報に含まれているポリゴン情報が示す多角形に含まれる場合、当該移動体情報は、結果データに含められる。
【０１０９】
続いて、検索部１２８は、対象検索キーが、「＋＋」の２文字のみであるか否かを判定する（Ｓ５３５）。対象検索キーが、「＋＋」以外の文字を含む場合（Ｓ５３５でＮｏ）、検索部１２８は、対象検索キーの末尾から２文字を削除する（Ｓ５３６）。その結果、対象検索キーに係る単位矩形は、１桁大きな単位矩形となる。例えば、これまで対象検索キーに対応する単位矩形が１００００分の１の単位矩形であった場合、１０００分の１の単位矩形となる。以下における対象検索キーは、末尾の２文字が削除された検索キーである。
【０１１０】
続いて、検索部１２８は、対象検索キーの使用履歴の有無を判定する（Ｓ５３７）。例えば、対象検索キーが、使用済みの検索キーとしてメモリ装置１０３に記憶されているか否かが判定される。対象検索キーについて使用履歴が無い場合（Ｓ５３７でＮｏ）、対象検索キーに関して、ステップＳ５３２以降が繰り返される。すなわち、対象検索キーが「＋＋」のみとなるまで、末尾から２文字ずつ削除されつつ、対象検索キーと完全一致する位置キーの検索等が行われる。
【０１１１】
例えば、ステップＳ５３２〜Ｓ５３７では、図１６に示されるような処理が実行される。
【０１１２】
図１６は、検索範囲が含まれる移動体の検索処理を説明するための図である。図１６において、（１）は、検索範囲の多角形に対するＭＢＲ５５を示す。（２）において網掛けが施されている領域は、ＭＢＲ５５に対する最小単位矩形である。すなわち、当初の対象検索キーが示す単位矩形である。「当初の」とは、末尾が削除される前のという意味である。したがって、最初にステップＳ５３２が実行される際は、当該単位矩形に含まれる多角形に対する位置キーが検索される。
【０１１３】
（３）において網掛けが施されている領域は、末尾が２文字以上削除された対象検索キーが示す単位矩形領域である。したがって、２回目以降にステップＳ５３２が実行される際は、当該単位矩形領域に含まれる多角形に対する位置キーが検索される。
【０１１４】
すなわち、検索範囲に係る多角形が、或る多角形に含まれるということは、換言すれば、当該或る多角形は、当該検索範囲に係る多角形を含むということである。そうすると、図１３において説明したように、少なくとも当該或る多角形に対する位置キーは、検索範囲に係る多角形に対する位置キーに対して前方一致するはずである。したがって、ステップＳ５３２〜Ｓ５３７では、当初の対象検索キーに前方一致する位置キーを検索するために、対象検索キーの末尾から２文字ずつ削除された文字列と完全一致する位置キーが検索されるのである。
【０１１５】
しかし、ステップＳ５３２において検索された位置キーに対応付けられているポリゴン情報の示す多角形は、必ずしも検索範囲に指定されたポリゴン情報の示す多角形が含まれる多角形であるとは限らない。したがって、多角形同士の包含関係の判定については、ステップＳ５３４において、双方のポリゴン情報に基づく幾何学的演算が必要とされる。但し、本実施の形態では、演算対象とされるポリゴン情報の数が、ステップＳ５３２によって、高速に絞り込まれる。したがって、ステップＳ５３４における演算量を削減することができる。
【０１１６】
ステップＳ５３２〜Ｓ５３７は、図１１のステップＳ５０２において生成された全ての検索キーについて実行される（Ｓ５２８）。続いて、検索部１２８は、結果データを返却する（Ｓ５３９）。
【０１１７】
続いて、図１１のステップＳ５０６の詳細について説明する。図１７は、検索範囲と重なる移動体の検索処理の処理手順の一例を説明するためのフローチャートである。
【０１１８】
移動体が検索範囲と重なる場合とは、移動体の形状を示す多角形の一部又は全部が、検索範囲の多角形の一部又は全部と重なる場合をいう。すなわち、移動体の形状を示す多角形が検索範囲の多角形を含む場合や、移動体の形状を示す多角形が検索範囲の多角形に含まれる場合等も、移動体が検索範囲と重なる場合に含まれる。したがって、図１７の処理内容は、基本的に、図１２と図１５とを合わせたものとなっている。
【０１１９】
すなわち、ステップＳ５４１〜Ｓ５４４は、図１２のステップＳ５２１〜Ｓ５２４と同じである。続いて、ステップＳ５４５以降においては、図１５のＳ５３５以降と同様の処理が実行される。
【０１２０】
したがって、検索範囲と重なる可能性の有る移動体の候補を、ステップＳ５４２又はＳ５４８において高速に絞りことができる。その結果、ステップＳ５４４における演算量を削減することができる。
【０１２１】
上述したように、本実施の形態によれば、移動体の形状を示す多角形のＭＢＲを含む最小単位矩形、又は最小単位矩形と同じ大きさであって、当該ＭＢＲの一部が含まれる単位矩形を示す位置キーが、移動体情報に対するキーとしてＫＶＳに登録される。その結果、位置キー同士の前方一致又は完全一致によって、包含関係又は重畳関係を有する可能性の有る多角形を高速に検索することができる。したがって、実用的な検索性能を確保しつつ位置情報を管理することができる。
【０１２２】
なお、本実施の形態では、説明の便宜上、移動体情報が登録及び検索の対象とされたが、位置及び範囲を示すポリゴン情報を含む情報であれば、登録又は検索の対象とされる情報は、所定のものに限定されない。
【０１２３】
また、本実施の形態では、位置キーの形式は、経度、緯度の順に緯度及び経度の各桁が交互に配列される例を示したが、経度と緯度との順が逆であってもよい。
【０１２４】
また、必ずしも、緯度及び経度の全ての桁が交互に配列されなくてもよい。すなわち、検索時の精度（検索キーの精度）より上位の桁に関しては、交互に配列されなくてもよい。例えば、図１３の例では、検索キーの精度は、小数点以下第３位である。したがって、小数点以下第３位より上位の桁に関しては、経度文字列と緯度文字列とが順番に配列されてもよい。具体的には、図１３の例によればこの場合の検索キーは、「＋３５５６＋１３９１２２１」となる。また、移動体の位置キーは、「＋３５５６＋１３９１２２１３２」となる。これらは、いずれも、小数点以下第３位以下に関して、緯度文字列と経度文字列の文字を交互に配列したものである。この場合、当該位置キーは、当該検索キーに前方一致する。
【０１２５】
上記より、本実施の形態の位置キーは、緯度及び経度のそれぞれの全部又は最下位桁からの一部の桁の上位から順に同じ桁を１桁ずつ交互に配列した文字列ということになる。ここで、最下位桁からの一部の桁とは、直前の例において、小数点以下第３位以下の桁をいう。
【０１２６】
また、本実施の形態では、緯度の範囲は、＋９０度（北緯）〜−９０度（南緯）であるとし、経度の範囲は、＋１８０度（東経）〜−１８０度（西経）であるとした。しかし、緯度の範囲は、０度から１８０度とし、経度の範囲は、０度から３６０度としてもよい。この場合、符号を示す文字（＋又は−）は、位置キーの先頭の２文字に含まれなくてもよい。
【０１２７】
また、本実施の形態において、位置キーは、緯度及び経度の値を直接的に利用する例を説明したが、例えば、４分木によって２次元空間を再帰的又は階層的に分割することにより、多角形に対する位置キーが生成されてもよい。
【０１２８】
図１８は、４分木による位置キーの生成方法の一例を説明するための図である。図１８において、黒塗りされている領域が、多角形のＭＢＲが含まれる最小単位矩形であるとする。この場合、４分木によれば、当該単位矩形には、「１１００００」が割り当てられる。したがって、文字列「１１００００」を当該領域に含まれる多角形に対する位置キーとすることができる。
【０１２９】
すなわち、直線Ｌｘ１は、Ｘ軸方向の０からｍａｘＸの範囲を２等分する直線である。２等分された範囲のそれぞれには、「０」と「１」とが付与される。直線Ｌｘ２は、直線Ｌｘ１によって２等分され、「１」が付与された範囲を２等分する直線である。直線Ｌｘ３は、直線Ｌｘ２によって２等分され、「０」が付与された範囲を２等分する直線である。Ｙ方向における直線Ｌｘ１、Ｌｘ２、及びＬｘ３についても同様である。
【０１３０】
以上の結果、黒塗りされた単位矩形に対する位置キーは、「１１００００」となる。当該値は、結果的に、Ｘ方向の座標値とＹ方向の座標値とを同じ桁ずつ交互に配列したものに相当する。したがって、４分木によって求められる位置キーを用いても、本実施の形態をそのまま適用することができる。
【０１３１】
なお、４分木を用いる場合、分割の再帰数が一致する直線群によって形成される矩形が、単位矩形となる。具体的には、図１８において、Ｌｘ１とＬｙ２とによって形成される矩形は、最大の単位矩形である。Ｌｘ２とＬｙ２とで形成される矩形は、２番目の大きさの単位矩形である。なお、Ｌｘ１又はＬｙ１によって２等分され、「０」が付与された範囲に関しても、Ｌｘ２又はＬｙ２によって分割されるが、図中では省略されている。
【０１３２】
また、４分木は、Ｘ方向及びＹ方向のそれぞれを再帰的に２等分する方法であるが、Ｘ方向及びＹ方向のそれぞれが再帰的にＮ等分されてもよい。ここで、Ｎは１以上の整数である。例えば、再帰的に１０等分されて、多角形のＭＢＲが含まれる単位矩形が求められてもよい。以下、４分木も含めて、Ｘ方向及びＹ方向のそれぞれを再帰的にＮ等分する方法を、便宜上、Ｎ２分木という。
【０１３３】
Ｎ２分木を用いる場合、２次元空間おけるＸ方向及びＹ方向の最大値、すなわち、図１８におけるｍａｘＸやｍａｘＹの値は、必ずしも、実際の経度又は緯度の最大値でなくてもよい。Ｎ２分木に適した値が最大値とされてもよい。例えば、４分木であれば、２ｎの値が最大値とされてもよい。この場合、実際には、緯度及び経度の範囲に多角形は存在することになるが、位置キーの桁数が多くなるだけで、本実施の形態の有効性に影響は無い。
【０１３４】
Ｎ２分木による位置キーの生成方法は、本実施の形態の変形例ではなく、本実施の形態を一般化したものであるといえる。例えば、Ｘ方向、すなわち、経度方向において、０〜１０００の範囲を有し、Ｙ方向、すなわち、緯度方向において０〜１０００の範囲を有する２次元座標空間を用いる。当該２次元座標空間のＸ方向及びＹ方向を再帰的に１０等分することにより形成される単位矩形のうち、多角形のＭＢＲに一致する又はＭＢＲを含む最小の単位矩形が特定される。当該単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して生成された文字列は、実際の緯度及び経度に即した位置キーとなる。但しこの場合は、経度の範囲を、０〜３６０度とし、緯度の範囲を０〜１８０度とした場合に対応する。
【０１３５】
なお、分割数に応じて付与された値とは、１０等分される場合、０〜９である。すなわち、再帰的に分割されるたびに、当該分割によって形成された各単位矩形に対して、Ｘ方向及びＹ方向のそれぞれについて、０〜９が付与される。
【０１３６】
したがって、本実施の形態において、位置キー対象矩形特定部１２４は、緯度及び経度の範囲を含む２次元座空間をＸ方向及びＹ方向に同じ分割数ずつ再帰的に等分するたびに形成される単位矩形の中で、前記多角形の最小外接矩形に一致する又は該最小外接矩形を含む最小の単位矩形を特定するといえる。また、位置キー生成部１２５は、特定された前記単位矩形及び当該単位矩形を含む全ての単位矩形に対してＸ方向及びＹ方向のそれぞれに関して分割数に応じて付与された値を、大きな単位矩形に対応する値から順に、Ｘ方向及びＹ方向のいずれかを先として交互に配列して一つの文字列を生成するといえる。
【０１３７】
また、本実施の形態では、緯度経度の２次元空間座標における範囲を表現するために位置キーを作成したが、１次元空間や３次元空間、ひいては、N次元空間においても同様の仕組みを用いることが出来る。２次元空間では単位矩形を用いて検索の高速化を図ったが、１次元空間では単位直線、３次元空間では単位３次元矩形を採用すればよい。
【０１３８】
１次元空間の例としては、ある範囲を持った時間を扱うことが考えられる。例えば、ある時間帯に動作（移動、稼働など）を続けていた移動体の属性情報を登録したり検索したりする際、その時間範囲を含む最小単位時間をキーとすることで、本実施の形態と同様に、検索性能を確保することが出来る。
【０１３９】
図１９は、１次元空間を採用した場合の例を示す図である。時間範囲６６は、２０１２年３月２８日９時３１分２４秒から、２０１２年３月２８日９時３７分４６秒までを示す。最小単位時間を１０分単位とすると、時間範囲６６を含む最小単位時間６７は、２０１２年３月２８日９時３０分である。この値を「２０１２０３２８０９３０」などと表現し、登録又は検索のためのキーとして用いてもよい。
【０１４０】
３次元空間の例としては、緯度及び経度に対して高度を加え、３次元のポリゴン情報を扱うことが考えられる。例えば、高さ情報を有した位置情報を登録したり検索したりする際、その範囲を含む最小単位３次元矩形（すなわち、最小単位直方体）をキーとすることで、本実施の形態と同様に、検索性能を確保することが出来る。
【０１４１】
図２０は、３次元空間を採用した場合の例を示す図である。３次元のポリゴン情報から最小外接３次元矩形７７（又は最小外接直方体７７）を導出し、最小外接３次元矩形７７の頂点q１における緯度、経度、高度の３つの値に対して、桁合わせ等で所定形式に変換し、最上位から順に取得することで最小外接３次元矩形７７の位置キーを求める。その上で、上述の「丸め桁」と同じ考え方を用いて、最小単位３次元矩形７８とその位置キーを導出し、登録又は検索のためのキーとして用いてもよい。
【０１４２】
このように次元の数が変化しようとも、同様の手法にてキーを作成することで、検索性能を確保しつつ、範囲を持つ情報の管理が可能になる。
【０１４３】
なお、本実施の形態において、移動体情報受信部１２１又は登録要求受付部１２２は、受付部の一例である。位置キー生成部１２５は、生成部の一例である。移動体情報記憶部１３１、施設情報記憶部１３２、又はエリア情報記憶部１３３は、記憶部の一例である。
【０１４４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１４５】
１            情報管理システム
１０          情報管理装置
１１          サービス部
１２          基盤部
２０          移動体端末
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        移動体情報受信部
１２２        登録要求受付部
１２３        ＭＢＲ算出部
１２４        位置キー対象矩形特定部
１２５        位置キー生成部
１２６        登録部
１２７        検索要求受付部
１２８        検索部
１３１        移動体情報記憶部
１３２        施設情報記憶部
１３３        エリア情報記憶部
Ｂ            バス
【図１】
0005915335.tif 000002
【図２】
0005915335.tif 000003
【図３】
0005915335.tif 000004
【図４】
0005915335.tif 000005
【図５】
0005915335.tif 000006
【図６】
0005915335.tif 000007
【図７】
0005915335.tif 000008
【図８】
0005915335.tif 000009
【図９】
0005915335.tif 000010
【図１０】
0005915335.tif 000011
【図１１】
0005915335.tif 000012
【図１２】
0005915335.tif 000013
【図１３】
0005915335.tif 000014
【図１４】
0005915335.tif 000015
【図１５】
0005915335.tif 000016
【図１６】
0005915335.tif 000017
【図１７】
0005915335.tif 000018
【図１８】
0005915335.tif 000019
【図１９】
0005915335.tif 000020
【図２０】
0005915335.tif 000021