以下、本発明の実施形態について、図面を参照しながら説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
図1は、実施形態に係る情報提供システムの概要を説明するための図である。この利用場面(ユースケース)の例では、情報提供システム1において、発信器30が、WiFi信号またはビーコン信号などの信号(以下、単に「発信信号」という場合もある)を発信している。発信器30の発信信号を受信することが可能なエリアを、エリア30aと称して図示する。発信信号には、エリア30aを特定するための識別子の情報が含まれる。識別子として、発信器30のBSSID(Basic Service Set Identifier)などを用いることができる。
端末装置20では、画面D1のように、情報提供システム1のサービスを受けるためのアプリケーションが起動している。ユーザUが端末装置20とともにエリア30a内に移動すると端末装置20が発信器30からの発信信号を受信して、エリア30aのBSSIDを取得する。端末装置20では、画面D2のように、取得したBSSIDに基づいて特定された発信器30(あるいはエリア30a)の位置情報に関連付けられた広告情報が表示される。具体的に、発信器30の位置付近に存在している店舗などに関する広告情報が表示される。換言すると、位置情報に連動した広告情報がユーザUに提供される。このように、情報提供システム1では、サーバ10(位置情報サーバ)と、端末装置20と、発信器30とが用いられることによって、上述の広告情報の提供などのサービスが実現される。
ここで、図2に示されるように、端末装置20および発信器30はいずれも複数存在している。図2は、情報提供システムの概略構成を示す図である。この図では、各端末装置20を区別するために、各端末装置20に端末装置201、202の異なる符号も付している。同様に、各発信器30に発信器301〜303の異なる符号を付し、各発信器30の各エリア30aにエリア301a、302a、303aの異なる符号を付している。ただし、端末装置20および発信器30の数は図2に示される例に限定されない。なお、後にサーバ10および端末装置20の動作概要を説明する際に、再び図2が参照される。
図3は、端末およびサーバの機能ブロックを示す図である。まず、サーバ10について説明し、その後、端末装置20について説明する。
サーバ10は、情報提供システム1(図1、2)において、端末装置20にエリア30aの位置情報を提供するための情報提供装置である。サーバ10は、記憶部11と、生成部12と、通信部13と、管理部14とを含む。
記憶部11は、端末装置20がチェックインするための複数のエリア30aの管理情報を記憶する部分(サーバ側記憶手段)である。管理情報は、たとえばエリア30aごとに設定される。管理情報は、エリア30aの識別子および位置情報を対応づけて記述する。識別子は上述のBSSIDであってよい。位置情報は、地図上の座標情報などであってよい。管理情報は、さらに、エリア30aへのチェックインログ(チェックイン履歴情報)およびエリア30aの属性情報を含む。
チェックインは、端末装置20が、或るエリア30a外からそのエリア30a内に移動することを意味する。チェックアウトは、端末装置20が、或るエリア30a内からそのエリア30a外に移動することを意味する。チェックインログは、チェックインが発生した時刻、チェックアウトが発生した時刻、チェックインが発生した時刻からチェックアウトが発生した時刻までの間の時間(端末装置20のエリア30aへの滞在時間)、チェックインした端末装置20の情報、チェックインされたエリア30aの情報(上述のBSSID)、チェックイン数などを含む。チェックインログは、エリア30aごとに集計され得る。先に説明したように端末装置20は複数存在するので、各エリア30aについてのチェックインログは、各端末装置20による各エリア30aへのチェックイン等を集計した情報である。各端末装置20による各エリア30aへのチェックイン等の集計は、各端末装置20からサーバ10に、各端末装置20のチェックイン等の情報が定期的に送信されることによって、サーバ10側で集計される。
属性情報は、ジオフェンス属性であってよい。ジオフェンス属性として、エリアオーナ情報を用いてもよい。エリアオーナは、発信器30が設けられている施設などの所有者の属性を示し、その例としては、鉄道企業、飲食店などが挙げられる。ジオフェンス属性として、POI(Point Of Interest(建物や店舗などの情報))属性を用いてもよい。POI属性は、建物や店舗などの情報であり、ジャンル、アクセス、営業時間、収容人数、喫煙、クーポンなどの情報であってよい。
また、記憶部11は、次に説明する生成部12によって生成されたグループごとに、管理情報を記憶する。
生成部12は、記憶部11に記憶されている管理情報を用いて、一つ以上のエリア30aを含む複数のグループを生成する部分(生成手段)である。ここで、管理情報の例について、図4を参照して説明する。
図4(A)はグループ化される前の管理情報の例を示す。生成部12によってグループ化される前の管理情報11aは、「識別子」と、「位置情報」と、「チェックインログ」と、「属性情報」とを対応づけて記述するデータテーブルである。「識別子」はBSSIDであり、「位置情報」は地図上の座標などである。「チェックインログ」および「属性情報」は上述のとおりである。図4(A)に示される管理情報を用いて、生成部12は、一つ以上のエリア30aを含む複数のグループを生成する。なお、図4(A)では、識別子、位置情報、チェックインログ、属性情報を、「BSSID1」、「Info1」、「Log1」、「Pro1」などして簡素化して示している。
図4(B)はグループ化された後の管理情報の例を示す。生成部12によってグループ化された後の管理情報11bは、「グループ名」と、「識別子」と「位置情報」とを、グループ名ごとに対応づけて記述するデータテーブルである。「グループ名」は、各グループを特定できる情報であればよい。「識別子」および「位置情報」は上述のとおりである。なお、図4(B)では、グループ名を「Gr1」などして簡素化して示している。図4(B)に示されるように、一つ一つのエリア(識別子および位置情報の組)を単位として、グループが作成される。
ここで、生成部12によるグループの生成方法の例を説明する。生成部12は、複数のエリア30aへのチェックインログに基づいて、複数のグループを生成してもよい。この場合、生成部12は、チェックイン数に応じて複数のグループを生成してもよい。チェックイン数がエリア30aごとに集計されている場合には、チェックイン数を複数の指定件数の範囲に分け、各指定件数の範囲に属するエリア30aどうしをグループ化してもよい。また、生成部12は、滞在時間に応じて複数のグループを生成してもよい。滞在時間がエリア30aごとに集計されている場合には、滞在時間を複数の指定時間の範囲に分け、各指定時間の範囲に属するエリア30aどうしをグループ化してもよい。この場合の滞在時間として、エリア30aにおける各端末装置20の平均滞在時間を用いてもよい。
生成部12は、複数のエリア30aのジオフェンス属性に基づいて、複数のグループを生成してもよい。この場合、生成部12は、エリアオーナ情報に応じて複数のグループを生成してもよく、具体的に、同じエリアオーナが所有している店舗などに位置するエリア30aどうしをグループ化してもよい。また、生成部12は、POI属性に応じて複数のグループを生成してもよく、具体的に、共通または類似するPOI属性を有するエリア30aどうしをグループ化してもよい。
その他に、エリアオーナごとのチェックイン数に応じて、複数のグループを生成するというグループの生成方法もある。これについて、図5を参照して説明する。
図5は、エリアオーナごとのチェックイン数の一例を示す図である。グラフの横軸は、エリアオーナを示し、縦軸は、チェックイン数を示す。なお、図5の例では、エリアオーナが「A」、「B」などのアルファベットを用いて簡素化して示される。このように、チェックイン数がエリアオーナごとに集計されている場合、エリアオーナごとのチェックイン数に応じて複数のグループを生成することもできる。グループ化は、先に説明したチェックイン数がエリア30aごとに集計されている場合と同様の手法を用いてよい。
再び図3に戻り、サーバ10の通信部13は、対象となる端末装置20に、当該対象となる端末装置20がチェックインするエリア30aを含むグループ内のすべてのエリア30aについての管理情報を送信する部分(送信手段)である。端末装置20がチェックインするエリア30aは、たとえばチェックインの際に端末装置20で取得されたBSSIDを用いて特定される。その場合、端末装置20で取得されたBSSIDが、端末装置20の通信部21(後述)からサーバ10の通信部13に送信される。
管理部14は、記憶部11に記憶される管理情報を管理する部分(管理手段)である。管理部14は、管理情報の追加、変更、削除などを行うことによって、記憶部11に記憶される管理情報を更新する。新たに発信器30が設けられ、それに応じた新たなエリア30aが発生したときには、管理部14は、新たなエリア30aの管理情報を記憶部11に追加する。いずれかのエリア30aへのチェックイン、チェックアウトが発生したときには、管理部14は、そのエリア30aのチェックインログを更新する。既存の発信器30が停止、廃棄等され、それに応じたエリア30aが消滅したときには、管理部14は、そのエリア30aの管理情報を削除する。
次に、端末装置20について説明する。端末装置20は、通信部21と、識別子取得部22と、記憶部23と、更新部24と、アプリ実行部25とを含む。
通信部21は、サーバ10の通信部13から、端末装置20がチェックインするエリア30aを含むグループ内のすべてのエリア30aについての管理情報を受信する部分(受信手段)である。グループが複数の場合には、管理情報がグループごとに受信される。
識別子取得部22は、発信器30(図2参照)からの発信信号を受信することによって、エリア30aのBSSIDを取得する部分(識別子取得手段)である。
記憶部23は、通信部21が受信した管理情報をグループごとに記憶する部分(端末装置側記憶手段)である。また、記憶部23は、端末装置20の各エリア30aへのチェックイン履歴情報(端末装置側チェックインログ)を記憶する。端末装置側チェックインログは、チェックインが発生した時刻、チェックアウトが発生した時刻、チェックインが発生した時刻からチェックアウトが発生した時刻までの間の時間(端末装置20のエリア30aへの滞在時間)、端末装置20がチェックインしたエリア30aの情報(上述のBSSID)、チェックイン数などを含む。チェックイン数は、エリア30aごとに集計され得る。端末装置20の記憶部23の記憶容量は、サーバ10の記憶部11の記憶容量よりも小さくてよい。記憶部23は、情報を一時的に記憶するためのキャッシュメモリであってもよい。
更新部24は、記憶部23に記憶されるグループごとの管理情報(以下、「グループ情報」という場合もある)の追加、変更、削除などを行うことによって、記憶部23に記憶されるグループ情報を更新する部分(更新手段)である。更新部24は、識別子取得部22に記憶される端末装置側チェックインログの更新も行う。
ここで、更新部24によるグループ情報の更新の例を説明する。更新部24は、端末装置20の端末装置側チェックインログに基づいて、記憶部23に記憶されている管理情報をグループごとに(つまりグループ情報を)削除する。この場合、更新部24は、チェックイン数に応じて、記憶部23に記憶されているグループ情報を削除してもよい。更新部24は、記憶部23に記憶されているグループのうち、予め定められた期限(キャッシュ期限)を経過したグループ情報を削除してもよい。また、更新部24は、記憶部23に保持されるグループ情報の数が予め定められた数を上回らないように、グループ情報を削除してもよい。その際、更新部24は、優先順位の低いグループ情報から削除する。更新部24は、グループごとに、グループ内のエリア30aのうち端末装置20が最後にチェックインした時刻が最も新しいエリア30aへのチェックインの時刻を特定し、特定した時刻が最も古いグループから優先的に削除してもよい。また、更新部24は、グループごとに、グループ内のエリア30aのうち自端末装置がチェックインした回数が最も多いエリアへのチェックインの回数を特定し、特定した回数が最も少ないグループから優先的に削除してもよい。
アプリ実行部25は、先に図1を参照して説明した情報提供システム1のサービスを端末装置20が受けるためのアプリケーションを実行するための部分(実行手段)である。 以上説明したサーバ10および端末装置20の動作概要の一例について、再び図2を用いて説明する。端末装置201では、情報提供システム1のサービスを受けるためのアプリケーションが、アプリ実行部25によって起動されている。はじめに、端末装置201がエリア301aにチェックインすると、端末装置201の識別子取得部22が発信器301からの発信信号を受信して、エリア301aのBSSIDを取得する。
まず、ここでは、識別子取得部22によって取得されたBSSIDが、端末装置201の記憶部11に記憶されたグループ情報に含まれていないものとする。この場合、端末装置201の通信部21は、そのBSSIDをサーバ10の通信部13に送信する(S101)。それとともに、通信部21は、当該BSSIDに対応するエリア301aの位置情報を端末装置201に送信することの要求を、サーバ10の通信部13に送信する(同じくS101)。これを受けて、サーバ10の通信部13は、記憶部11に記憶されている管理情報(図4(B)参照)に記憶されている、当該BSSIDに対応するエリア301aを含むグループ内のすべてのエリア30aの管理情報を端末装置20の通信部21に送信する(S102)。グループが複数存在する場合には、グループごとに管理情報が送信される。ここでは、エリア301aおよびエリア302aの管理情報が同じグループに含まれており、両方の管理情報が端末装置20の通信部21に送信されるものとする。端末装置20では、端末装置20の通信部21がサーバ10の通信部13から送信された管理情報を受信する。グループが複数存在する場合には、グループごとに管理情報が受信される。また、記憶部23が、通信部21によって受信された管理情報をグループごとに記憶する。アプリ実行部25は、記憶部23に記憶された位置情報に関連付けられた広告情報を表示する。広告情報は予め記憶部11に記憶されていてもよいし、通信部21によって外部サーバから取得されてもよい。
次に、端末装置201がはじめにチェックインしていたエリア301aからチェックアウトし、別のエリア302aにチェックインする(AR1)。この場合、新たにチェックインしたエリア302aのBSSIDが、端末装置201の識別子取得部22によって取得される必要がある。ここで、識別子取得部22によって取得されたBSSIDに対応するエリア302aの管理情報は、先にエリア301aチェックインした際に端末装置201の記憶部11に記憶されたグループ情報に含まれている。そのため、端末装置201のアプリ実行部25は、記憶部11に記憶されているグループ情報を参照するだけで、ただちにエリア302aの位置情報を取得し、当該位置情報に関連付けられた広告情報を表示することができる。よって、上述のように、再度サーバ10に問い合わせを行う必要がない。
サーバ10および端末装置20の動作のさらなる詳細については、後に図7を参照して改めて説明する。
図6は、サーバ10および端末装置20のハードウェア構成の例を示す図である。図6に示されるように、サーバ10および端末装置20は、物理的には、1または複数のCPU(Central Processing Unit)101、主記憶装置であるRAM(Random Access Memory)102およびROM(Read Only Memory)103、データ送受信デバイスである通信モジュール104、半導体メモリなどの補助記憶装置105、ユーザ操作の入力を受け付ける入力装置106、ディスプレイといった出力装置107などを備えるコンピュータとして構成され得る。先に図3等を参照して説明したサーバ10および端末装置20の各機能は、たとえば、CPU101、RAM102などのハードウェア上に1または複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU101の制御のもとで通信モジュール104、入力装置106、出力装置107などを動作させるとともに、RAM102および補助記憶装置105におけるデータの読み出しおよび書き込みを行うことで実現することができる。
図7は、情報提供システムにおいて実行される処理の一例を示すフローチャートである。ここでは、発信器30の発信信号はWi−Fi信号であるものとする。
まず、サーバ10によって実行される処理について説明する。このフローチャートの例では、サーバ10において、チェックイン数に基づいてグループが生成される。
ステップS11において、サーバ10は、グループ有効期限が経過したか否かを判断する。グループ有効期限は、グループの再構築のために設定される期限である。具体的に、サーバ10の管理部14が、グループ化された後の管理情報(図4(B)参照)の各グループについて、有効期限が経過したか否かを判断する。たとえば、生成部12によってグループが作成された時から現時点までの期間が、あらかじめ定められた期間(所定期間)以上の場合には有効期限が経過したと判断され、所定期間未満の場合には有効期限が経過していないと判断される。グループ有効期限が経過している場合(ステップS11:YES)、サーバ10はステップS12に処理を進める。そうでない場合(ステップS11:NO)、サーバ10はステップS15に処理を進める。
ステップS12において、サーバ10は、Wi−Fiアクセスポイントごとのチェックイン数を算出する。具体的に、サーバ10の管理部14が、グループ化される前の各管理情報のチェックインログ(図4(A)参照)を用いて、各エリア30aへのチェックイン数を算出する。
ステップS13において、サーバ10は、チェックイン数でWi−Fiアクセスポイントをソートする。具体的に、サーバ10の管理部14が、先のステップS12で算出されたチェックイン数に基づいて、管理情報を整理する。たとえばチェックイン数を複数の指定件数の範囲に分け、各指定件数の範囲と各管理情報とをそれぞれ対応付けることで、管理情報をチェックイン数の指定件数の範囲ごとに整理する。
ステップS14において、サーバ10は、指定件数ごとにグループ化する。具体的に、サーバ10の生成部12が、各エリア30aの管理情報を、先のステップS13で整理されたチェックイン数の指定件数の範囲ごとにグループ化する。
なお、上述のステップS12〜S14の例では、チェックイン数に基づいてグループが生成されたが、これに代えて、先に説明したように、滞在時間、エリアオーナ情報、POI属性などに基づいてグループが生成されてもよい。
ステップS15において、サーバ10は、問い合わせを受信したか否かを判断する。具体的に、サーバ10の通信部13が、端末装置20がチェックインしたエリア30aのBSSIDに対応する位置情報を端末装置20に送信することの要求を、端末装置20から受信したか否かを判断する。問い合わせを受信した場合(ステップS15:YES)、サーバ10は、ステップS16に処理を進める。そうでない場合(ステップS16:NO)、サーバ10は、ステップS11に再び処理を戻す。
ステップS16において、サーバ10は、問い合わせ対象のBSSIDを含むグループがあるか否かを判断する。具体的に、サーバ10の管理部14が、グループ化された後の各エリア30aの管理情報(図4(B)参照)に、先のステップS15で受信したBSSIDに対応するエリア30aの管理情報を含むグループが存在するか否かを判断する。そのようなグループがある場合(ステップS16:YES)、サーバ10はステップS17に処理を進める。そうでない場合(ステップS17:NO)、サーバ10は、ステップS18に処理を進める。
ステップS17において、サーバ10は、該当のグループを送信する。具体的に、サーバ10の通信部13が、先のステップS15で受信したBSSIDに対応するエリア30aの管理情報を含むグループに含まれるすべてのエリア30aの管理情報を、端末装置20に送信する。グループが複数存在する場合には、各グループに含まれるすべてのエリア30aの管理情報が、グループごとに端末装置20に送信される。
ステップS18において、サーバ10は、BSSIDが存在しないことを通知する。具体的に、サーバ10の通信部13が、先のステップS15で受信したBSSIDに対応するエリア30aの管理情報を含むグループが存在しなかったことを、端末装置20に通知する。
ステップS17またはステップS18の処理が完了した後、サーバ10はフローチャートの処理を終了する。
次に、引き続き図7を参照しつつ、端末装置20によって実行される処理について説明する。このフローチャートの例では、端末装置20において、記憶部23に記憶されるグループ情報は、所定期間を経過した時に削除される。
ステップS21において、端末装置20は、グループのキャッシュ期限を過ぎたか否かを判断する。キャッシュ期限は、記憶部23に記憶されたグループ情報の少なくとも一部を削除するために設定される期限である。具体的に、端末装置20の更新部24が、すでに取得済みのグループ情報について、キャッシュ期限が経過したか否かを判断する。たとえば、グループ情報を取得した時(受信時またはキャッシュ格納時)から現時点までの期間が、あらかじめ定められた期間(所定期間)以上の場合にはキャッシュ期限が経過したと判断され、所定期間未満の場合にはキャッシュ期間が経過していないと判断される。キャッシュ期限が経過している場合(ステップS21:YES)、端末装置20はステップS22に処理を進める。そうでない場合(ステップS21:NO)、端末装置20はステップS23に処理を進める。
ステップS22において、端末装置20は、グループのキャッシュを削除する。具体的に、端末装置20の更新部24が、上述のステップS21でキャッシュ期限が経過していると判断されたグループ情報を削除する。
なお、上述のステップS21、S22の例では、記憶部23に記憶されるグループ情報が所定期間を経過した時に削除されたが、これに代えて、先に説明したように、チェックイン数、チェックイン時刻に基づいてグループ情報が削除されてもよい。
ステップS23において、端末装置20は、Wi−Fiスキャンを実施する。具体的に、端末装置20の識別子取得部22が、受信しようとするWi−Fi信号のチャンネルを変えながら受信可能なWi−Fi信号の有無を確認する。
ステップS24において、端末装置20は、Wi−FiのBSSIDを検知したか否かを判断する。具体的に、端末装置20の識別子取得部22が、先のステップS23で受信した信号から、エリア30aのBSSIDを取得した場合にはBSSIDを検知したと判断し、BSSIDを取得しなかった場合にはBSSIDを検知しなかったとは判断する。BSSIDを検知した場合(ステップS24:YES)、端末装置20はステップS26に処理を進める。そうでない場合(ステップS24:NO)、端末装置20はステップS25に処理を進める。
ステップS25において、端末装置20は、一定時間スキャンを停止する。具体的に、端末装置20の識別子取得部22が、上述のWi−Fiスキャンを一時的に中断する。ステップS25の処理が完了した後、端末装置20は、ステップS21に再び処理を戻す。 ステップS26において、端末装置20は、ローカルにキャッシュしたグループ内にBSSIDがあるか否かを判断する。具体的に、端末装置20の更新部24が、記憶部23に記憶されている管理情報に、先のステップS24で検知したBSSIDに対応するエリア30aの管理情報が含まれているか否か(すなわちBSSIDがあるか否か)を判断する。BSSIDがある場合(ステップS26:YES)、端末装置20はステップS30に処理を進める。そうでない場合(ステップS26:NO)、端末装置20はステップS27に処理を進める。
ステップS27において、端末装置20は、BSSIDをサーバへ問い合わせる。具体的に、端末装置20の通信部21が、先のステップS24で検知されたBSSIDに対応するエリア30aの位置情報を端末装置20に送信することの要求を、サーバ10の通信部13に送信する。このステップS27の処理を受けて、先に説明したステップS15〜S17の処理が、サーバ10において実行される。
ステップS28において、端末装置20は、グループを取得したか否かを判断する。具体的に、端末装置20の通信部21が、先のステップS27で送信したBSSIDに対応するエリア30aの管理情報を含むグループに含まれるすべてのエリア30aの管理情報を、サーバ10の通信部13から受信した否かを判断する。グループを取得した場合(ステップS28:YES)、端末装置20はステップS29に処理を進める。そうでない場合(ステップS29:NO)、端末装置20はステップS25に再び処理を戻す。
ステップS29において、端末装置20は、グループをキャッシュする。具体的に、端末装置20の記憶部23が、先のステップS29で取得したグループ情報に含まれるすべてのエリア30aの管理情報を記憶する。ステップS29の処理が完了した後、端末装置20は、ステップS30に処理を進める。
ステップS30において、端末装置20は、取得した位置情報をアプリで使用する。具体的に、端末装置20のアプリ実行部25が、記憶部23に記憶されている管理情報を用いて、先に図1を参照して説明したような情報提供システム1のサービスを受けるためのアプリケーションを実行する。
以上説明したサーバ10では、複数のエリア30aのBSSIDおよび位置情報を対応付けて記述する管理情報(図4(A)参照)を用いて、一つ以上のエリア30aを含む複数のグループが生成される(ステップS12〜S14、図4(B)参照)。そして、対象となる端末装置20に、当該対象となる端末装置20がチェックインするエリア30aを含むグループ内のすべてのエリア30aについての管理情報がグループごとに送信される(ステップS17)。このように管理情報がサーバ10から端末装置20に送信されるので、端末装置20側ではサーバ10から送信された管理情報を用いて、エリア30aのBSSIDからエリア30aの位置情報を取得することができる(ステップS28〜S30)。この場合、端末装置20は、サーバ10から送信された管理情報のみを記憶部23に記憶(保持)していればよく、すべてのエリア30aについての管理情報を記憶する必要がない。これにより、端末装置20でのメモリの使用量(すなわち記憶部23の必要容量)を抑制することができる。
また、グループ内のすべてのエリア30aについての管理情報が端末装置20に送信されるので(ステップS17)、端末装置20が後にそれらのエリア30aにチェックインしたときには(ステップS24)、すでに送信され記憶部23に記憶されている管理情報を用いてそのエリア30aの位置情報を取得することができる(ステップS26:YES、ステップS30)。これにより、サーバ10との通信(ステップS27の処理)が不要となるので、サーバ10と端末装置20との間の通信データ量を抑制することもできる。さらに、一つ一つのエリア30a単位でグループが作成されるので(図4(B)参照)、端末装置20がチェックインする可能性が低いエリア30aの位置情報がサーバ10から端末装置20に送信されることを回避できる可能性が高まる。
複数のエリア30aの属性情報に基づいて、複数のグループが生成されてもよい。その場合、チェックイン数に応じて複数のグループが生成されてもよい。チェックイン数が多くエリア30aをグル―プ化したり、滞在時間が長いエリア30aをグループ化したりすることによって、端末装置20がチェックインする可能性が高いエリア30aがグループに含まれ易くなる。逆に、端末装置20がチェックインする可能性が低いエリア30aがグループに含まれにくくなる。
複数のエリアの属性情報に基づいて、複数のグループが生成されてもよい。その場合、ジオフェンス属性に応じて複数のグループが生成されてもよい。ジャンル、アクセス、営業時間、収容人数、喫煙の可否、クーポン利用の可否といったPOI属性に共通点あるいは類似点の多いエリア30aをグループ化してもよい。また、鉄道企業や飲食店といったエリアオーナ情報が共通あるいは類似するエリア30aをグループ化してもよい。いずれの場合も、同一の端末装置20がチェックインする可能性が高いエリア30aがグループに含まれ易くなる。逆に、端末装置20がチェックインする可能性が低いエリア30aがグループに含まれにくくなる。
端末装置20では、サーバ10から受信した管理情報が記憶されるので(ステップS29)、この管理情報を用いてエリア30aのBSSIDからエリア30aの位置情報を取得することにより(ステップS30)、先に説明したとおり、端末装置20でのメモリの使用量(すなわち記憶部23の容量)を抑制すること、サーバ10と端末装置20との間の通信データ量を抑制することができ、また、端末装置20がチェックインする可能性が低いエリア30aの位置情報がサーバ10から端末装置20に送信されることを回避できる可能性が高まる。さらに、端末装置20では、自端末装置のチェックインログに基づいてグループ情報が削除されるので(ステップS21、S22)、端末装置20でのメモリの使用量をさらに抑制することができる。
グループ情報は、最後にチェックインした時刻が最も古いグループ情報から優先的に削除されてもよい。また、グループ情報は、チェックイン数が最も少ないグループから優先的に削除されてもよい。このようにして優先的に削除するグループ内のエリア30aは、他のグループ内のエリア30aよりも端末装置20がチェックインする可能性が低いので、後に端末装置20がサーバ10との通信によって再び管理情報を取得しなければならなくなる可能性(ステップS27の処理が発生する可能性)を低減しつつ、端末装置のメモリを開放することができる。