(57)【要約】【課題】多数の端末から所定距離以内にある端末を簡便に判別できない。【解決手段】サーバ２０は、緯度および経度を含む位置を算出する複数の端末から位置を受信する通信部２３と、通信部２３が受信した位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに端末が属するかを判別するエリア判別処理部２１ａと、一の端末が属するエリアおよび他の端末が属するエリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部とを備える。【選択図】図１
2016103699.tif 000002
【特許請求の範囲】
【請求項１】
緯度および経度を含む位置を算出する複数の端末から前記位置を受信する通信部と、
前記通信部が受信した位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに前記端末が属するかを判別するエリア判別部と、
一の端末が属する前記エリアおよび他の端末が属する前記エリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部とを備える、情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記エリアには、前記隔たりの大きさが算出可能な識別子が付与され、
前記隔たり判別部は、前記エリアの識別子を用いて前記エリアの間の隔たりの大きさを算出する情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置において、
前記隔たり判別部が所定の関係にあると判断した前記一の端末および他の端末の距離を算出し、算出した距離が所定の関係にあることを判別する距離判別部をさらに備える情報処理装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の情報処理装置において、
前記位置には当該位置を取得した時刻である位置取得時刻が付随しており、
前記隔たり判別部は、前記位置取得時刻の差が所定の範囲内である前記それら端末を対象として処理を行う情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
前記情報処理装置は、
前記通信部が受信した位置取得時刻が所定の時間範囲内であれば同一の時刻識別子を付与する時刻識別子付与部をさらに備え、
前記隔たり判別部は、前記時刻識別子付与部の付与した前記時刻識別子が同一である前記それら端末を対象として処理を行う情報処理装置。
【請求項６】
請求項１乃至５のいずれか１項に記載の情報処理装置において、
前記エリアの大きさを指定するエリアサイズ指定部をさらに備える情報処理装置。
【請求項７】
ネットワークを介して接続されたサーバおよび複数の端末を備える端末間隔たり判別システムであって、
前記端末の緯度および経度を含む位置を算出する位置算出部と、
緯度および経度に基づき定義される複数のエリアのうち、算出された前記位置に基づき当該端末の属する前記エリアを判別するエリア判別部と、
前記端末の属する前記エリアおよび他の前記端末の属する前記エリアの隔たりの大きさに基づき、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部とを備える、端末間隔たり判別システム。
【請求項８】
請求項７に記載の端末間隔たり判別システムにおいて、
前記隔たり判別部は前記サーバに備えられ、
前記位置算出部および前記エリア判別部は前記端末に設けられ、
前記端末は判別した前記エリアを前記サーバに送信する端末間隔たり判別システム。
【請求項９】
請求項７に記載の端末間隔たり判別システムにおいて、
前記隔たり判別部および前記エリア判別部は前記サーバに備えられ、
前記位置算出部は前記端末に設けられ、
前記端末は算出した前記位置を前記サーバに送信する端末間隔たり判別システム。
【請求項１０】
端末が算出する緯度および経度を含む位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに前記端末が属するかを判別し、
前記端末の属する前記エリアおよび他の前記端末の属する前記エリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する、端末間隔たり判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、端末間隔たり判別システム、および端末間隔たり判別方法に関する。
【背景技術】
【０００２】
特許文献１には、ＧＰＳにより算出した緯度・経度を用いて計算式により端末間の距離をそれぞれ算出し、所定距離以内にある端末を判別するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００４−５３３７３９
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、判別対象である全ての端末同士の距離を算出して所定距離内にある端末を判別するため、多数の端末から所定距離以内にある端末を簡便に判別できない。
【課題を解決するための手段】
【０００５】
本発明による情報処理装置は、緯度および経度を含む位置を算出する複数の端末から位置を受信する通信部と、通信部が受信した位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに端末が属するかを判別するエリア判別部と、一の端末が属するエリアおよび他の端末が属するエリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部とを備える。
本発明による端末間隔たり判別システムは、ネットワークを介して接続されたサーバおよび複数の端末を備える。端末間隔たり判別システムは、端末の緯度および経度を含む位置を算出する位置算出部と、緯度および経度に基づき定義される複数のエリアのうち、算出された位置に基づき当該端末の属するエリアを判別するエリア判別部と、端末の属するエリアおよび他の端末の属するエリアの隔たりの大きさに基づき、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部とを備える。
本発明による端末間隔たり判別方法は、端末が算出する緯度および経度を含む位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに端末が属するかを判別し、端末の属するエリアおよび他の端末の属するエリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する。
【発明の効果】
【０００６】
本発明によれば、端末間距離を演算することなく、多数の端末から所定の隔たりをもつ端末、たとえば所定距離以内にある端末、あるいは所定距離以上離れている端末を簡便に判別できる。
【図面の簡単な説明】
【０００７】
【図１】端末間距離判別システムの構成を示すブロック図である。
【図２】位置・時刻データベースの一例を示す図である。
【図３】位置・時刻・範囲データベースの一例を示す図である。
【図４】すれ違い情報データベースの一例を示す図である。
【図５】エリア定義の一例を示す図である。
【図６】エリアおよびエリア識別子の一例を示す図である。
【図７】端末間距離判別システムにおけるデータの流れを示す図である。
【図８】エリア判別処理部の動作を表すフローチャートである。
【図９】すれ違い判別処理部の動作を表すフローチャートである。
【図１０】図９に示すフローチャートのサブルーチンである。
【図１１】変形例２における、すれ違い判別処理部の動作を表すフローチャートである。
【図１２】変形例３における、すれ違い判別処理部のサブルーチンである。
【図１３】変形例４における、端末間距離判別システムの構成を示すブロック図である。
【図１４】変形例５における、エリア識別子の一例を示す図である。
【発明を実施するための形態】
【０００８】
（第１の実施の形態）
以下、図１〜１０を参照して、本発明による端末間隔たり判別システムの一実施形態を説明する。
【０００９】
図１は、端末間隔たり判別システムの一実施形態である端末間距離判別システム１の構成を示すブロック図である。端末間距離判別システム１は、複数の携帯端末１０と、サーバ２０とから構成される。複数の携帯端末１０は広範囲に点在している。携帯端末１０およびサーバ２０はネットワークＸに接続されており、相互に通信を行う。
携帯端末１０は、たとえば携帯電話であり、処理を統括する演算処理部１１と、アプリケーションプログラムを記録する記憶部１２と、サーバ２０と通信する通信部１３と、自己位置、すなわち自己位置算出部１４と、操作部１５と、表示部１６とを備える。演算処理部１１と、記憶部１２と、通信部１３と、自己位置算出部１４と、操作部１５と、表示部１６とは、通信用バスにより接続される。
【００１０】
演算処理部１１は、ＣＰＵ、ＲＯＭ、およびＲＡＭを備え、記憶部１２に記憶されているプログラムをＲＡＭに展開して実行する。演算処理部１１は時計機能を有しており、現在時刻を出力できる。自己位置算出部１４の有する現在時刻算出機能により時間が適宜補正されるため、演算処理部１１が出力する現在時刻は正確である。演算処理部１１は、所定時間ごと、たとえば１０分ごとに自己位置算出部１４に自己位置算出の指令を出力する。演算処理部１１は、自己位置算出部１４が算出した自己位置、固有の識別子である端末ＩＤ、および現在時刻をサーバ２０に送信する。
【００１１】
記憶部１２はフラッシュメモリから構成され、記憶部１２にはアプリケーションプログラム、および個々の携帯端末に固有の識別子である端末ＩＤが保存される。通信部１３は、ネットワークＸを介してサーバ２０および他の携帯端末１０と通信を行う。自己位置算出部１４は、たとえばＧＰＳ受信機である。自己位置算出部１４は、演算処理部１１からの要求に応じて複数の衛星から電波を受信することにより自己位置、すなわち携帯端末１０が位置する緯度および経度を算出する。この緯度および経度は、演算処理部１１に出力される。また、自己位置算出部１４は、自己位置を算出する過程で正確な現在時刻を取得できるため、この現在時刻により演算処理部１１の時計が示す現在時刻を修正する。操作部１５は、たとえば押しボタンであり、ユーザの入力を演算処理部１１に出力する。表示部１６は、たとえば液晶ディスプレイであり、演算処理部１１からの指示に従い映像を表示する。
【００１２】
サーバ２０は、処理を統括する演算処理部２１と、データの集合体であるデータベースが格納される記憶部２２と、通信部２３とを備える。演算処理部２１と、記憶部２２と、通信部２３とは通信用バスにより接続される。
演算処理部２１は、ＣＰＵ、ＲＯＭ、およびＲＡＭを備え、ＲＯＭに保存されるプログラムをＲＡＭに展開して実行する。図１は、演算処理部２１により実行される主な機能を概念的に示す。演算処理部２１は、携帯端末１０から受信したデータに前処理を施すエリア判別処理部２１ａと、ある携帯端末１０と他の携帯端末１０が所定距離内にあるかを判別するすれ違い判別処理部２１ｂと、アプリケーションサービス処理部２１ｃとを備える。
【００１３】
エリア判別処理部２１ａは、所定時間ごと、たとえば１０分ごとに位置・時刻データベース２２ａを１レコードずつ読込み、各レコードにエリア識別子、および時間識別子を付与して、位置・時刻・範囲データベース２２ｂに保存する。処理が完了したレコードは、位置・時刻データベース２２ａから削除される。すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから所定のデータが入力されると動作を開始する。すれ違い判別処理部２１ｂは、位置・時刻・範囲データベース２２ｂを読込み、携帯端末１０同士の距離が所定の距離以下である携帯端末１０を判別し、判別結果をすれ違い情報データベース２２ｃに保存する。アプリケーションサービス処理部２１ｃは、すれ違い判別処理部２１ｂに指令を出力して、携帯端末１０同士の距離が所定の距離以下である携帯端末１０の組合せをすれ違い情報データベース２２ｃに出力させる。そして、すれ違い情報データベース２２ｃに記載された携帯端末１０を処理対象としてアプリケーションプログラムを実行する。
【００１４】
記憶部２２は、たとえば磁気ディスクであり、記憶部２２には、位置・時刻データベース２２ａと、位置・時刻・範囲データベース２２ｂと、すれ違い情報データベース２２ｃと、エリア定義２２ｄとが保存される。位置・時刻データベース２２ａと、位置・時刻・範囲データベース２２ｂと、すれ違い情報データベース２２ｃについては、後に図２〜４を参照して詳しく説明する。
【００１５】
位置・時刻データベース２２ａには、通信部２３が携帯端末１０から受信した情報が格納される。位置・時刻データベース２２ａは、所定時間ごとに実行されるエリア判別処理部２１ａによりその全体が読み込まれ、エリア判別処理部２１ａによる処理が完了すると読み込まれたデータは削除される。すなわち、位置・時刻データベース２２ａに格納されるレコード数は、携帯端末１０からデータを受信するごとに増加し、所定時間が経過するごとにゼロに戻る。
【００１６】
位置・時刻・範囲データベース２２ｂには、エリア判別処理部２１ａが作成したレコードが保存される。位置・時刻・範囲データベース２２ｂは、すれ違い判別処理部２１ｂにより一部または全部が読み込まれる。ただし、位置・時刻データベース２２ａとは異なり、読み込まれてもレコードは削除されない。
すれ違い情報データベース２２ｃには、すれ違い判別処理部２１ｂが作成したレコードである、所定の距離以内にいると判断された携帯端末１０の組合せに関する情報が保存される。すれ違い情報データベース２２ｃは、アプリケーションサービス処理部２１ｃにより読み込まれ、不要になるとアプリケーションサービス処理部２１ｃにより格納されたレコード全体が削除される。
【００１７】
エリア定義２２ｄには、エリア、およびエリア識別子の定義が記載される。エリアとは、地図をメッシュ状に分割した領域である。エリア識別子は緯度を表す符号と経度を表す符号の組合せで表現され、符号には数値やアルファベットが用いられる。エリア識別子は、メッシュの配置順に数値やアルファベットを辞書順の並びで使用しているので、エリア間の隔たりの大きさを算出できる。本実施の形態では、エリア間の隔たりの大きさは、緯度方向のエリア間の距離と経度方向のエリア間の距離のうち大きい方と定義する。
通信部２３は、ネットワークＸを介して携帯端末１０と通信を行う。
【００１８】
（データベース）
図２〜４を用いて、位置・時刻データベース２２ａと、位置・時刻・範囲データベース２２ｂと、すれ違い情報データベース２２ｃの一例を説明する。
図２は、位置・時刻データベース２２ａの一例を示す図である。位置・時刻データベース２２ａは、複数のレコードから構成され、１レコードは、端末ＩＤと、位置情報である緯度および経度と、位置取得時刻とから構成される。端末ＩＤは、携帯端末１０を特定する固有のＩＤであり、位置情報は携帯端末１０の自己位置算出部１４により算出された緯度および経度、位置取得時刻は自己位置算出部１４が位置情報を取得した日時である。図２に示す例では、端末ＩＤが１０００１〜１０００４である４つの端末に関する４つのレコードが示されている。前述のように、位置・時刻データベース２２ａに保存されるデータは、所定時間ごとに読み込まれて削除されるため、前回、エリア判別処理部２１ａによる処理が終了した後に携帯端末１０から受信したデータのみが保存される。
【００１９】
図３は、位置・時刻・範囲データベース２２ｂの一例を示す図である。位置・時刻・範囲データベース２２ｂは、複数のレコードから構成され、１レコードは、端末ＩＤと、位置情報と、位置取得時刻と、エリア識別子と、時刻識別子と、から構成される。このうち、端末ＩＤと、位置情報と、位置取得時刻は、位置・時刻データベース２２ａに保存されるものと同一である。エリア識別子は、当該位置情報により示される位置が属するエリアを示す識別子である。エリア識別子は、エリア判別処理部２１ａにより算出される。図３に示す例では、緯度をエリア識別子の前半部分、経度をエリア識別子の後半部分に対応させている。後に説明するエリア定義２２ｄの記述にしたがい、緯度は４２度から１度大きくなるごとにａａａからａａｂ、ａａｃ、と順番に大きくし、経度は１４０度から１度大きくなるごとに、００１、００２、００３と順番に大きくしている。時刻識別子は、簡易的に時刻の同一性を判断するための識別子であり、エリア判別処理部２１ａが各レコードに付与する。エリア判別処理部２１ａは、所定時間ごと、たとえば１０分ごとに位置・時刻データベース２２ａに保存されている全レコードを対象に処理を行い、処理を開始する時刻に基づき識別子を作成する。図３に示す例では、エリア判別処理部２１ａが１０分毎に実行されることから、一番上と一番下に示す８時３６分と８時３１分に位置が取得されたデータに対して、「２０１４−１０−１０＿０８３」という同一の時刻識別子が付与されている。
【００２０】
図４は、すれ違い情報データベース２２ｃの一例を示す図である。すれ違い情報データベース２２ｃは、複数のレコードから構成され、１レコードは、第１端末ＩＤと、第１端末位置と、第２端末ＩＤと、第２端末位置と、位置取得時刻と、から構成される。第１端末ＩＤと、第１端末位置、および位置取得時刻は、第１の端末に関する情報であり、第２端末ＩＤと、第２端末位置は、第１の端末とすれ違い関係にあると判断された第２の端末に関する情報である。
【００２１】
（エリア識別子）
図５〜６を用いてエリア識別子、およびエリア間の隔たりの大きさを説明する。
図５は、エリア定義２２ｄの一例を示す図である。図５の上段は、４０．００度が基準となる緯度であり、エリアの緯度方向の幅、すなわちメッシュのピッチは１度であることを示している。また、４０度〜４１度に対応する符号が「ａａａ」であり、４１度〜４２度は「ａａｂ」である。図５の下段も同様に経度について１４０．００度が基準であり、エリアの経度方向の幅は１度であることを示している。また、１４０度〜１４１度に対応する符号が「００１」であり、１４１度〜１４２度は「００２」である。
【００２２】
図６は、図５に示すエリア定義２２ｄにしたがって作成されたエリア、およびエリア識別子の例を示す図である。図５に示すとおり、「幅」は緯度および経度の両方が１度なので、図６に示すメッシュの緯度および経度の幅は１度である。そして、緯度が１度大きくなるごとに緯度の符号は「ａａａ」、「ａａｂ」、「ａａｃ」、、と変化し、経度が１度大きくなるごとに経度の符号は「００１」、「００２」、「００３」、、と変化する。
【００２３】
本明細書では、エリア間の隔たりの大きさは、緯度方向のエリア間の距離と経度方向のエリア間の距離のうち大きい方と定義する。たとえば、エリア「ａａａ−００１」とエリア「ａａａ−００３」は、緯度の符号が同一で経度の符号が「００１」と「００３」であり両者には２の差があることから、エリア間の隔たりの大きさは２である。同様に、エリア「ａａａ−００１」とエリア「ａａｄ−００２」は、経度方向には１の差があり、緯度の符号が「ａａａ」と「ａａｄ」であり辞書順で「ａ」と「ｄ」は３の差があることから、１と３のうち大きい方の３がエリア間の隔たりの大きさである。すなわち、図３に点線で示すエリア「ａａｄ−００３」を基準とするエリア間の隔たりの大きさ１の範囲は、図６で一点鎖線で示す「ａａｃ−００２」〜「ａａｅ−００４」の範囲であり、９個のエリアが含まれる。
【００２４】
（データの流れ）
図７を用いて端末間距離判別システムにおけるデータの流れを説明する。
図７は、携帯端末１０が取得した自己位置を用いてアプリケーションサービス処理部２１ｃが処理を行う際のデータの流れを示す概念図である。
携帯端末１０の自己位置算出部１４は所定時間ごとに自己位置を算出し、算出した自己位置を通信部１３に出力する（図７のＰ１）。通信部１３は、算出された自己位置とともに、自己位置を取得した位置取得時刻、および当該携帯端末１０の端末ＩＤをサーバ２０に送信する（図７のＰ２）。
【００２５】
サーバ２０の通信部２３は、携帯端末１０から受信するたびに、受信した自己位置、位置取得時刻、端末ＩＤを位置・時刻データベース２２ａに保存する（図７のＰ３）。エリア判別処理部２１ａは、所定時間ごとに位置・時刻データベース２２ａの全体を読み込み（図７のＰ４）、エリア識別子、および時刻識別子を各レコードに付与して位置・時刻・範囲データベース２２ｂに保存する（図７のＰ５）。
【００２６】
すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから端末絞込み条件、およびすれ違い判別条件を入力されると動作を開始する（図７のＰ６）。すれ違い判別処理部２１ｂは、位置・時刻・範囲データベース２２ｂのデータを読み込み（図７のＰ７）、所定の条件を満たす携帯端末１０の組合せを抽出し、すれ違い情報データベース２２ｃに出力する（図７のＰ８）。アプリケーションサービス処理部２１ｃの出力する端末絞込み条件とは、携帯端末１０の位置取得時刻、または時刻識別子の条件である。アプリケーションサービス処理部２１ｃの出力する、すれ違い判別条件とは、すれ違い状態にあると判断するエリア数、およびすれ違い状態にあると判断する距離である。
【００２７】
アプリケーションサービス処理部２１ｃは、すれ違い情報データベース２２ｃを読込み（図７のＰ９）、所定の処理を行い携帯端末１０へ通信部２３を介して各種データを送信する（図７のＰ１０、Ｐ１１）。
携帯端末１０の位置情報、および位置取得時刻は、位置・時刻・範囲データベース２２ｂに識別子が付与された状態で保存されているので、すれ違い判別処理部２１ｂは効率よく条件に該当する携帯端末１０を抽出できる。
【００２８】
（エリア判別処理）
図８は、エリア判別処理部２１ａの動作を表すフローチャートである。以下に説明する各ステップの実行主体は、演算処理部２１のＣＰＵである。
【００２９】
ステップＳ１０１において、エリア判別処理部２１ａは、現在時刻を取得しこれをもとに時刻識別子を作成する。時刻識別子は、位置取得時刻の異同および連続性を簡易に識別するものであり、エリア判別処理部２１ａが一度に処理したデータには同一の時刻識別子を付与する。たとえば、現在時刻が２０１４年１０月１０日８時１１分である場合に、エリア判別処理部２１ａの実行間隔が１０分ごとであれば、実行するごとに識別子が１ずつ増加するように、たとえば「２０１４−１０−１０＿０８３」とする。同様に実行間隔が１時間ごとであれば、たとえば「２０１４−１０−１０＿０８」とする。次にステップＳ１０２に進む。
【００３０】
ステップＳ１０２において、エリア判別処理部２１ａは、位置・時刻データベース２２ａから１レコード、すなわち１組の端末ＩＤ、位置情報、位置取得時刻を読み込む。次にステップＳ１０３に進む。
ステップＳ１０３において、エリア判別処理部２１ａは、エリア定義２２ｄの記載に基づき、ステップＳ１０２において読込んだ位置情報からエリア識別子を算出し、ステップＳ１０４に進む。たとえば、エリア定義２２ｄが図５に示すものであり、緯度が４１．２度、経度が１４２．６度の場合は、基準と幅から緯度方向は２エリア目、経度方向は３エリア目なので、エリア識別子は「ａａｂ−００３」となる。
【００３１】
ステップＳ１０４において、エリア判別処理部２１ａは、ステップＳ１０１において決定した時刻識別子、ステップＳ１０２において読込んだ端末ＩＤ、位置情報、および位置取得時刻、ステップＳ１０３において算出したエリア識別子を位置・時刻・範囲データベース２２ｂに格納し、ステップＳ１０５に進む。
ステップＳ１０５において、エリア判別処理部２１ａは、位置・時刻データベース２２ａに格納されている全てのレコードを読み込んだか否かを判断する。全てのレコードを読み込んだと判断する場合は図８のフローチャートで示されるプログラムを終了し、全てのレコードを読み込んでいないと判断する場合はステップＳ１０２に戻る。
【００３２】
（すれ違い判別処理）
図９〜１０は、すれ違い判別処理部２１ｂの動作を表すフローチャートである。すれ違い判別処理部２１ｂは、動作指令の条件として、アプリケーションサービス処理部２１ｃから、端末絞込み条件、およびすれ違い判別条件を入力されると動作を開始する。端末絞込み条件とは、携帯端末１０の位置取得時刻、または時刻識別子の条件である。すれ違い判別条件とは、すれ違い状態にあると判断するエリア数、およびすれ違い状態にあると判断する距離である。以下ではアプリケーションサービス処理部２１ｃから時刻識別子を用いて端末の絞り込み条件が指定されたとして説明する。以下に説明する各ステップの実行主体は、演算処理部２１のＣＰＵである。
【００３３】
ステップＳ２０１において、すれ違い判別処理部２１ｂは、位置・時刻・範囲データベース２２ｂを検索し、アプリケーションサービス処理部２１ｃから指定された時刻識別子を有するレコードを抽出する。たとえば、時刻識別子が「２０１４−１０−１０＿０８０」、「２０１４−１０−１０＿０８１」、または「２０１４−１０−１０＿０８２」のいずれかであるレコードを抽出する。次に、ステップＳ２０２に進む。
【００３４】
ステップＳ２０２において、すれ違い判別処理部２１ｂは、ステップＳ２０１において抽出したレコードをＴａｒｇｅｔＳｅｔとして一時的に保存し、ステップＳ２０３に進む。ここで、ステップＳ２０１において抽出されたレコード数、すなわちＴａｒｇｅｔＳｅｔのレコード数はｎであるとする。
ステップＳ２０３において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔに保存されているレコードのうち、現在の処理対象レコードを表す変数であるｉに１を代入し、ステップＳ２０４に進む。
【００３５】
ステップＳ２０４において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔからｉ番目のレコードを読込みステップＳ２０５に進む。
ステップＳ２０５において、すれ違い判別処理部２１ｂは、ステップＳ２０４において読込んだレコードのエリア識別子により特定されるエリアを基準として、アプリケーションサービス処理部２１ｃから指定されたエリア数以内のエリア識別子を算出する。たとえば、図３に示す例において、基準となるエリアのエリア識別子が「ａａｄ−００３」であり、アプリケーションサービス処理部２１ｃから指定されたエリア数が１の場合には、「ａａｃ−００２」、「ａａｃ−００３」、「ａａｃ−００４」、「ａａｄ−００２」、「ａａｄ−００３」、「ａａｄ−００４」、「ａａｅ−００２」、「ａａｅ−００３」、「ａａｅ−００４」、の９個が算出される。
【００３６】
ステップＳ２０６において、すれ違い判別処理部２１ｂは、ステップＳ２０５において算出したエリア識別子をＡｒｅａＳｅｔとして一時的に保存し、ステップＳ２０７に進む。
ステップＳ２０７において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔのｉ番目より後のレコードを対象にして、エリア識別子がＡｒｅａＳｅｔのいずれかと一致するレコードを抽出してステップＳ２０８に進む。ここで検索対象をｉ番目より後に限定しているのは、距離が所定距離以内である携帯端末１０の組合せが２重に抽出されるのを防止するためである。
【００３７】
ステップＳ２０８において、すれ違い判別処理部２１ｂは、ステップ２０７において抽出したレコードをＳｕｂＴａｒｇｅｔとして一時的に保存し、ステップＳ２０９に進む。ここで、ＳｕｂＴａｒｇｅｔのレコード数はｍとする。
ステップＳ２０９において、すれ違い判別処理部２１ｂは、図１０のフローチャートにより動作が表される距離判別処理を行い、ステップＳ２１０に進む。当該処理は後に図１０を用いて説明する。
【００３８】
ステップＳ２１０において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔの処理対象レコードを表す変数であるｉがＴａｒｇｅｔＳｅｔのレコード数であるｎよりも小さいか否かを判断する。ｎよりも小さいと判断する場合はステップＳ２１１に進み、ｎと同一であると判断する場合は図９のフローチャートを終了する。
ステップＳ２１１において、すれ違い判別処理部２１ｂは、変数ｉに１を追加して、すなわちＴａｒｇｅｔＳｅｔの処理対象のレコードを１つずらして、ステップＳ２０４に戻る。
【００３９】
図１０は、図９のステップＳ２０９で行われる距離判別処理の詳細を表すフローチャートである。
ステップＳ２９１において、すれ違い判別処理部２１ｂは、ＳｕｂＴａｒｇｅｔの処理対象レコードを表す変数であるｊに１を代入してステップＳ２９２に進む。
ステップＳ２９２において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔのｉ番目のレコードと、ＳｕｂＴａｒｇｅｔのｊ番目のレコードとから緯度と経度を抽出し、ステップＳ２９３に進む。
【００４０】
ステップＳ２９３において、すれ違い判別処理部２１ｂは、ステップＳ２９２において抽出した２組の緯度と経度、および以下の式１を用いて２点間の距離を算出する。
（式１）
Ｄ＝ｓｑｒｔ（（Ｍ＊ｄＰ）＊（Ｍ＊ｄＰ）＋（Ｎ＊ｃｏｓ（Ｐ）＊ｄＲ）＊（Ｎ＊ｃｏｓ（Ｐ）＊ｄＲ））  
【００４１】
ただし、式１に用いる変数は以下のとおりである。
Ｄ：２点間の距離（ｍ）、Ｐ：２点の緯度の平均値、ｄＰ：２点の緯度の差、ｄＲ：２点の経度差  
Ｍ＝６３３４８３４／ｓｑｒｔ（（１−０．００６６７４＊ｓｉｎ（Ｐ）＊ｓｉｎ（Ｐ））＾３）  
Ｎ＝６３７７３９７／ｓｑｒｔ（１−０．００６６７４＊ｓｉｎ（Ｐ）＊ｓｉｎ（Ｐ））
なお、式１におけるｓｑｒｔ（ ）は平方根関数、ｓｉｎ（ ）は正弦関数、ｃｏｓ（ ）は余弦関数である。また、Ｍは子午線曲率半径を、Ｎは卯酉線曲率半径を表す。
その後、ステップＳ２９４に進む。
【００４２】
ステップＳ２９４において、すれ違い判別処理部２１ｂは、ステップＳ２９３において算出した距離が、アプリケーションサービス処理部２１ｃから指定された、すれ違い状態にあると判断する距離以内か否かを判断する。指定された距離以内であると判断する場合はステップＳ２９５に進み、指定された距離、すなわちすれ違いと判断する閾値より大きいと判断する場合はステップＳ２９６に進む。
【００４３】
距離が閾値より小さいと判断されたとき、ステップＳ２９５において、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔのｉ番目のレコードに記載の端末ＩＤ、位置情報、位置取得時刻、およびＳｕｂＴａｒｇｅｔのｊ番目のレコードに記載の端末ＩＤ、位置情報をすれ違い情報データベース２２ｃに格納し、ステップＳ２９６に進む。
ステップＳ２９６において、すれ違い判別処理部２１ｂは、ＳｕｂＴａｒｇｅｔの処理対象レコードを表す変数であるｊがＳｕｂＴａｒｇｅｔのレコード数であるｍ以下であるか否かを判断する。ｍ以下であると判断する場合はステップＳ２９７に進み、ｍより大きいと判断する場合は図１０のフローチャートを終了する。
ステップＳ２９７において、すれ違い判別処理部２１ｂは、変数ｊに１を追加して、すなわちＳｕｂＴａｒｇｅｔの処理対象のレコードを１つずらして、ステップＳ２９２に戻る。
【００４４】
（アプリケーション）
サーバ２０のアプリケーションサービス処理部２１ｃは、携帯端末１０の相互の距離を利用した様々なアプリケーションを実行することができる。
たとえば、携帯端末１０にインストールされたクライアントプログラムと、サーバ２０のアプリケーションサービス処理部２１ｃが協調動作を行って進行するゲームに用いられる。この種のゲームでは、クライアントプログラムを実行している携帯端末１０同士がすれ違うと、対戦やアイテム交換が発生する。
【００４５】
上述した実施の形態によれば、次の作用効果が得られる。
（１）サーバ２０は、緯度および経度を含む位置を算出する複数の端末から位置を受信する通信部２３と、通信部２３が受信した位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに端末が属するかを判別するエリア判別処理部２１ａと、一の端末が属するエリアおよび他の端末が属するエリアの間の隔たりの大きさを算出し、それら端末の間の隔たりの大きさが所定の関係にあることを判別する隔たり判別部（図８のステップＳ２０７）とを備える。
このようなサーバ２０によれば、各端末の属するエリアの分類に基づき端末同士の隔たりを判断するので、判別対象となる端末が多数であっても所定距離以内にある端末や所定距離以上離れている端末同士を簡便に判別することができる。サーバ２０を含む端末間距離判別システム１が対象とする端末数に制限はなく数億の端末同士のすれ違いを判定することもできる。サーバ２０を含む端末間距離判別システム１は、端末同士の距離を逐一計算する方式に比べると、処理対象とする端末の数が多いほど計算量を削減できる利点が大きい。
【００４６】
（２）サーバ２０のエリア判別処理部２１ａにより、エリアには、隔たりの大きさが算出可能なエリア識別子が付与される。隔たり判別部は、エリア識別子を用いてエリアの間の隔たりの大きさを算出する（図８のステップＳ２０７）。
そのため、エリア識別子の命名規則を利用して数回の和差算によりエリア間の隔たりの大きさを算出できる。
【００４７】
（３）サーバ２０は、隔たり判別部（図８のステップＳ２０７）が所定の関係にあると判断した一の端末および他の端末の距離をたとえば式１により算出し、算出した距離が所定の関係にあること、すなわち距離他閾値より小さいか大きいかを判別する距離判別部（図８のステップＳ２０９）を備える。
そのため、エリア識別子を利用して効率よく候補を絞った上で、詳細な距離を算出して厳密に所定の距離以内にあるかを判断することができる。
【００４８】
以上説明した実施の形態を以下のように変形して実施することができる。
（１）上述した実施の形態では、エリアはエリア定義２２ｄに従い算出されたが、エリアの定義方法はこれに限定されない。各エリアの緯度および経度の最小値、および最大値を記したルックアップテーブルを用意し、これを参照して携帯端末１０の属するエリアを決定してもよい。
（２）上述した実施の形態では、距離を算出してすれ違いを判定する端末を絞り込むために、エリア間の隔たりの大きさをエリア数で評価して絞り込むようにしたが、エリア間の隔たりの大きさの評価はこれに限定されない。各エリアの中心の緯度、および経度を算出し、実施の形態において説明した式１を用いてエリア間の隔たりの大きさを具体的な距離として評価してもよい。
【００４９】
（３）上述した実施の形態では、携帯端末１０は携帯電話として説明したが、携帯端末１０はこれに限定されない。携帯端末１０は、タブレット端末、ノート型コンピュータ、車載端末など、持ち運びまたは移動が可能な通信機器であればよい。さらに、自転車や自動車、航空機など、移動体と一体に構成されていてもよい。
（４）上述した実施の形態では、式１を用いて２点間の距離を算出したが、距離の算出方法は式１に限定されない。より簡易な近似式を用いてもよい。
【００５０】
（５）アプリケーションサービス処理部２１ｃにおいて実行されるアプリケーションはゲームに限定されない。すれ違い状態にあるユーザ同士で情報交換を行うアプリケーションでもよいし、過去に所定の位置においてすれ違い状態にあった携帯端末の移動軌跡を追跡可能なアプリケーションでもよい。
（６）上述した実施の形態では、すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから、すれ違い状態にあると判断するエリア数を含む情報を入力されると動作を開始したが、すれ違い状態にあると判断するエリア数が入力されない場合にも動作を開始してもよい。すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから入力された、すれ違い状態にあると判断する距離、およびエリア定義２２ｄを用いて、すれ違い状態にあると判断するエリア数を算出してもよい。
【００５１】
（７）上述した実施の形態では、隔たりの小さい、あるいは所定の距離以内にある携帯端末の組合せを判別したが、エリアの判別、および距離の判別において大小関係を逆に評価することにより、所定の距離以上離れた位置にある携帯端末の組合せの判別を行ってもよい。
（８）アプリケーションサービス処理部２１ｃは、すれ違い判別処理部２１ｂへ出力する端末絞込み条件に、エリアの条件を含めてもよい。たとえば、図９のステップＳ２０１において、抽出するレコードの位置情報が指定されたエリアに含まれることを条件に追加してもよい。すなわち、上述した実施の形態では、位置・時刻・範囲データベース２２ｂに格納されているレコードに時間的条件を設けてＴａｒｇｅｔＳｅｔを作成したが、さらに空間的条件を設けてＴａｒｇｅｔＳｅｔを作成してもよい。
【００５２】
（変形例１）
上述した実施の形態では、サーバ２０にエリア判別処理部が備えられていたが、エリア判別処理部の機能を、携帯端末１０に備えるようにしてもよい。この例では、携帯端末１０のエリア判別処理部は、自己位置、端末ＩＤ、および現在時刻に加えて、エリア識別子、および時刻識別子をサーバ２０に送信することができる。
この変形例１によれば、以下の作用効果が得られる。
（１）端末間距離判別システム１は、ネットワークＸを介して接続されたサーバ２０および複数の携帯端末１０を備える。このシステムは、携帯端末１０の緯度および経度を含む位置を算出する位置算出部１４と、緯度および経度に基づき定義される複数のエリアのうち、算出された位置に基づき当該携帯端末１０の属するエリアを判別するエリア判別処理部２１ａと、端末の属するエリアおよび他の端末の属するエリアの隔たりの大きさに基づき、それら端末の間の隔たりの大きさが所定の関係にあることを判別するすれ違い判別処理部２１ｂ、すなわち隔たり判別部とを備える。すれ違い判別処理部２１ｂはサーバに備えられ、位置算出部１４およびエリア判別処理部２１ａは端末に設けられ、携帯端末１０は判別したエリアをサーバ２０に送信する。
そのため、サーバ２０が行うべき処理を軽減することができる。
【００５３】
（変形例２）
上述した実施の形態では、図９のフローチャートで示したように、携帯端末同士の距離を具体的に算出して所定範囲内であるか否かを判断したが、すれ違いの判別方法はこれに限定されない。携帯端末同士の距離を算出せず、それぞれの携帯端末が属するエリア同士の隔たり量の大きさのみに基づいて判断してもよい。かかる場合には、上述した実施の形態における図９に示したフローチャートに代えて、図１１のフローチャートで示す処理を実行する。
【００５４】
図１１は、携帯端末の属するエリア同士の隔たり量の大きさのみに基づいて、すれ違い判別を行う場合の処理を示すフローチャートである。図９からステップＳ２０８〜Ｓ２０９を削除し、代わりにステップＳ２０８ａを設けている。
ステップＳ２０８ａでは、ＴａｒｇｅｔＳｅｔのｉ番目のレコードに記載の端末ＩＤ、位置情報、位置取得時刻、および、ステップＳ２０７において抽出したレコードの端末ＩＤ、および位置情報をすれ違い情報データベース２２ｃに保存し、ステップＳ２１０に進む。
この変形例２によれば、携帯端末の属するエリア同士の隔たり量の大きさのみに基づいてすれ違い判別を行うので、処理が簡便であり、すれ違い判別処理部２１ｂが短い時間で処理できる。
【００５５】
（変形例３）
上述した実施の形態では、すれ違い判別処理部２１ｂは、すれ違い判別を行う際に位置取得時刻を考慮していなかった。すなわち、すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから受信した時刻の範囲に関する情報に基づき、すれ違い判別を行うレコードを抽出してＴａｒｇｅｔＳｅｔとして保存し（図９のステップＳ２０１、Ｓ２０２）、それ以降は時刻に関する情報を用いずにすれ違い判別処理を行っていた。しかし、すれ違い判別処理部２１ｂは、すれ違い判別を行う際に位置取得時刻を考慮してもよい。
【００５６】
たとえば、アプリケーションサービス処理部２１ｃがすれ違い判別処理部２１ｂへ動作を指令する条件として、さらに許容時間範囲を出力してもよい。この許容時間範囲は、具体的な時間、たとえば３０分以内でもよいし、時刻識別子の範囲、たとえば時刻識別子の差が１以内としてもよい。そして、すれ違い判別処理部２１ｂは、２つのレコードの位置取得時刻の差が、指定された許容時間範囲以内である場合のみ、すれ違いデータベースに保存してもよい。位置取得時刻の差を考慮したすれ違い判別処理は、図１２のように表される。
【００５７】
図１２のフローチャートに示すプログラムは、実施の形態における図１０のフローチャートに示すプログラムに代わって、変形例３においてすれ違い判別処理部２１ｂが実行する処理手順を示すものである。図１２では、図１０においてステップＳ２９１の次にステップＳ２９２ではなくステップＳ２９１ａに進むよう変更されている。
ステップＳ２９１ａにおいて、すれ違い判別処理部２１ｂは、ＴａｒｇｅｔＳｅｔのｉ番目のレコードと、ＳｕｂＴａｒｇｅｔのｊ番目のレコードから位置取得時刻、または時刻識別子を抽出する。アプリケーションサービス処理部２１ｃから許容時間範囲として具体的な時刻の差が指定されている場合は位置取得時刻を取得し、時刻識別子の差が指定されている場合は時刻識別子を取得する。次にステップＳ２９１ｂに進む。
【００５８】
ステップＳ２９１ａにおいて、すれ違い判別処理部２１ｂは、ステップＳ２９１ａにおいて取得した時刻の差とアプリケーションサービス処理部２１ｃから指定された許容時間範囲とを比較する。２つのレコードの位置取得時刻の差が、指定された許容時間範囲よりも小さいと判断する場合はステップＳ２９２に進み、同一または位置取得時刻の差の方が大きいと判断する場合はステップＳ２９６に進む。
この変形例３は、以下の作用効果を奏する。
【００５９】
（１）携帯端末１０の送信する自己位置には当該位置を取得した時刻である位置取得時刻が付随している。すれ違い判別処理部２１ｂ（図８のステップＳ２０１）、すなわち隔たり判別部は、位置取得時刻の差が所定の範囲内であるそれら端末を対象として処理を行う。
そのため、携帯端末１０が所定の時間範囲内に所定の距離以内に存在していた場合のみ、すれ違い情報データベース２２ｃに記録されるので、空間的および時間的に近接していた状況を抽出することができる。
【００６０】
（２）サーバ２０は、通信部２３が受信した位置取得時刻が所定の時間範囲内であれば同一の時刻識別子を付与するエリア判別処理部２１ａ、すなわち時刻識別子付与部を備える。すれ違い判別処理部２１ｂ、すなわち隔たり判別部は、時刻識別子付与部の付与した時刻識別子が同一であるそれら端末を対象として処理を行う。
そのため、すれ違い判別処理部２１ｂは、アプリケーションサービス処理部２１ｃから時刻識別子が同一であることを条件として指定されると、各レコードの時刻識別子の一致判別により時刻に関する条件を満たすか否かを判断できるため、処理が簡便となる。
【００６１】
（変形例４）
上述した実施の形態では、サーバ２０は、各種データベースを格納し様々な演算処理を行うようにしていたが、サーバ２０の形態はこれに限定されない。サーバ２０の有していたデータベースおよび機能の１つ又は複数を、１つ又は複数の他のサーバに分担させ、全体としてサーバ２０と同様の機能を実現する情報処理装置としてもよい。
図１３は、上述した実施の形態におけるサーバ２０の機能を複数の中央サーバ２０ａと、データベースサーバ２０ｂと、アプリケーションサーバ２０ｃとで実現する場合の機能ブロック図である。携帯端末１０と、中央サーバ２０ａと、データベースサーバ２０ｂと、アプリケーションサーバ２０ｃとは、ネットワークＸにより接続されている。ただし、図１３では携帯端末１０の構成は図１と同様なので省略し、各サーバは通信部を省略している。
【００６２】
この変形例４では以下のように、すれ違い情報データベース２２ｃが生成され、利用される。
中央サーバ２０ａは、携帯端末１０から自己位置、固有の識別子である端末ＩＤ、および現在時刻を受信すると、受信したデータを位置・時刻データベース２２ａに保存する。中央サーバ２０ａのエリア判別処理部２１ａは、所定時間ごとに位置・時刻データベース２２ａを読込み、処理結果をデータベースサーバ２０ｂの位置・時刻・範囲データベース２２ｂに保存する。中央サーバ２０ａは、アプリケーションサーバ２０ｃのアプリケーションサービス処理部２１ｃから動作を開始するための条件が入力されると、すれ違い判別処理部２１ｂがデータベースサーバ２０ｂに保存されている位置・時刻・範囲データベース２２ｂを利用して、すれ違い情報データベース２２ｃを生成する。アプリケーションサーバ２０ｃのアプリケーションサービス処理部２１ｃは、中央サーバ２０ａのすれ違い情報データベース２２ｃを読込み、たとえば指定した距離以内に近接している携帯端末１０を対象とした処理を行う。
【００６３】
この変形例４では、時間の経過とともに大量のデータが蓄積される位置・時刻・範囲データベース２２ｂを中央サーバ２０ａの内部に保持しないため、中央サーバ２０ａのメンテナンスが容易になる。また、アプリケーションサービス処理部２１ｃを有するアプリケーションサーバ２０ｃを独立して設けることにより、中央サーバ２０ａ、およびデータベースサーバ２０ｂは、外部からの指令に基づきすれ違い情報を提供することになる。すなわち、アプリケーションサーバ２０ｃに限らず、様々なアプリケーションを実行する他のサーバに対して携帯端末１０のすれ違い情報を提供することができる。
【００６４】
（変形例５）
上述した実施の形態では、エリア識別子は、緯度を表す符号と経度を表す符号の組合せで定義し、符号には数字およびアルファベットを用いたが、エリア識別子の定義はこれに限定されない。所定の規則により順番が明らかである他の文字、たとえば平仮名や他の言語の文字を用いてもよい。また、緯度や経度を特定の桁数に丸めたものを符号として用いてもよい。さらには、緯度と経度を別々に表記せず、図１４に示すように順番に番号を付与し、列方向には連番とし、行方向には特定の数値差（図１４では１００）を設けることによりエリア間の隔たりの大きさを算出可能にしてもよい。
【００６５】
（変形例６）
上述した実施の形態では、エリア定義２２ｄはあらかじめ記憶部２２に保存されていたが、演算処理部２１が、エリア定義２２ｄを編集する定義編集部２１ｄをさらに備えてもよい。この定義編集部２１ｄは、アプリケーションサービス処理部２１ｃからエリア定義２２ｄの編集指令を受付可能であってもよい。さらに定義編集部２１ｄは、サーバ２０が備える不図示の入力部を介して、または通信部２３を介して、エリア定義２２ｄの編集指令を受付可能であってもよい。
この変形例６によれば以下の作用効果が得られる。
（１）サーバ２０は、エリアの大きさを指定するエリアサイズ指定部を備える。
そのため、アプリケーションサービス処理部２１ｃが実行するアプリケーションの要求するすれ違い状態にあると判断する距離に応じてエリアの大きさを変更できる。これにより、すれ違い判別処理部２１ｂが行う処理を軽減することができる。
【００６６】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。すなわち、サーバ２０において実行される以下の方法も本発明の範囲内に含まれる。
【００６７】
サーバ２０において実行される端末間隔たり判別方法は、携帯端末１０が算出する緯度および経度を含む位置に基づき、緯度および経度に基づきあらかじめ定義されたエリアのいずれに携帯端末１０が属するかを判別し、一の携帯端末の属するエリアおよび他の携帯端末の属するエリアの間の隔たりの大きさを算出し、それら携帯端末の間の隔たりの大きさが所定の関係にあることを判別する。
【符号の説明】
【００６８】
１  …  端末間距離判別システム
Ｘ  …  ネットワーク
１０  …  携帯端末
１３  …  通信部
１４  …  自己位置算出部
２０  …  サーバ
２１  …  演算処理部
２１ａ  …  エリア判別処理部
２１ｂ  …  すれ違い判別処理部
２１ｄ  …  定義編集部
２２ｄ  …  エリア定義
２３  …  通信部
【図１】
2016103699.tif 000003
【図２】
2016103699.tif 000004
【図３】
2016103699.tif 000005
【図４】
2016103699.tif 000006
【図５】
2016103699.tif 000007
【図６】
2016103699.tif 000008
【図７】
2016103699.tif 000009
【図８】
2016103699.tif 000010
【図９】
2016103699.tif 000011
【図１０】
2016103699.tif 000012
【図１１】
2016103699.tif 000013
【図１２】
2016103699.tif 000014
【図１３】
2016103699.tif 000015
【図１４】
2016103699.tif 000016