(57)【要約】【課題】領域の検索を高速化する。【解決手段】本方法は、移動端末の識別子と位置とを含むリクエストを受信し、移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された領域の識別子について格納されている第２の領域の識別子を抽出し、抽出された第２の領域の識別子から特定される第２の領域内に、リクエストに含まれる位置が含まれるか判断し、抽出された第２の領域の識別子から特定される第２の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第２の領域の識別子を結果データに追加する処理を含む。【選択図】図３
2014191720.tif 000002
【特許請求の範囲】
【請求項１】
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、
抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を、コンピュータに実行させるためのプログラム。
【請求項２】
前記複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、特定された前記領域の識別子について格納されている第３の領域の識別子を抽出し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれるか判断する
処理を、前記コンピュータに実行させ、
前記第２の条件が、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれないという条件を含む
請求項１記載のプログラム。
【請求項３】
前記複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、抽出された前記第２の領域の識別子について格納されている第３の領域の識別子を抽出し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれる場合には、抽出された前記第３の領域の識別子を前記結果データに追加する
処理をさらに前記コンピュータに実行させるための請求項１記載のプログラム。
【請求項４】
前記第２の領域の識別子を抽出する処理の前に、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれるか判断し、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれる場合には、特定された前記領域の識別子を結果データに追加する
処理をさらに前記コンピュータに実行させるための請求項１乃至３のいずれか１つ記載のプログラム。
【請求項５】
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、
抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を含み、コンピュータにより実行される領域判定方法。
【請求項６】
移動端末の識別子と位置とを含むリクエストを受信する受信部と、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加する処理部と、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する探索部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数の領域の中から該当する領域を検索するための技術に関する。
【背景技術】
【０００２】
ＧＰＳ（Global Positioning System）搭載の携帯電話機やスマートフォンが普及するなど、端末から位置情報を通知できるようになり、端末を保持する人の位置を利用した様々なサービスが普及してきている。位置情報を利用したサービスの例としては、ある店舗の周辺の領域に人が移動したときに、その人に対して店舗の情報を通知するサービスなどがある。
【０００３】
今後、位置を通知する端末やその位置情報を利用するサービスはますます普及し、これらの増加に伴い、端末が存在する領域を判定するための処理量も増加する。
【０００４】
従来、空間内に存在する大量のデータから条件に合ったものを高速に判定するためには、判定条件に合わせたインデックスを作成して、一部のデータのみを確認することで該当データを取得できるようにする。インデックスを用いたデータ管理方式には、一次元のデータを検索する場合に用いられるＢ−Ｔｒｅｅを利用した方式や、２次元以上の多次元データを検索する場合に用いられるＲ−Ｔｒｅｅを利用した方式がある。
【０００５】
Ｒ−Ｔｒｅｅでは、相互に重なり合う矩形領域（多次元空間における超矩形を指す。二次元空間の場合は長方形、三次元空間の場合は直方体となる。四次元空間以上の場合も、次元数に合わせて拡張した領域を指す。）に対応するノードで木を作成する。そして、各ノードは、子ノードの最小外接矩形（子ノードの領域をすべて含む最小の矩形領域）を表すものとする。領域判定時には、範囲が重なる子ノードに絞って判定を行うことで判定を高速化する。
【０００６】
例えば、Ｒ−Ｔｒｅｅを利用したデータ管理について、図１Ａ及び図１Ｂを参照して説明する。図１Ａは、Ｒ−Ｔｒｅｅで管理するデータを示し、図１Ｂは、矩形領域の例を示す。図１Ａに示すように、ルートノードＲ０は、子ノードＲ１乃至Ｒ４の矩形領域を全て含む矩形領域であり、ノードＲ１は、ノードＲ５乃至Ｒ８の矩形領域を全て含む矩形領域である。また、最下段のノードＲ５乃至Ｒ１１は葉ノードであり、内部にデータを含む矩形領域である。すなわち、Ｒ０はＲ１のインデックス情報となり、Ｒ１は、Ｒ５のインデックス情報となっている。
【０００７】
図１Ｂに示すように、条件に合ったデータを検索するために、インデックス情報を用いて該当範囲を検索していく場合、ルートノードであるＲ０の４つの子ノードＲ１乃至Ｒ４から検索範囲が重なるノードＲ１を選択する。さらに、ノードＲ１の４つの子ノードＲ５乃至Ｒ８から検索範囲が重なるノードＲ５を選択する。このように、重なる部分を持つノードから再帰的に検索範囲が重なるノードを選択し、最終的に葉ノードＲ５の中から検索範囲内にあるデータを選択する。
【０００８】
従来のＲ−Ｔｒｅｅでは、領域判定を行う度に毎回ツリーの最上位ノードから判定を始めるため、ノードの深さに比例する比較処理を行うことになる。判定対象の領域がまばらなケースでは比較的すぐに対象領域が無いと判断できて判定処理を終了することができる。しかし、判定対象の領域が密なケースでは、領域自身や中間ノードが重なり合って、判定回数が多くなる。
【０００９】
一般的に、領域判定すべき領域が集まるエリアは、繁華街や交通機関など人や物が集中するエリアであり、リクエストとして与えられる位置情報も同領域になることが多い。そのため、従来技術では、多くの場合に処理時間を効率的に削減することができない。
【００１０】
この問題に対する一つの解決策としては、以下のような技術が存在している。すなわち、所定の位置を含む領域の問合せ要求を取得すると、所定の位置が前回検索できた領域に含まれるか否かを判定し、判定の結果、所定の位置が前回検索できた領域に含まれると判定された場合、記憶部に基づいて、含まれると判定された領域の重複領域の中から所定の位置を含む領域を検索する。一方、判定の結果、所定の位置が前回検索できた領域に含まれないと判定された場合、Ｒ−Ｔｒｅｅに含まれるノードの中で、含まれないと判定された領域を含むインデックス情報の葉ノードからボトムアップでＲ−Ｔｒｅｅを遡った後所定の位置を含む領域を検索する。そして、所定の位置を含む領域を検索できた場合、検索できた情報の重複領域の中から所定の位置を含む領域を検索する。
【００１１】
このような手法を用いると、端末の移動距離が短い場合は、前回位置を含む葉ノードからボトムアップで判定することでルートノードから判定する従来のＲ−Ｔｒｅｅに比べ判定処理を高速化することができる。しかし、移動先がツリー上離れたノード配下である場合（移動距離が近距離の場合でも、親のノードがツリー上離れることもある）、最悪ボトムアップでルートノードまで遡り、さらにルートノードから判定することになるため、判定処理を高速化できない場合がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１３−２５５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従って、本技術の目的は、一側面によれば、領域の検索を高速化するための技術を提供することである。
【課題を解決するための手段】
【００１４】
本技術に係る領域判定方法は、（Ａ）移動端末の識別子と位置とを含むリクエストを受信し、（Ｂ）移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、（Ｃ）複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された領域の識別子について格納されている第２の領域の識別子を抽出し、（Ｄ）抽出された第２の領域の識別子から特定される第２の領域内に、リクエストに含まれる位置が含まれるか判断し、（Ｅ）抽出された第２の領域の識別子から特定される第２の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第２の領域の識別子を結果データに追加し、（Ｆ）抽出された第２の領域の識別子から特定される第２の領域内にリクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。
【発明の効果】
【００１５】
一側面によれば、領域の検索を高速化できるようになる。
【図面の簡単な説明】
【００１６】
【図１Ａ】図１Ａは、Ｒ−Ｔｒｅｅを説明するための図である。
【図１Ｂ】図１Ｂは、Ｒ−Ｔｒｅｅを説明するための図である。
【図２】図２は、実施の形態に係るシステムの概要を示す図である。
【図３】図３は、判定サーバの機能ブロック図である。
【図４】図４は、領域インデックス格納部に格納されるデータを説明するための図である。
【図５】図５は、ルートノードのデータ例を示す図である。
【図６】図６は、中間ノードのデータ例を示す図である。
【図７】図７は、葉ノードのデータ例を示す図である。
【図８】図８は、領域データ格納部に格納されるデータの一例を示す図である。
【図９Ａ】図９Ａは、領域インデックス格納部及び領域データ格納部に格納されるデータを模式的に示す図である。
【図９Ｂ】図９Ｂは、領域インデックス格納部及び領域データ格納部に格納されるデータを模式的に示す図である。
【図１０】図１０は、前回領域データ格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、遷移領域データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、実施の形態に係る処理フローを示す図である。
【図１３】図１３は、リクエストのデータ例を示す図である。
【図１４】図１４は、重複領域チェック処理の処理フローを示す図である。
【図１５】図１５は、実施の形態に係る処理フローを示す図である。
【図１６】図１６は、遷移領域設定処理の処理フローを示す図である。
【図１７】図１７は、レスポンスデータの一例を示す図である。
【図１８】図１８は、ルートからの判定処理の処理フローを示す図である。
【図１９】図１９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１７】
本実施の形態に係るシステムの概要を図２に示す。図２に示すように、携帯電話網及びインターネットなどであるネットワーク１を介して、複数の移動端末３（図２では３ａ及び３ｂ）は、判定サーバ５と接続される。移動端末３ａ及び３ｂは、携帯電話機である場合もあれば、スマートフォンである場合もある。さらに、カーナビゲーション装置のような車載端末であっても良い。
【００１８】
移動端末３は、ＧＰＳ機能を有しており、例えばユーザからの指示に応じて位置データを取得して当該位置データ及び移動端末３の識別子であるセンサＩＤを含むリクエストを判定サーバ５へ送信する。移動端末３に含まれる他の機能が、定期的に位置データを取得してリクエストを判定サーバ５へ送信する場合もある。判定サーバ５は、位置データ及びセンサＩＤを含むリクエストを受信すると、以下で述べるような処理を実行して、移動端末３の現在位置を含む領域に関するデータをレスポンスデータとして、移動端末３へ返信する。
【００１９】
図３に判定サーバ５の機能ブロック図を示す。判定サーバ５は、リクエスト受信部５１と、ツリー探索部５２と、遷移領域管理部５３と、前回領域管理部５４と、レスポンス送信部５５と、関連領域判定部５６と、重複領域判定部５７と、領域インデックス格納部５８と、領域データ格納部５９と、前回領域データ格納部５９と、遷移領域データ格納部６１とを有する。
【００２０】
リクエスト受信部５１は、移動端末３からのリクエストを受信する。レスポンス送信部５５は、移動端末３へレスポンスを送信する。ツリー探索部５２は、領域インデックス格納部５８等に格納されているデータにより実現されているＲ−Ｔｒｅｅを探索するための処理を実行する。関連領域判定部５６及び重複領域判定部５７は、領域データ格納部５９に格納されているデータを用いて、領域判定処理を高速化するための処理を実行する。遷移領域管理部５３は、領域間の遷移し易さを表すデータである遷移領域データを格納する遷移領域データ格納部６１の管理を行う。前回領域管理部５４は、各移動端末について前回リクエスト時における所属領域のデータである前回領域データを格納する前回領域データ格納部５９の管理を行う。
【００２１】
領域インデックス格納部５８に格納されるデータについて図４乃至図７を用いて説明する。領域インデックス格納部５８は、空間内に存在する多数の領域から、条件に合致する領域を高速に検索するための索引情報を格納する。例えば、領域インデックス格納部５８は、どの領域がどこにあるのかを示すインデックスデータをＲーＴｒｅｅで保持する。
【００２２】
ここで、領域インデックス格納部５８に格納されるデータの例を、図４を用いて説明する。図４に示すように、領域インデックスは、ルートノード、中間ノード及び葉ノードにより形成される木構造のデータである。ルートノードは、Ｒ−Ｔｒｅｅに１つ存在する最上位のノードである。また、葉ノードは、Ｒ−Ｔｒｅｅの最下位のノードであり、自らは子ノードを含まず、検索対象となる領域のＩＤを１又は複数含む領域ＩＤデータと対応付けられている。木構造データにおけるルートノード及び葉ノード以外のノードは、中間ノードであり、１又は複数の子ノードを有する。
【００２３】
図４の例では、ルートノードＲ１の子ノード且つ中間ノードがノードＲ１０及びＲ１１である。ノードＲ１は、ノードＲ１０及びＲ１１についての矩形領域を全て含む矩形領域に対応する。中間ノードＲ１０の子ノード（葉ノード）は、ノードＲ１００及びＲ１０１である。そして、ノードＲ１０は、ノードＲ１００及びＲ１０１についての矩形領域を全て含む矩形領域に対応する。中間ノードＲ１１の子ノード（葉ノード）は、ノードＲ１１０及びＲ１１１である。ノードＲ１１は、ノードＲ１１０及びＲ１１１についての矩形領域を全て含む矩形領域に対応する。そして、葉ノードであるノードＲ１００には、検索対象となる領域ＩＤ「１」「２」及び「３」が関連付けられている。
【００２４】
葉ノードであるノードＲ１０１は、検索対象となる領域ＩＤ「４」及び「５」が関連付けられている。葉ノードであるノードＲ１１０には、検索対象となる領域ＩＤ「６」及び「７」が関連付けられている。さらに、葉ノードであるノードＲ１１１には、検索対象となる領域ＩＤ「８」及び「９」が関連付けられている。
【００２５】
領域インデックス格納部５８は、Ｒ−Ｔｒｅｅの実体としてルートノード、中間ノード、葉ノードの各ノードのデータを格納している。図５は、領域インデックス格納部５８に格納されているルートノードのデータの例を示す。図５に示すように、ルートノードＲ１のデータは、ノード種別、矩形領域データ及び子ノードリストを含む。「ノード種別」は、ノードがルートノード、中間ノード、葉ノードのいずれであるかを示す。矩形領域データは、子ノードの担当領域を全て含む最小外接矩形を表すデータである。最小外接矩形とは、子ノードの領域を全て含む最小の矩形領域である。子ノードリストは、当該ノードの子ノードへのリンクポインタのリストである。
【００２６】
図５の例では、ルートノードＲ１のノード種別は、ルートノードである。ルートノードＲ１の矩形領域データは、ｘｙの２次元データであり、「ｘ１＝３５．５、ｙ１＝１３９．０」が担当領域の最小点であり、「ｘ２＝３５．９、ｙ２＝１３９．５」が担当領域の最大点であることを示す。すなわち、ノードＲ１が担当する領域は、両点を頂点として各次元軸に直交した４直線で作られる領域である。また、子ノードリストには、子ノード「Ｒ１０」及び「Ｒ１１」へのポインタを含む。
【００２７】
図６は、領域インデックス格納部５８に格納される中間ノードのデータの例を示す。図６に示すように、中間ノードのデータは、ノード種別、矩形領域データ及び子ノードリストを含む。領域インデックス格納部５８は、ノードＲ１０及びＲ１１について、図６に示すデータを格納する。
【００２８】
図６の例では、ノードＲ１０のノード種別は、中間ノードである。中間ノードＲ１０の矩形領域データは、「ｘ１＝３５．５、ｙ１＝１３９．２」が担当領域の最小点であり、「ｘ２＝３５．７、ｙ２＝１３９．３」が担当領域の最大点であることを示す。すなわち、中間ノードＲ１０が担当する領域は、両点を頂点として各次元軸に直交した４直線で作られる領域である。また、ノードＲ１０の子ノードリストは、子ノード「Ｒ１００」及び「Ｒ１０１」へのポインタを含む。
【００２９】
図７は、領域インデックス格納部５８に格納される葉ノードのデータの例を示す図である。図７に示すように、葉ノードのデータは、ノード種別、矩形領域データ及びデータリストを含む。データリストは、領域データへのポインタのリストである。領域インデックス格納部５８は、ノードＲ１００、Ｒ１０１、Ｒ１１０及びＲ１１１について、図７に示すデータを格納する。
【００３０】
図７の例では、葉ノードＲ１００のノード種別は、葉ノードである。葉ノードＲ１００の矩形領域データは、「ｘ１＝３５．５、ｙ１＝１３９．２」が担当領域の最小点であり、「ｘ２＝３５．６、ｙ２＝１３９．３」が担当領域の最大点であることを示す。すなわち、葉ノードＲ１００が担当する領域は、両点を頂点として各次元軸に直交した４直線で作られる領域である。また、ノードＲ１００のデータリストは、領域データへのポインタ「Ｄ１」、「Ｄ２」及び「Ｄ３」を含む。各領域の領域データの実体は、領域データ格納部５９に格納されている。
【００３１】
領域データ格納部５９は、複数の領域の領域データを格納する。領域データ格納部５９に格納されるデータの一例を、図８を用いて説明する。図８に示すように、領域データ格納部５９は、領域ＩＤ１２２ａ毎に、データ名１２２ｂ、領域情報１２２ｃ、重複領域１２２ｄ及び遷移領域１２２ｅを対応付けて格納する。
【００３２】
領域ＩＤ１２２ａは、領域を一意に識別可能なＩＤを示す。データ名１２２ｂは、領域ＩＤで示される領域のデータ名を示す。領域情報１２２ｃは、領域ＩＤで示される領域の具体的な範囲を示す。重複領域１２２ｄは、領域ＩＤで示される領域と重複する他の領域の領域ＩＤを示す。また、遷移領域１２２ｅは、当該領域から移動端末３が移動する蓋然性が高い領域の領域ＩＤである。遷移領域１２２ｅのフィールドには、予め定められている個数の領域ＩＤが登録されるものとするが、移動する蓋然性が低い領域しか検出されていない場合には、登録されない場合がある。
【００３３】
例えば、領域ＩＤ１２２ａが「００００１」である場合、データ名１２２ｂとして「Ａ商店Ｘ店舗近辺」、領域情報１２２ｃとして「円領域：緯度３５．４９１、経度１３９．６５０、半径１００ｍ」が登録されている。そして、領域ＩＤ１２２ａが「００００１」である場合の重複領域１２２ｄとして領域ＩＤ「０００３４」が登録され、遷移領域１２２ｅとして領域ＩＤ「００００２」「００００５」「０００１０」が登録されている。
【００３４】
このようなデータを保持していることで、模式的に示せば、図９Ａに示すようなデータが用意されていることになる。すなわち、葉ノードに関連付けられている領域ＩＤデータに含まれる領域ＩＤ毎に、重複領域及び遷移領域を探索できるようになっている。特に遷移領域のデータによって、図９Ｂで矢印Ｍで示すように、領域ＩＤ「１」の領域から領域ＩＤ「２」の領域への遷移の蓋然性が高いことが領域データに反映されている。
【００３５】
また、前回領域データ格納部５９には、図１０に示すようなデータが格納される。図１０に示すように、移動端末３の識別子であるセンサＩＤ毎に、前回この移動端末３が存在すると判定された領域の前回領域ＩＤが登録される。但し、初回は、何も前回領域ＩＤは登録されない。また、例えば所定時間以上変更がなされない場合にはクリアされる場合もある。
【００３６】
さらに、遷移領域データ格納部６１には、図１１に示すようなデータが格納される。この遷移領域データ格納部６１には、領域データ格納部５９に格納される遷移領域のデータの元となるデータが格納される。すなわち、領域ＩＤ毎に、当該領域ＩＤの領域の次に移動したことがある領域のＩＤとその遷移回数とが登録されるようになっている。遷移回数を、その遷移を検出する毎にインクリメントして、上位所定数の領域の領域ＩＤを遷移領域の領域ＩＤとして、領域データ格納部５９における遷移領域１２２ｅの欄に登録する。
【００３７】
次に、図１２乃至図１８を用いて、判定サーバ５の処理内容について説明する。まず、リクエスト受信部５１は、移動端末３から領域判定のリクエストを受信する（図１２：ステップＳ１）。領域判定のリクエストには、図１３に示すようにセンサＩＤ及び位置のデータ（ここでは緯度経度の座標値）が含まれる。
【００３８】
そうすると、リクエスト受信部５１は、ツリー探索部５２にリクエストのデータを出力する。ツリー探索部５２は、まず関連領域判定部５６に対してリクエストのデータを出力し、処理を指示する。具体的には、関連領域判定部５６は、リクエストのデータに含まれるセンサＩＤで前回領域データ格納部５９を検索して前回領域ＩＤを読み出す（ステップＳ３）。
【００３９】
ここで関連領域判定部５６は、ステップＳ３で前回領域ＩＤを読み出すことができたか判断する（ステップＳ５）。前回領域ＩＤを読み出すことができなかった場合には、関連領域判定部５６は、ツリー探索部５２に前回領域ＩＤを用いた処理が行えなかったことを表す通知を出力する。ツリー探索部５２は、関連領域判定部５６から通知を受信すると、ルートからの判定処理を実行する（ステップＳ１９）。ルートからの判定処理については、図１８を用いて後に説明する。そして処理は端子Ｂを介して図１５の処理に移行する。
【００４０】
一方、前回領域ＩＤを読み出すことができた場合には、関連領域判定部５６は、今回のリクエストに含まれる位置座標が前回領域ＩＤで特定される領域内であるか否かを判断する（ステップＳ７）。領域データ格納部５９に格納されている領域データから前回領域ＩＤで特定される領域内に、位置座標が包含されるか否かを判断する。
【００４１】
そして、今回リクエストに含まれる位置座標が前回領域ＩＤの領域内である場合には、関連領域判定部５６は、前回領域ＩＤを判定結果に追加する（ステップＳ１５）。そして、関連領域判定部５６は、前回領域ＩＤを重複領域判定部５７に出力する。重複領域判定部５７は、前回領域ＩＤを処理対象領域ＩＤとして特定し、重複領域チェック処理を実行する（ステップＳ１７）。そして処理は端子Ａを介して図１５の処理に移行する。
【００４２】
重複領域チェック処理については図１４を用いて説明する。重複領域判定部５７は、処理対象領域ＩＤで領域データ格納部５９を検索して重複領域の領域ＩＤを特定する（ステップＳ２１）。複数特定される場合もあれば、全く領域ＩＤが特定されない場合もある。全く領域ＩＤが特定されない場合には、処理は呼出元の処理に戻る。
【００４３】
そして、重複領域判定部５７は、未処理の重複領域ＩＤを１つ選択する（ステップＳ２３）。また、重複領域判定部５７は、選択された重複領域ＩＤの領域が、今回のリクエストに含まれる位置座標を含むか判断する（ステップＳ２５）。領域データ格納部５９に格納されている領域データから選択重複領域ＩＤで特定される領域内に、位置座標が包含されるか否かを判断する。
【００４４】
選択された重複領域ＩＤの領域が今回のリクエストに含まれる位置座標を含まないと判断された場合には、処理はステップＳ２９に移行する。一方、選択された重複領域ＩＤの領域が今回のリクエストに含まれる位置座標を含むと判断された場合には、重複領域判定部５７は、選択された重複領域ＩＤを、判定結果に追加する（ステップＳ２７）。
【００４５】
その後、重複領域判定部５７は、未処理の重複領域ＩＤが存在するか判断する（ステップＳ２９）。未処理の重複領域ＩＤが存在する場合には、処理はステップＳ２３に戻る。一方、未処理の重複領域ＩＤが存在しない場合には、呼出元の処理に戻る。
【００４６】
このように重複領域を予め領域データ格納部５９に用意しておくことで、処理対象領域に重複する領域についても高速に特定でき、処理に係る位置座標を包含するか否かを高速に判断できるようになる。
【００４７】
一方、今回リクエストに含まれる位置座標が前回領域ＩＤの領域内ではない場合には、関連領域判定部５６は、領域データ格納部５９から、前回領域ＩＤに対応付けられている遷移領域ＩＤ及び当該遷移領域ＩＤに対応付けられている重複領域ＩＤを読み出す（ステップＳ９）。そして、関連領域判定部５６は、今回のリクエストに含まれる位置座標が、遷移領域ＩＤで特定される領域及び重複領域ＩＤで特定される領域の少なくとも１つの領域に含まれるか判断する（ステップＳ１１）。今回リクエストに含まれる位置座標がいずれの領域にも含まれない場合には、処理はステップＳ１９に移行する。前回領域ＩＤで特定される領域及び当該領域に重複する領域に今回リクエストに含まれる位置座標が含まれない場合には、Ｒ−Ｔｒｅｅのルートから検索する。
【００４８】
一方、今回のリクエストに含まれる位置座標が、遷移領域ＩＤで特定される領域及び重複領域ＩＤで特定される領域の少なくとも１つの領域に含まれる場合には、関連領域判定部５６は、今回のリクエストに含まれる位置座標を含む領域のうち面積が最も小さい領域を特定し、当該領域の領域ＩＤを判定結果に追加する（ステップＳ１３）。なお、ステップＳ１５又はＳ１３において関連領域判定部５６は、判定結果に追加した領域の領域ＩＤをツリー探索部５２に通知する。その後処理は、ステップＳ１７に移行する。ステップＳ１７では、特定された領域の領域ＩＤを処理対象領域ＩＤとして、重複領域チェック処理を実行する。
【００４９】
次に、端子Ａを介して図１５の処理に移行して、重複領域判定部５７は、遷移領域管理部５３に処理を指示する。そうすると、遷移領域管理部５３は、判定結果に基づき遷移領域設定処理を実行する（ステップＳ３１）。遷移領域設定処理については、図１６を用いて説明する。
【００５０】
遷移領域管理部５３は、前回領域ＩＤで特定される領域から、判定結果に含まれる移動先の領域への遷移回数を１インクリメントする（ステップＳ４１）。なお、前回領域ＩＤで特定される領域から移動しない場合には、移動していないので遷移回数を変更することはない。また、判定結果に複数の領域ＩＤが含まれる場合には、それぞれについて遷移回数を１インクリメントするようにしても良いし、最初に判定結果に追加された領域ＩＤで特定される領域への遷移回数のみをインクリメントするようにしても良い。
【００５１】
そして、遷移領域管理部５３は、前回領域ＩＤについての遷移領域を遷移回数でソートする（ステップＳ４３）。そして、遷移領域管理部５３は、上位所定数の遷移領域が変化すれば、領域データにおける遷移領域の領域ＩＤを、当該上位所定数の遷移領域の領域ＩＤで更新する（ステップＳ４５）。そして処理は呼出元の処理に戻る。
【００５２】
例えば、図１１の例では、領域ＩＤ「００００１」に対応付けられている遷移領域は「００００２」「００００５」「０００１０」となっているが、これが遷移領域設定処理において「００００２」「００００５」「０００１２」というように変化した場合には、領域データ格納部５９における遷移領域の領域ＩＤを「００００２」「００００５」「０００１２」に更新する。
【００５３】
また、ツリー探索部５２は前回領域管理部５４に指示を行って、前回領域管理部５４は、前回領域データ格納部５９においてセンサＩＤに対応付けられる前回領域ＩＤを、ステップＳ１３又はＳ１５で判定結果に追加した領域ＩＤ又はステップＳ１９で最初に判定結果に追加した領域ＩＤで更新する（ステップＳ３３）。
【００５４】
最後に、レスポンス送信部５５は、判定結果に基づき領域データ格納部５９から抽出されるデータを含むレスポンスを、移動端末３へ返信する（ステップＳ３５）。
【００５５】
例えば、図１７に示すようなレスポンスのデータを生成して送信する。図１７の例では、領域ＩＤと、領域データ格納部５９において当該領域ＩＤに対応付けられているデータ名とが含まれる。但し、他のデータベースのデータを抽出するようにしても良い。例えば、クーポンＤＢを設けておき、当該領域ＩＤに対応付けられているクーポンデータを含むようにしても良い。
【００５６】
移動端末３は、このようなレスポンスのデータを受信すると、移動端末３の表示装置に表示したり、印刷装置から印刷したり、その他予め定められている処理を実行する。
【００５７】
このような処理を実行すれば、移動する可能性がある遷移領域が特定されているので、前回領域に含まれていない場合であっても当該遷移領域に含まれていれば、Ｒ−Ｔｒｅｅのルートノードからの探索を回避でき、処理負荷を削減できるようになる。
【００５８】
なお、図１８を用いて、ルートからの判定処理について説明する。ツリー探索部５２は、領域インデックス格納部５８に格納されているデータにおいてルートノードを選択する（図１８：ステップＳ６１）。そして、ツリー探索部５２は、選択したノードが葉ノードであるか否かを判断する（ステップＳ６３）。子ノードへのポインタを有しない場合には、葉ノードである。選択したノードが葉ノードでない場合には、ツリー探索部５２は、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがあるか否かを、領域インデックス格納部５８に格納されている子ノードの矩形領域データから判断する（ステップＳ６５）。選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがない場合には、ツリー探索部５２は、未処理の候補ノードが存在しているか判断する（ステップＳ６９）。未処理の候補ノードが存在している場合には、ツリー探索部５２は、未処理の候補ノードを１つ選択し（ステップＳ７１）、処理はステップＳ６３に戻る。一方、未処理の候補ノードが存在しない場合には、ツリー探索部５２は、領域無しという結果を生成し（ステップＳ７９）、処理は呼出元の処理に戻る。この場合には、前回領域ＩＤも更新されない。
【００５９】
一方、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがある場合には、ツリー探索部５２は、今回のリクエストに含まれる位置座標を含む子ノードを候補ノードに追加する（ステップＳ６７）。そして処理はステップＳ６９に移行する。
【００６０】
一方、ステップＳ６３で、選択したノードが葉ノードであると判断された場合には、ツリー探索部５２は、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域があるか判断する（ステップＳ７３）。個々の領域の範囲については、領域データ格納部５９に格納されているデータに基づき判断する。
【００６１】
選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域が存在しない場合には、処理はステップＳ６９に移行する。一方、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域がある場合には、ツリー探索部５２は、最小面積の領域を特定し、判定結果に当該領域の領域ＩＤを追加する（ステップＳ７５）。１つの領域のみが抽出された場合には当該領域の領域ＩＤを判定結果に追加する。そして、ツリー探索部５２は、重複領域判定部５７に、特定された領域の領域ＩＤを処理対象領域ＩＤとして、重複領域チェック処理を実行させる（ステップＳ７７）。そして処理は呼出元の処理に戻る。
【００６２】
以上のような処理を行えば、前回と同じ領域にいなくても、前回いた領域から移動する可能性が高い遷移領域に移動したか否かを確認した上で、移動していない場合にルートノードからの探索を行うようにしているので、遷移する可能性が高い遷移領域に移動していれば処理負荷を下げることができる。
【００６３】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合がある。また、データ格納部の構成についても、ファイル構成とは一致しない場合もある。さらに、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを並列に実行しても良い。
【００６４】
なお、上で述べた判定サーバ５は、コンピュータ装置であって、図１９に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６５】
以上述べた本実施の形態をまとめると、以下のようになる。
【００６６】
本実施の形態に係る領域判定方法は、（Ａ）移動端末の識別子と位置とを含むリクエストを受信し、（Ｂ）移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、（Ｃ）複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された領域の識別子について格納されている第２の領域の識別子を抽出し、（Ｄ）抽出された第２の領域の識別子から特定される第２の領域内に、リクエストに含まれる位置が含まれるか判断し、（Ｅ）抽出された第２の領域の識別子から特定される第２の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第２の領域の識別子を結果データに追加し、（Ｆ）抽出された第２の領域の識別子から特定される第２の領域内にリクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。
【００６７】
このように第１の領域から移動する可能性がある（より具体的には可能性が高い）第２の領域に含まれているか否かを先に判断することで、ツリー構造をルートから探索する処理を省略できる場合が多くなり、全体の処理負荷を削減できるようになる。
【００６８】
また、本領域判定方法は、（Ｇ）複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、特定された領域の識別子について格納されている第３の領域の識別子を抽出し、（Ｈ）抽出された第３の領域の識別子から特定される第３の領域内に、リクエストに含まれる位置が含まれるか判断する処理を含むようにしても良い。この場合、上で述べた第２の条件が、抽出された第３の領域の識別子から特定される第３の領域内に、リクエストに含まれる位置が含まれないという条件を含む場合もある。
【００６９】
このようにすれば、重複領域のデータを用いればより高速に複数の領域に含まれるか否かを判断できるようになる。
【００７０】
さらに、本領域判定方法は、（Ｉ）複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、抽出された第２の領域の識別子について格納されている第３の領域の識別子を抽出し、（Ｊ）抽出された第３の領域の識別子から特定される第３の領域内に、リクエストに含まれる位置が含まれるか判断し、（Ｋ）抽出された第３の領域の識別子から特定される第３の領域内に、リクエストに含まれる位置が含まれる場合には、抽出された第３の領域の識別子を結果データに追加する処理をさらに含むようにしても良い。このような場合にも、重複領域のデータは有用である。
【００７１】
さらに、本領域判定方法は、（Ｌ）第２の領域の識別子を抽出する処理の前に、特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれるか判断し、（Ｍ）特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれる場合には、特定された領域の識別子を結果データに追加する処理をさらに含むようにしても良い。すなわち、移動していないか否かを先に判断することで処理負荷を削減できる場合もある。
【００７２】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００７３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７４】
（付記１）
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、
抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を、コンピュータに実行させるためのプログラム。
【００７５】
（付記２）
前記複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、特定された前記領域の識別子について格納されている第３の領域の識別子を抽出し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれるか判断する
処理を、前記コンピュータに実行させ、
前記第２の条件が、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれないという条件を含む
付記１記載のプログラム。
【００７６】
（付記３）
前記複数の領域の各々について当該領域と少なくとも一部重複する第３の領域の識別子が格納される第３のデータ格納部から、抽出された前記第２の領域の識別子について格納されている第３の領域の識別子を抽出し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第３の領域の識別子から特定される第３の領域内に、前記リクエストに含まれる位置が含まれる場合には、抽出された前記第３の領域の識別子を前記結果データに追加する
処理をさらに前記コンピュータに実行させるための付記１記載のプログラム。
【００７７】
（付記４）
前記第２の領域の識別子を抽出する処理の前に、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれるか判断し、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれる場合には、特定された前記領域の識別子を結果データに追加する
処理をさらに前記コンピュータに実行させるための付記１乃至３のいずれか１つ記載のプログラム。
【００７８】
（付記５）
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、
抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加し、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を含み、コンピュータにより実行される領域判定方法。
【００７９】
（付記６）
移動端末の識別子と位置とを含むリクエストを受信する受信部と、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第１データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第２の領域の識別子が格納されている第２のデータ格納部から、特定された前記領域の識別子について格納されている第２の領域の識別子を抽出し、抽出された前記第２の領域の識別子から特定される第２の領域内に、前記リクエストに含まれる位置が含まれるか判断し、抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第２の領域の識別子を結果データに追加する処理部と、
抽出された前記第２の領域の識別子から特定される第２の領域内に前記リクエストに含まれる位置が含まれないという第１の条件を含む第２の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する探索部と、
を有する情報処理装置。
【符号の説明】
【００８０】
５１  リクエスト受信部
５２  ツリー探索部
５３  遷移領域管理部
５４  前回領域管理部
５５  レスポンス送信部
５６  関連領域判定部
５７  重複領域判定部
５８  領域インデックス格納部
５９  領域データ格納部
６０  前回領域データ格納部
６１  遷移領域データ格納部
【図１Ａ】
2014191720.tif 000003
【図１Ｂ】
2014191720.tif 000004
【図２】
2014191720.tif 000005
【図３】
2014191720.tif 000006
【図４】
2014191720.tif 000007
【図５】
2014191720.tif 000008
【図６】
2014191720.tif 000009
【図７】
2014191720.tif 000010
【図８】
2014191720.tif 000011
【図９Ａ】
2014191720.tif 000012
【図９Ｂ】
2014191720.tif 000013
【図１０】
2014191720.tif 000014
【図１１】
2014191720.tif 000015
【図１２】
2014191720.tif 000016
【図１３】
2014191720.tif 000017
【図１４】
2014191720.tif 000018
【図１５】
2014191720.tif 000019
【図１６】
2014191720.tif 000020
【図１７】
2014191720.tif 000021
【図１８】
2014191720.tif 000022
【図１９】
2014191720.tif 000023