以下、本発明の実施形態について添付の図面を参照しながら説明する。以降では、予め決められた所定のエリア(サービス提供エリア)にユーザが進入した場合に、当該エリアに応じたサービスをユーザに提供するサービス提供システム1について説明する。
(第一の実施形態)
まず、本実施形態に係るサービス提供システム1の全体構成について、図1を参照しながら説明する。図1は、第一の実施形態に係るサービス提供システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係るサービス提供システム1は、端末装置10と、サーバ装置20とを有する。また、端末装置10とサーバ装置20とは、例えばインターネット等のネットワークNを介して通信可能に接続される。
端末装置10は、例えばスマートフォンやタブレット端末等のユーザが所持して移動させることが可能な情報処理端末である。端末装置10は、ユーザが所定のエリアに進入したか又はユーザが所定のエリアから離脱したかを判定する。そして、端末装置10は、ユーザが所定のエリアに進入したと判定した場合、当該エリアに応じたサービスをユーザに提供する。一方で、端末装置10は、ユーザが所定のエリアから離脱したと判定した場合、当該エリアに応じたサービスの提供を終了する。なお、ユーザがエリアに進入することは「チェックイン」とも称され、ユーザがエリアから離脱することは「チェックアウト」とも称される。
端末装置10には、ユーザアプリケーション110と、基盤アプリケーション120と、OS130とがインストールされている。ユーザアプリケーション110は、ユーザが利用するアプリケーションプログラムである。基盤アプリケーション120は、ユーザアプリケーション110の基盤として機能するアプリケーションプログラムであり、OS130のジオフェンス機能によって監視されるエリア(すなわち、監視対象のエリア)を当該OS130に設定及び再設定する。なお、ユーザアプリケーション110と基盤アプリケーション120とが1つのアプリケーション140を構成していても良い。
OS130は、ジオフェンス機能を備えるオペレーティングシステムである。OS130としては、例えば、iOS(登録商標)やAndroid(登録商標)等が挙げられる。OS130は、ジオフェンス機能により、GPS受信機等によって測定されたユーザの現在位置に基づいて、基盤アプリケーション120から設定されたエリアにユーザが進入したか又はユーザが当該エリアから離脱したかを判定する。そして、OS130は、ユーザが当該エリアに進入したと判定した場合、ユーザが当該エリアに進入したことを示すイベントを基盤アプリケーション120に通知する。同様に、OS130は、ユーザが当該エリアから離脱したと判定した場合、ユーザが当該エリアから離脱したことを示すイベントを基盤アプリケーション120に通知する。以降では、OS130に設定されるエリアのことを「ジオフェンス」とも表す。
なお、端末装置10は、スマートフォンやタブレット端末に限られない。端末装置10は、例えば、携帯型のゲーム機器、音楽プレーヤー、ウェアラブルデバイス、自動車に搭載される車載機等であっても良い。すなわち、端末装置10には、ユーザが所持して移動可能な又は車両(自動車、自動二輪車、自転車等)に搭載等して移動可能な種々の情報処理装置(コンピュータ)を用いることができる。
サーバ装置20は、所定のエリア(ジオフェンス)を定義したジオフェンス定義情報やサービスを実現するサービスアプリケーションを端末装置10に提供する情報処理装置又は情報処理システムである。
サーバ装置20には、サーバプログラム210がインストールされている。また、サーバ装置20は、ジオフェンス定義DB220と、サービスアプリケーションDB230とを有する。
サーバ装置20は、端末装置10からの要求に応じて、ジオフェンス定義DB220に格納されているジオフェンス定義情報を当該端末装置10に送信する。また、サーバ装置20は、端末装置10からの要求に応じて、サービスアプリケーションDB230に格納されているサービスアプリケーションのうち、ユーザが進入したジオフェンスに対応するサービスアプリケーションを当該端末装置10に送信する。なお、ジオフェンス定義DB220及びサービスアプリケーションDB230の詳細については後述する。
サービスアプリケーションが端末装置10に送信されることで、当該端末装置10において、当該サービスアプリケーションにより実現されるサービスがユーザに提供される。このようなサービスとしては、例えば、ユーザが進入したジオフェンス内の観光案内情報を提供するサービス、ユーザが進入したジオフェンス内の店舗で利用可能なクーポンを提供するサービス等が挙げられる。ただし、ユーザに提供されるサービスは、これらに限られず、ユーザが進入したジオフェンスに応じた種々のサービスが提供されても良い。
ここで、基盤アプリケーション120が監視対象としてOS130に設定するジオフェンスを切り替える場合(すなわち、監視対象のジオフェンスをOS130に再設定する場合)について、図2を参照しながら説明する。図2は、ジオフェンスの再設定の一例を説明する図である。以降では、ユーザが進入した場合にサービスが提供されるジオフェンスを「サービス用ジオフェンス」と表す。これに対して、端末装置10(コンピュータ)の現在位置に応じて生成されるジオフェンス(制御用ジオフェンス)は、本実施形態においては、端末装置10の現在位置を含むように生成されるエリアである。例えば、端末装置10の現在位置を中心に所定半径を有する円形のエリアが、制御用ジオフェンスとして設定される。
図2では、一例として、OS130に設定可能なジオフェンスの最大数Mが「5」であるものとする。また、図2に示すように、サービス用ジオフェンスは、「place1」~「place10」の10個が存在するものとする。
S1)端末装置10は、ユーザの現在位置から近い順(すなわち、当該端末装置10の現在位置から近い順)に4(=M-1)個のサービス用ジオフェンスを選択し、OS130に設定する。図2に示す例では、「place1」、「place2」、「place5」及び「place6」の4個のサービス用ジオフェンスが選択及び設定される。
また、端末装置10は、ユーザの現在位置を中心として所定の半径の円形領域を表す制御用ジオフェンスを生成し、OS130に設定する。これにより、OS130には、選択されたM-1個のサービス用ジオフェンスと、生成された1個の制御用ジオフェンスとが監視対象として設定される。
S2)その後、ユーザが移動したことで、ユーザが制御用ジオフェンスから離脱した場合、端末装置10は、ユーザの移動後の現在位置から近い順に4(=M-1)個のサービス用ジオフェンスを新たに選択し、OS130に設定する。図2に示す例では、「place5」、「place6」、「place7」及び「place8」の4個のサービス用ジオフェンスが新たに選択及び設定される。
また、端末装置10は、ユーザの移動後の現在位置を中心として所定の半径の円形領域を表す制御用ジオフェンスを新たに生成し、OS130に設定する。これにより、OS130には、新たに選択されたM-1個のサービス用ジオフェンスと、新たに生成された1個の制御用ジオフェンスとが監視対象として設定される。
以降も同様に、端末装置10は、ユーザが制御用ジオフェンスから離脱した場合、サービス用ジオフェンスを新たに選択し、OS130に設定すると共に、制御用ジオフェンスを新たに生成し、OS130に設定する。
このように、本実施形態に係る端末装置10は、ユーザが制御用ジオフェンスから離脱した場合(すなわち、当該端末装置10が制御用ジオフェンスから離脱した場合)、サービス用ジオフェンス及び制御用ジオフェンスをOS130に再設定する。これにより、本実施形態に係る端末装置10では、ユーザの移動に応じて、監視対象としてOS130に設定されるサービス用ジオフェンスを、当該ユーザの近くに存在するサービス用ジオフェンスに切り替えることができる。
制御用ジオフェンスは、或る時点におけるユーザの現在位置を含むジオフェンスであるため、ユーザがその位置から移動すると自然に、ジオフェンス離脱のイベントが発生することになる。これにより、アプリケーション140(基盤アプリケーション120)側ではOS130からの通知を受けて、サービス用ジオフェンスを再選択及び再設定することができる。つまり、強制的にジオフェンス離脱を発生させる制御用ジオフェンスを導入したことで、アプリケーション140(基盤アプリケーション120)側でサービス用ジオフェンスの再選択を、制御用ジオフェンスからの離脱により必ず発生させることになる。以上から、OS130からのイベント通知がないことにより、サービス用ジオフェンスの再選択及び再設定が行われずに、OS130の監視対象が切り替わらないという事態を回避することができる。
次に、本実施形態に係る端末装置10のハードウェア構成について、図3を参照しながら説明する。図3は、第一の実施形態に係る端末装置10のハードウェア構成の一例を示す図である。
図3に示すように、本実施形態に係る端末装置10は、入力装置11と、表示装置12と、外部I/F13と、通信I/F14と、ROM(Read Only Memory)15とを有する。また、本実施形態に係る端末装置10は、RAM16(Random Access Memory)と、CPU(Central Processing Unit)17と、補助記憶装置18と、GPS受信機19とを有する。これら各ハードウェアは、それぞれがバスB1で相互に接続されている。
入力装置11は、例えばタッチパネル等であり、端末装置10に各種の操作を入力するのに用いられる。表示装置12は、例えばディスプレイ等であり、端末装置10による各種の処理結果を表示する。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。端末装置10は、外部I/F13を介して、記録媒体13aの読み取りや書き込みを行うことができる。記録媒体13aには、例えば、SDメモリカード(SD memory card)やUSB(Universal Serial Bus)メモリ等がある。
通信I/F14は、端末装置10をネットワークNに接続するためのインタフェースである。端末装置10は、通信I/F14を介して、サーバ装置20と通信を行うことができる。
ROM15は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM16は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU17は、例えば補助記憶装置18やROM15等からプログラムやデータをRAM16上に読み出して、各種処理を実行する演算装置である。
補助記憶装置18は、プログラムやデータを格納している不揮発性の半導体メモリである。補助記憶装置18には、例えば、ユーザアプリケーション110、基盤アプリケーション120、OS130等が格納されている。GPS受信機19は、GPSから所定の電波を受信して、端末装置10の現在位置を測定する。
本実施形態に係る端末装置10は、図3に示すハードウェア構成を有することにより、後述する各種処理が実現される。
次に、本実施形態に係るサーバ装置20のハードウェア構成について、図4を参照しながら説明する。図4は、第一の実施形態に係るサーバ装置20のハードウェア構成の一例を示す図である。
図4に示すように、本実施形態に係るサーバ装置20は、入力装置21と、表示装置22と、外部I/F23と、通信I/F24とを有する。また、本実施形態に係るサーバ装置20は、ROM25と、RAM26と、CPU27と、補助記憶装置28とを有する。これら各ハードウェアは、それぞれがバスB2で相互に接続されている。
入力装置21は、例えばキーボードやマウス、タッチパネル等であり、サーバ装置20に各種の操作を入力するのに用いられる。表示装置22は、例えばディスプレイ等であり、サーバ装置20による各種の処理結果を表示する。なお、サーバ装置20は、入力装置21及び表示装置22のうちの少なくとも一方を有していなくても良い。
外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。サーバ装置20は、外部I/F23を介して、記録媒体23aの読み取りや書き込みを行うことができる。記録媒体23aには、例えば、SDメモリカードやUSBメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)等がある。
通信I/F24は、サーバ装置20をネットワークNに接続するためのインタフェースである。サーバ装置20は、通信I/F24を介して、端末装置10と通信を行うことができる。
ROM25は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。RAM26は、プログラムやデータを一時保持する揮発性の半導体メモリである。CPU27は、例えば補助記憶装置28やROM25等からプログラムやデータをRAM26上に読み出して、各種処理を実行する演算装置である。
補助記憶装置28は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置28には、例えば、サーバプログラム210等が格納されている。
本実施形態に係るサーバ装置20は、図4に示すハードウェア構成を有することにより、後述する各種処理が実現される。
次に、本実施形態に係るサービス提供システム1の機能構成について、図5を参照しながら説明する。図5は第一の実施形態に係るサービス提供システム1の機能構成の一例を示す図である。
図5に示すように、本実施形態に係る端末装置10は、利用開始部111と、監視要求部112と、サービス処理部113とを有する。これら各部は、ユーザアプリケーション110がCPU17に実行させる処理により実現される。
また、本実施形態に係る端末装置10は、ジオフェンス取得部121と、選択部122と、生成部123と、設定要求部124と、判定要求部125と、イベント中継部126とを有する。これら各部は、基盤アプリケーション120がCPU17に実行させる処理により実現される。
更に、本実施形態に係る端末装置10は、設定部131と、位置取得部132と、位置判定部133と、イベント通知部134とを有する。これら各部は、OS130がCPU17に実行させる処理により実現される。
利用開始部111は、ユーザアプリケーション110の利用開始イベントを受け付ける。ユーザアプリケーション110の利用開始イベントとは、例えば、ユーザアプリケーション110により表示される利用開始画面における利用開始操作、ユーザアプリケーション110の起動処理における所定のイベント等である。
監視要求部112は、利用開始部111により利用開始イベントが受け付けられると、ジオフェンスの監視を基盤アプリケーション120に要求する。ジオフェンスの監視とは、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかを判定することである。
サービス処理部113は、ユーザがジオフェンスに進入したことを示すイベント(inイベント)又はユーザがジオフェンスから離脱したことを示すイベント(exitイベント)が基盤アプリケーション120から通知された場合、イベントに応じた処理を行う。
例えば、ユーザがジオフェンスに進入したことを示すイベント(inイベント)が通知された場合、サービス処理部113は、当該ジオフェンスに対応するサービスアプリケーションの取得要求をサーバ装置20に送信する。これにより、ユーザが進入したジオフェンスに対応するサービスを実現するサービスアプリケーションがサーバ装置20から取得される。
一方で、例えば、ユーザがジオフェンスから離脱したことを示すイベント(exitイベント)が通知された場合、サービス処理部113は、当該ジオフェンスに対応するサービスアプリケーションを端末装置10から削除する。
ジオフェンス取得部121は、監視要求部112によりジオフェンスの監視が要求されると、ジオフェンス定義情報の取得要求をサーバ装置20に送信する。このとき、ジオフェンス取得部121は、例えば、位置取得部132により取得された位置情報(すなわち、端末装置10を利用するユーザの現在位置を示す位置情報)を含む当該取得要求をサーバ装置20に送信する。
ジオフェンス定義情報の取得要求に応じてサーバ装置20から返信されるジオフェンス定義情報は、ジオフェンス取得部121により、アプリ側ジオフェンス定義テーブル300に格納される。アプリ側ジオフェンス定義テーブル300は、基盤アプリケーション120により管理されるテーブルであり、サーバ装置20から返信されたジオフェンス定義情報(すなわち、サービス用ジオフェンスを定義したジオフェンス定義情報)を格納する。アプリ側ジオフェンス定義テーブル300は、例えば補助記憶装置18に記憶される。なお、アプリ側ジオフェンス定義テーブル300の詳細については後述する。
選択部122は、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、監視対象としてOS130に設定するジオフェンス定義情報を選択する。このとき、選択部122は、OS130に設定可能なジオフェンスの最大数Mから、制御用ジオフェンスの数L(本実施形態ではL=1)以上少ない数のジオフェンス定義情報を、当該ジオフェンス定義情報が定義するジオフェンスとユーザの現在位置とが近い順にアプリ側ジオフェンス定義テーブル300から選択する。
生成部123は、制御用ジオフェンスのジオフェンス定義情報を生成する。このとき、生成部123は、例えば、ユーザの現在位置を中心として所定の半径の円形領域を表す制御用ジオフェンスのジオフェンス定義情報を生成する。
設定要求部124は、選択部122により選択されたジオフェンス定義情報(サービス用ジオフェンスのジオフェンス定義情報)の設定をOS130に要求する。また、設定要求部124は、生成部123により生成されたジオフェンス定義情報(制御用ジオフェンスのジオフェンス定義情報)の設定をOS130に要求する。
判定要求部125は、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかの判定をOS130に要求する。
イベント中継部126は、OS130から通知されたイベント(inイベント又はexitイベント)をユーザアプリケーション110等に中継する。例えば、イベント中継部126は、サービス用ジオフェンスへのinイベント又はサービス用ジオフェンスからのexitイベントが通知された場合、当該inイベント又はexitイベントをユーザアプリケーション110に通知する。
また、イベント中継部126は、制御用ジオフェンスからのexitイベントが通知された場合、当該exitイベントを選択部122及び生成部123に通知する。制御用ジオフェンスからのexitイベントが選択部122に通知されることで、選択部122では、新たなサービス用ジオフェンスが選択される。同様に、制御用ジオフェンスからのexitイベントが生成部123に通知されることで、生成部123では、新たな制御用ジオフェンスが生成される。
一方で、イベント中継部126は、制御用ジオフェンスへのinイベントが通知された場合、当該inイベントを破棄する。これは、ユーザの現在位置を含む制御用ジオフェンス(例えば、ユーザの現在位置を中心として所定の半径の円形領域を表す制御用ジオフェンス)がOS130に設定されると、inイベントが発生するが、ユーザアプリケーション110等にとって、制御用ジオフェンスへのinイベントの通知は不要だからである。
設定部131は、設定要求部124からの要求に応じて、ジオフェンス定義情報をOS側ジオフェンス定義テーブル400に格納する。OS側ジオフェンス定義テーブル400は、OS130により管理されるテーブルであり、監視対象のジオフェンスを表すジオフェンス定義情報を格納する。ジオフェンス定義情報がOS側ジオフェンス定義テーブル400に格納されることで、当該ジオフェンス定義情報によって表されるジオフェンスが監視対象としてOS130に設定される。OS側ジオフェンス定義テーブル400は、例えば補助記憶装置18に記憶される。なお、OS側ジオフェンス定義テーブル400の詳細については後述する。
位置取得部132は、GPS受信機19により測定された位置(すなわち、端末装置10を利用するユーザの現在位置)を示す位置情報を取得する。
位置判定部133は、OS側ジオフェンス定義テーブル400を参照して、ユーザがジオフェンスに進入したか又はジオフェンスから離脱したかを判定する。すなわち、位置判定部133は、位置取得部132により取得された位置情報により示される位置(ユーザの現在位置)がジオフェンスに進入したか又はジオフェンスから離脱したかを判定する。
イベント通知部134は、位置判定部133によりユーザがジオフェンスに進入したと判定された場合、当該ジオフェンスへの進入を示すinイベントを基盤アプリケーション120に通知する。また、イベント通知部134は、位置判定部133によりユーザがジオフェンスから離脱したと判定された場合、当該ジオフェンスからの離脱を示すexitイベントを基盤アプリケーション120に通知する。
図5に示すように、本実施形態に係るサーバ装置20は、ジオフェンス提供部211と、アプリ提供部212とを有する。これら各部は、サーバプログラム210がCPU27に実行させる処理により実現される。
また、本実施形態に係るサーバ装置20は、上述したように、ジオフェンス定義DB220と、サービスアプリケーションDB230とを有する。これら各DBは、例えば補助記憶装置28を用いて実現可能である。なお、これら各DBのうちの少なくとも1つのDBが、サーバ装置20とネットワークNを介して接続される記憶装置等を用いて実現されていても良い。
ジオフェンス提供部211は、ジオフェンス定義情報の取得要求を受信すると、当該取得要求に対応するジオフェンス定義情報をジオフェンス定義DB220から取得し、当該ジオフェンス定義情報を端末装置10に返信する。
アプリ提供部212は、サービスアプリケーションの取得要求を受信すると、当該取得要求に対応するサービスアプリケーションをサービスアプリケーションDB230から取得し、当該サービスアプリケーションを端末装置10に返信する。
ジオフェンス定義DB220は、地図上に定義されたサービス用ジオフェンスを表すジオフェンス定義情報を格納する。ここで、ジオフェンス定義DB220について、図6を参照しながら説明する。図6は、ジオフェンス定義DB220の一例を示す図である。
図6に示すように、ジオフェンス定義DB220には、提供地域毎に、ジオフェンス定義情報が格納されている。図6に示すジオフェンス定義DB220には、提供地域「地域A」の1以上のジオフェンス定義情報、提供地域「地域B」の1以上のジオフェンス定義情報等が格納されている。これは、例えば、ジオフェンス定義情報の取得要求に含まれる位置情報により示される位置が地域Aに含まれる場合、ジオフェンス提供部211は、提供地域「地域A」のジオフェンス定義情報を端末装置10に送信することを示している。同様に、例えば、ジオフェンス定義情報の取得要求に含まれる位置情報により示される位置が地域Bに含まれる場合、ジオフェンス提供部211は、提供地域「地域B」のジオフェンス定義情報を端末装置10に送信することを示している。これにより、ユーザアプリケーション110の利用開始イベントを受け付けたときにおけるユーザの現在位置に対応するジオフェンス定義情報が端末装置10に提供される。
なお、提供地域に設定される地域は、例えば、地図上の緯度及び経度を各頂点とする多角形領域等で定義される。当該多角形領域等によって、例えば、都道府県や市区町村、地方(例えば、東北地方や関東地方、東海地方等)等の各種地域を示す地理的な範囲が表される。
また、各ジオフェンス定義情報には、データの項目として、ジオフェンスIDと、ジオフェンス名と、緯度と、経度と、半径とが含まれる。
ジオフェンスIDは、ジオフェンスを識別する識別情報である。ジオフェンス名は、ジオフェンスの名称である。緯度及び経度は、ジオフェンスの中心を示す緯度及び経度である。半径は、ジオフェンスの半径である。これにより、ジオフェンス定義情報では、所定の緯度及び経度を中心とした所定の半径で表される円を境界とする円形領域がジオフェンスとして定義される。
なお、ジオフェンスは、円形領域に限られない。ジオフェンス定義情報では、例えば、楕円領域や多角形領域、種々の曲線を境界とする領域等で表されるジオフェンスが定義されていても良い。
また、図6に示すジオフェンス定義DB220では、提供地域毎にジオフェンス定義情報が格納されている場合について説明したが、これに限られない。ジオフェンス定義DB220では、例えば、ユーザアプリケーション110を識別するアプリID毎にジオフェンス定義情報が格納されていても良いし、アプリID及び提供地域毎にジオフェンス定義情報が格納されていても良い。これにより、複数の種類のユーザアプリケーション110が存在する場合に、例えば、ユーザアプリケーション110毎に、当該ユーザアプリケーション110に対応するジオフェンス定義情報を端末装置10に提供することができる。
サービスアプリケーションDB230は、サービスアプリケーションを格納する。ここで、サービスアプリケーションDB230について、図7を参照しながら説明する。図7は、サービスアプリケーションDB230の一例を示す図である。
図7に示すように、サービスアプリケーションDB230には、ジオフェンスID毎に、当該ジオフェンスIDに対応付けてサービスアプリケーションが格納されている。例えば、ジオフェンスID「a001」には、アプリケーション名「サービスアプリ1」のサービスアプリケーションが対応付けられている。同様に、例えば、ジオフェンスID「a002」には、アプリケーション名「サービスアプリ2」のサービスアプリケーションが対応付けられている。これは、例えば、ジオフェンスID「a001」により識別されるジオフェンス定義情報が定義するジオフェンスにユーザが進入した場合、端末装置10には、アプリケーション名「サービスアプリ1」のサービスアプリケーションが提供されることを示している。同様に、例えば、ジオフェンスID「a002」により識別されるジオフェンス定義情報が定義するジオフェンスにユーザが進入した場合、端末装置10には、アプリケーション名「サービスアプリ2」のサービスアプリケーションが提供されることを示している。
以降では、本実施形態に係るサービス提供システム1の全体処理について、図8を参照しながら説明する。図8は、第一の実施形態に係るサービス提供システム1の全体処理の一例を示す図である。
まず、ユーザアプリケーション110の利用開始部111は、当該ユーザアプリケーション110の利用開始イベントを受け付ける(ステップS801)。
次に、ユーザアプリケーション110の監視要求部112は、利用開始部111により利用開始イベントが受け付けられると、ジオフェンスの監視を基盤アプリケーション120に要求する(ステップS802)。
基盤アプリケーション120のジオフェンス取得部121は、監視要求部112によりジオフェンスの監視が要求されると、位置情報の取得をOS130に要求する(ステップS803)。
OS130の位置取得部132は、ジオフェンス取得部121により位置情報の取得が要求されると、GPS受信機19により測定された位置を示す位置情報を取得する(ステップS804)。そして、位置取得部132は、取得した位置情報を基盤アプリケーション120に返信する(ステップS805)。
なお、端末装置10の現在位置は、GPS受信機19により測定される場合に限られない。端末装置10の現在位置は、例えば、Wi-Fi(登録商標)により測定されても良いし、Bluetooth(登録商標)等を用いたビーコンにより測定されても良い。
基盤アプリケーション120のジオフェンス取得部121は、OS130から位置情報が返信されると、ジオフェンスの取得要求をサーバ装置20に送信する(ステップS806)。このとき、ジオフェンスの取得要求には、OS130から返信された位置情報(すなわち、ユーザの現在位置を示す位置情報)が含まれる。
なお、ジオフェンス取得部121は、上述したように、ジオフェンスの取得要求にアプリIDを含めても良い。
サーバ装置20のジオフェンス提供部211は、ジオフェンス定義情報の取得要求を受信すると、当該取得要求に対応するジオフェンス定義情報をジオフェンス定義DB220から取得する(ステップS807)。すなわち、ジオフェンス提供部211は、当該取得要求に含まれる位置情報により示される位置が含まれる提供地域を特定し、特定した提供地域のジオフェンス定義情報をジオフェンス定義DB220から取得する。
ジオフェンス提供部211は、ジオフェンス定義DB220から取得したジオフェンス定義情報を端末装置10に返信する(ステップS808)。なお、このとき、ジオフェンス提供部211は、特定した提供地域に関する情報(例えば、提供地域を表す地域名、提供地域を定義する多角形領域等を表す情報等)を端末装置10に返信しても良い。
基盤アプリケーション120のジオフェンス取得部121は、サーバ装置20から返信されたジオフェンス定義情報をアプリ側ジオフェンス定義テーブル300に格納する(ステップS809)。
ここで、アプリ側ジオフェンス定義テーブル300について、図9を参照しながら説明する。図9は、アプリ側ジオフェンス定義テーブル300の一例を示す図である。図9に示すように、アプリ側ジオフェンス定義テーブル300には、サーバ装置20から返信されたジオフェンス定義情報が格納される。
なお、本実施形態では、アプリ側ジオフェンス定義テーブル300には、サーバ装置20から返信されたジオフェンス定義情報が格納されるものとしたが、これに限られない。例えば、アプリ側ジオフェンス定義テーブル300には予めジオフェンス定義情報が格納されていても良い。
図8に戻る。ステップS809に続いて、基盤アプリケーション120及びOS130は、初期設定処理を行う(ステップS810)。初期設定処理では、サービス用ジオフェンスを表すジオフェンス定義情報の選択と、制御用ジオフェンスを表すジオフェンス定義情報の生成とが行われ、これらのジオフェンス定義情報がOS130に設定される。なお、初期設定処理の詳細は後述する。
次に、端末装置10及びサーバ装置20は、例えばユーザアプリケーション110が利用終了イベントを受け付けるまで、サービス提供処理を行う(ステップS811)。ユーザアプリケーション110の利用終了イベントとは、例えば、ユーザアプリケーション110により表示される所定の画面における利用終了操作等である。サービス提供処理では、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかが判定され、判定結果に応じて、ジオフェンスの再設定やサービスの提供が行われる。なお、サービス提供処理の詳細は後述する。
以降では、図8のステップS810の処理(初期設定処理)の詳細について、図10を参照しながら説明する。図10は、第一の実施形態に係る初期設定処理の一例を示すシーケンス図である。
まず、基盤アプリケーション120の選択部122は、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報の数が選択可能数Sを超えているか否かを判定する(ステップS1001)。選択可能数Sとは、OS130に設定可能なサービス用ジオフェンスの数である。選択可能数Sは、OS130に設定可能なジオフェンスの最大数Mと、制御用ジオフェンスの数L(本実施形態ではL=1)とを用いて、S=M-Lと表される。
上記のステップS1001において、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報の数が選択可能数Sを超えていないと判定された場合、基盤アプリケーション120は、ステップS1002の処理を行う。すなわち、この場合、基盤アプリケーション120の選択部122は、アプリ側ジオフェンス定義テーブル300に格納されている全てのジオフェンス定義情報を選択する(ステップS1002)。これにより、S個以下のジオフェンス定義情報が選択される。
一方で、上記のステップS1001において、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報の数が選択可能数Sを超えていると判定された場合、基盤アプリケーション120は、ステップS1003の処理を行う。すなわち、この場合、基盤アプリケーション120の選択部122は、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、当該ジオフェンス定義情報が定義するジオフェンスとユーザの現在位置とが近い順に最大でS個のジオフェンス定義情報を選択する(ステップS1003)。
ユーザの現在位置から近い順とは、例えば、ジオフェンス定義情報に含まれる緯度及び経度と、現在位置を示す緯度及び経度とが近い順としても良いし、ジオフェンスの境界と、現在位置を示す緯度及び経度とが近い順としても良い。また、現在位置としては、例えば、図8のステップS805で返信された位置情報により示される位置を用いても良いし、位置取得部132により位置情報を取得し直しても良い。
なお、選択部122によるジオフェンス定義情報の選択は、ユーザの現在位置からの近い順での選択に限られない。例えば、ジオフェンス定義情報に優先度が設定されるような場合には、選択部122は、優先度が高い順に最大でS個のジオフェンス定義情報を選択しても良い。
ステップS1002又はステップS1003に続いて、基盤アプリケーション120の設定要求部124は、サービス用ジオフェンスの設定をOS130に要求する(ステップS1004)。当該要求には、選択部122により選択されたジオフェンス定義情報が含まれる。
OS130の設定部131は、設定要求部124からサービス用ジオフェンスの設定が要求されると、当該要求に含まれているジオフェンス定義情報をOS側ジオフェンス定義テーブル400に格納する(ステップS1005)。これにより、サービス用ジオフェンスがOS130に設定される。
次に、基盤アプリケーション120の生成部123は、制御用ジオフェンスのジオフェンス定義情報を生成する(ステップS1006)。生成部123は、例えば、ユーザの現在位置を中心として所定の半径(例えば、数百メートル等)の円形領域を表す制御用ジオフェンスのジオフェンス定義情報を生成する。
ただし、生成部123により生成される制御用ジオフェンスのジオフェンス定義情報は、これに限られない。生成部123は、例えば、ユーザの現在位置を含む円形以外の領域を表す制御用ジオフェンスのジオフェンス定義情報を生成しても良い。円形以外の領域としては、例えば、楕円領域、多角形領域、種々の曲線を境界とする領域等であっても良い。
次に、基盤アプリケーション120の設定要求部124は、制御用ジオフェンスの設定をOS130に要求する(ステップS1007)。当該要求には、生成部123により生成されたジオフェンス定義情報が含まれる。
OS130の設定部131は、設定要求部124から制御用ジオフェンスの設定が要求されると、当該要求に含まれているジオフェンス定義情報をOS側ジオフェンス定義テーブル400に格納する(ステップS1008)。これにより、制御用ジオフェンスがOS130に設定される。
ここで、一例として、OS130に設定可能なジオフェンスの最大数Mが「20」である場合におけるOS側ジオフェンス定義テーブル400について、図11を参照しながら説明する。図11は、OS側ジオフェンス定義テーブル400の一例を示す図である。
図11に示すように、OS側ジオフェンス定義テーブル400には、ジオフェンスIDが「a001」~「a019」の19個のサービス用ジオフェンスのジオフェンス定義情報が格納されている。また、OS側ジオフェンス定義テーブル400には、ジオフェンスIDが「c000」の1個の制御用ジオフェンスのジオフェンス定義情報が格納されている。
このように、OS側ジオフェンス定義テーブル400には、S=M-L個以下のサービス用ジオフェンスのジオフェンス定義情報と、L個(本実施形態ではL=1)の制御用ジオフェンスのジオフェンス定義情報とが格納される。上述したように、OS側ジオフェンス定義テーブル400に格納されるジオフェンス定義情報が定義するジオフェンスが監視対象のジオフェンスである。
なお、図10では、サービス用ジオフェンスが選択及び設定(ステップS1001~ステップS1005)された後、制御用ジオフェンスが生成及び設定(ステップS1006~ステップS1008)されるが、この処理順は逆であっても良い。すなわち、制御用ジオフェンスが生成及び設定(ステップS1006~ステップS1008)された後、サービス用ジオフェンスが選択及び設定(ステップS1001~ステップS1005)されても良い。更に、生成された制御用ジオフェンスと選択されたサービス用ジオフェンスとが、OS130側の監視対象として同時に設定されても良い。
以降では、図8のステップS811の処理(サービス提供処理)の詳細について、図12を参照しながら説明する。図12は、第一の実施形態に係るサービス提供処理の一例を示すシーケンス図である。
まず、基盤アプリケーション120の判定要求部125は、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかの判定をOS130に要求する(ステップS1201)。
OS130は、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかの判定が判定要求部125から要求されると、ジオフェンスへの進入又はジオフェンスからの離脱判定処理を開始する(ステップS1202)。ここで、ジオフェンスへの進入又はジオフェンスからの離脱判定処理について、図13を参照しながら説明する。図13は、第一の実施形態に係るジオフェンスへの進入又はジオフェンスからの離脱を判定する処理の一例を示すフローチャートである。
OS130の位置取得部132は、GPS受信機19により測定された位置(すなわち、端末装置10を利用するユーザの現在位置)を示す位置情報を取得する(ステップS1301)。
次に、位置判定部133は、OS側ジオフェンス定義テーブル400を参照して、ユーザが、それぞれのジオフェンスに進入したか、又はそれぞれのジオフェンスから離脱したかを判定する(ステップS1302)。例えば、位置判定部133は、OS側ジオフェンス定義テーブル400に格納されているジオフェンス定義情報毎に、当該ジオフェンス定義情報が定義するジオフェンスにユーザの現在位置が含まれるか否かを判定する。そして、位置判定部133は、当該ジオフェンス定義情報が定義するジオフェンスにユーザの現在位置が含まれると判定した場合、ユーザが当該ジオフェンスに進入したと判定する。一方で、位置判定部133は、ユーザの現在位置が含まれていたジオフェンスからユーザの現在位置が含まれなくなったと判定された場合、ユーザが当該ジオフェンスから離脱したと判定する。
ステップS1302において、ユーザがジオフェンスに進入したと判定されず、かつ、ユーザがジオフェンスから離脱したとも判定されなかった場合、OS130は、ステップS1301に戻る。したがって、この場合、例えば所定の時間毎に、上記のステップS1301及びステップS1302の処理が繰り返し行われる。例えば、GPS受信機19による位置の測定間隔がΔTである場合、ΔT毎に、上記のステップS1301及びステップS1302の処理が繰り返し行われる。
これにより、監視対象としてOS130に設定されたジオフェンス(サービス用ジオフェンス及び制御用ジオフェンス)が監視される。
一方で、ステップS1302において、ユーザがジオフェンスに進入したと判定された場合、又は、ユーザがジオフェンスから離脱したと判定された場合、OS130は、ジオフェンスへの進入又はジオフェンスからの離脱判定処理を終了する。
図12に戻る。ステップS1202において、ユーザがジオフェンスに進入したと判定された場合、後述するステップS1203~ステップS1207の処理が行われる。一方で、ステップS1202において、ユーザがジオフェンスから離脱したと判定された場合、後述するステップS1208~ステップS1211の処理が行われる。
ステップS1202において、ユーザがジオフェンスに進入したと判定された場合、イベント通知部134は、当該ジオフェンスへの進入を示すinイベントを基盤アプリケーション120に通知する(ステップS1203)。inイベントには、ユーザが進入したジオフェンスを識別するジオフェンスIDが含まれる。なお、inイベントには、例えば、図8のステップ1301で取得された位置情報(ユーザの現在位置を示す位置情報)が含まれていても良い。
基盤アプリケーション120のイベント中継部126は、OS130から通知されたinイベントがサービス用ジオフェンスへの進入を示すinイベントである場合、当該inイベントをユーザアプリケーション110に通知する(ステップS1204)。一方で、基盤アプリケーション120のイベント中継部126は、OS130から通知されたinイベントが制御用ジオフェンスへの進入を示すinイベントである場合、当該inイベントを破棄する。なお、イベント中継部126は、例えば、inイベントに含まれるジオフェンスIDがアプリ側ジオフェンス定義テーブル300に含まれない場合、当該ジオフェンスIDにより識別されるジオフェンスを制御用ジオフェンスと判断すれば良い。一方で、イベント中継部126は、例えば、inイベントに含まれるジオフェンスIDがアプリ側ジオフェンス定義テーブル300に含まれる場合、当該ジオフェンスIDにより識別されるジオフェンスをサービス用ジオフェンスと判断すれば良い。
ユーザアプリケーション110のサービス処理部113は、inイベントが基盤アプリケーション120から通知されると、サービスアプリケーションの取得要求をサーバ装置20に送信する(ステップS1205)。サービスアプリケーションの取得要求には、当該inイベントに含まれているジオフェンスIDが含まれる。
サーバ装置20のアプリ提供部212は、サービスアプリケーションの取得要求を受信すると、当該取得要求に対応するサービスアプリケーションをサービスアプリケーションDB230から取得する(ステップS1206)。すなわち、アプリ提供部212は、当該取得要求に含まれるジオフェンスIDに対応するサービスアプリケーションをサービスアプリケーションDB230から取得する。
そして、アプリ提供部212は、サービスアプリケーションDB230から取得したサービスアプリケーションを端末装置10に返信する(ステップS1207)。
これにより、端末装置10を利用するユーザに対して、サービスアプリケーションにより実現されるサービスが提供される。ここで、一例として、ユーザアプリケーション110が「A市観光アプリ」であり、A市内にある「ABCモール」を示す地理的範囲に定義されたサービス用ジオフェンスにユーザが進入した場合に提供されるサービスの利用画面について、図14を参照しながら説明する。図14は、サービス利用画面の一例を示す図である。
図14に示すサービス利用画面G100は、ユーザアプリケーション110により表示される画面である。サービスアプリケーションの一例である「ABCモールアプリ」がサーバ装置20から返信された場合、ユーザアプリケーション110は、サービス利用画面G100上にアイコンG110を表示する。
アイコンG110は、「ABCモールアプリ」により提供されるサービスを利用するための表示部品である。ユーザによりアイコンG110が選択されると、「ABCモールアプリ」により、サービス利用画面G200が表示される。これにより、ユーザは、「ABCモールアプリ」により提供されるサービス(例えば、「ABCモール」内の店舗で利用可能なクーポン情報)を利用することができる。
なお、本実施形態では、ユーザがサービス用ジオフェンスに進入した場合、ユーザアプリケーション110が当該サービス用ジオフェンスに対応するサービスアプリケーションをサーバ装置20から取得する場合について説明したが、これに限られない。ユーザがサービス用ジオフェンスに進入した場合、ユーザアプリケーション110は、例えば、当該サービス用ジオフェンスに対応する情報の出力(例えば、画像や文字情報等の表示、動画や音楽等の再生、メール送信等)を行っても良い。
図12に戻る。ステップS1202において、ユーザがジオフェンスから離脱したと判定された場合、イベント通知部134は、当該ジオフェンスからの離脱を示すexitイベントを基盤アプリケーション120に通知する(ステップS1208)。exitイベントには、ユーザが離脱したジオフェンスを識別するジオフェンスIDが含まれる。なお、exitイベントには、例えば、図8のステップ1301で取得された位置情報(ユーザの現在位置を示す位置情報)が含まれていても良い。
OS130から通知されたexitイベントがサービス用ジオフェンスからの離脱を示すexitイベントである場合、基盤アプリケーション120のイベント中継部126は、当該exitイベントをユーザアプリケーション110に通知する(ステップS1209)。
ユーザアプリケーション110のサービス処理部113は、exitイベントが基盤アプリケーション120から通知されると、当該exitイベントに含まれるジオフェンスIDに対応するサービスアプリケーションを削除する(ステップS1210)。これにより、当該サービスアプリケーションによるサービスの提供が終了する。
一方で、OS130から通知されたexitイベントが制御用ジオフェンスからの離脱を示すexitイベントである場合、基盤アプリケーション120は、ジオフェンスの再設定処理を行う(ステップS1211)。すなわち、基盤アプリケーション120は、サービス用ジオフェンスの再選択及びOS130への再設定と、制御用ジオフェンスの再生成及びOS130への再設定とを行う。ここで、ジオフェンスの再設定処理について、図15を参照しながら説明する。図15は、第一の実施形態に係るジオフェンスの再設定処理の一例を示すシーケンス図である。
まず、基盤アプリケーション120の設定要求部124は、ジオフェンスの削除をOS130に要求する(ステップS1501)。
OS130の設定部131は、設定要求部124からジオフェンスの削除が要求されると、OS側ジオフェンス定義テーブル400に格納されている全てのジオフェンス定義情報を削除する(ステップS1502)。これにより、監視対象としてOS130に設定されているジオフェンスが削除される。
次に、基盤アプリケーション120の選択部122は、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、当該ジオフェンス定義情報が定義するジオフェンスとユーザの現在位置とが近い順に最大でS個のジオフェンス定義情報を選択する(ステップS1503)。
なお、例えば、OS130から通知されたexitイベントに含まれる位置情報に基づいて、ユーザの現在位置が属する地域(提供地域)が変更になったか否かが判定されても良い。このような判定は、例えば、当該位置情報と、図8のステップS808でサーバ装置20から返信された提供地域に関する情報とに基づいて端末装置10で行われても良いし、当該位置情報が含まれる問合せを端末装置10からサーバ装置20に送信することで、サーバ装置20で行われても良い。そして、端末装置10は、ユーザの現在位置が属する地域が変更になったと判定された場合、上記のステップS1503の処理の前に、ジオフェンス取得部121により、変更後の地域(提供地域)に対応するジオフェンス定義情報をサーバ装置20から取得し、アプリ側ジオフェンス定義テーブル300を更新しても良い。
次に、基盤アプリケーション120の設定要求部124は、サービス用ジオフェンスの設定をOS130に要求する(ステップS1504)。当該要求には、選択部122により選択されたジオフェンス定義情報が含まれる。
OS130の設定部131は、設定要求部124からサービス用ジオフェンスの設定が要求されると、当該要求に含まれているジオフェンス定義情報をOS側ジオフェンス定義テーブル400に格納する(ステップS1505)。これにより、サービス用ジオフェンスがOS130に再設定される。
なお、上記のステップS1502の処理は必ずしも実行される必要はない。つまり、OS130はOS側ジオフェンス定義テーブル400からジオフェンス定義情報を削除せずに、例えば、選択部122は監視対象としてOS130に過去に設定済みのサービス用ジオフェンスを記憶しておく。そして、選択部122は、これらのサービス用ジオフェンスと、ステップS1503で今回選択されたサービス用ジオフェンスとの差分を特定する。そして、選択部122は、OS側ジオフェンス定義テーブル400に格納されているジオフェンス定義情報のうち、今回選択されなかったサービス用ジオフェンスのジオフェンス定義情報を削除するともに、今回新たに選択されたサービス用ジオフェンスのジオフェンス定義情報を追加するように、OS130に要求しても良い。これにより、OS130に対するサービス用ジオフェンスの監視設定及び削除に関する要求を、効率化することができる。
次に、基盤アプリケーション120の生成部123は、制御用ジオフェンスのジオフェンス定義情報を生成する(ステップS1506)。生成部123は、例えば、ユーザの現在位置を中心として所定の半径の円形領域を表す制御用ジオフェンスのジオフェンス定義情報を生成する。このとき、生成部123は、ユーザの現在位置として、例えば、OS130から通知されたexitイベントに含まれる位置情報が示す位置を用いれば良い。なお、生成部123は、位置取得部132により、ユーザの現在位置を示す位置情報を取得し直しても良い。
次に、基盤アプリケーション120の設定要求部124は、制御用ジオフェンスの設定をOS130に要求する(ステップS1507)。当該要求には、生成部123により生成されたジオフェンス定義情報が含まれる。
OS130の設定部131は、設定要求部124から制御用ジオフェンスの設定が要求されると、当該要求に含まれているジオフェンス定義情報をOS側ジオフェンス定義テーブル400に格納する(ステップS1508)。これにより、制御用ジオフェンスがOS130に再設定される。
なお、図15では、OS側ジオフェンス定義テーブル400からジオフェンス定義情報が削除(ステップS1501~ステップS1502)された後、サービス用ジオフェンスの選択及び設定と、制御用ジオフェンスの生成及び設定とが行われるが、これに限られない。例えば、OS側ジオフェンス定義テーブル400に格納されているジオフェンス定義情報のうち、サービス用ジオフェンスのジオフェンス定義情報が削除された後、サービス用ジオフェンスの選択及び設定が行われても良い。同様に、例えば、OS側ジオフェンス定義テーブル400に格納されているジオフェンス定義情報のうち、制御用ジオフェンスのジオフェンス定義情報が削除された後、制御用ジオフェンスの生成及び設定が行われても良い。
また、サービス用ジオフェンスの選択及び設定(ステップS1503~ステップS1505)と、制御用ジオフェンスの生成及び設定(ステップS1506~ステップS1508)との処理順は逆であっても良い。
以上のように、本実施形態に係る端末装置10は、地図上に予め定義されたサービス用ジオフェンスから選択されたサービス用ジオフェンスと、ユーザの現在位置が含まれる制御用ジオフェンスとを監視対象としてOS130に設定する。そして、本実施形態に係る端末装置10は、ユーザが制御用ジオフェンスから離脱した場合に、サービス用ジオフェンスの再選択及び再設定と、制御用ジオフェンスの再生成及び再設定とを行う。これにより、本実施形態に係る端末装置10は、ユーザの移動に応じて、監視対象のエリア(サービス用ジオフェンス)を適切に切り替えることができる。
また、本実施形態に係る端末装置10は、当該判定をOS130が行うため、例えば、基盤アプリケーション120がバックグラウンドで動作している場合であっても、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかを判定することができる。同様に、本実施形態に係る端末装置10は、例えば、基盤アプリケーション120を起動していない場合であっても、ユーザがジオフェンスに進入したか又はユーザがジオフェンスから離脱したかを判定することができる。
更に、本実施形態に係る端末装置10は、ユーザがサービス用ジオフェンスに進入した場合に、サービス用ジオフェンスの再選択及び再設定と、制御用ジオフェンスの再生成及び再設定とを行っても良い。ユーザがサービス用ジオフェンスに進入した場合に、サービス用ジオフェンスの再選択及び再設定と、制御用ジオフェンスの再生成及び再設定とを行う場合について、図16を参照しながら説明する。図16は、第一の実施形態に係るサービス提供処理の他の例を示すシーケンス図である。なお、図16におけるステップS1201~ステップS1211は、図12と同様であるため、その説明を省略する。
基盤アプリケーション120は、ユーザアプリケーション110にinイベントを通知(ステップS1204)した後、ステップS1211を行う。これにより、基盤アプリケーション120によりジオフェンスの再設定処理(図12のステップS1211の処理)が行われる。
このように、本実施形態に係る端末装置10は、当該アプリケーションによるサービスの提供と共に、ジオフェンスの再設定処理(図12のステップS1211の処理)を行っても良い。
また、同様に、本実施形態に係る端末装置10は、ユーザがサービス用ジオフェンスから離脱した場合に、サービス用ジオフェンスの再選択及び再設定と、制御用ジオフェンスの再生成及び再設定とを行っても良い。この場合、基盤アプリケーション120は、ユーザアプリケーション110にexitイベントを通知(図12のステップS1209)した後、ジオフェンスの再設定を行えば良い。
(第二の実施形態)
次に、第二の実施形態について説明する。第二の実施形態では、制御用ジオフェンスが円形領域であるものとし、当該制御用ジオフェンスの半径r0を動的に算出する場合について説明する。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同様の構成要素については第一の実施形態と同一の符号を付与し、その説明を省略する。
まず、本実施形態に係るサービス提供システム1の機能構成について、図17を参照しながら説明する。図17は、第二の実施形態に係るサービス提供システム1の機能構成の一例を示す図である。
図17に示すように、本実施形態に係る端末装置10は、生成部123Aを有する。生成部123Aは、半径r0の円形領域を表す制御用ジオフェンスのジオフェンス定義情報を生成する。このとき、生成部123Aは、例えば、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、選択部122により選択されなかったジオフェンス定義情報が定義するサービス用ジオフェンスまでの距離に基づいて、半径r0を算出する。
以降では、本実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理(図10のステップS1006及び図15のステップS1506の処理)について、図18を参照しながら説明する。図18は、第二の実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理の一例を示すフローチャートである。
まず、生成部123Aは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、選択部122により選択されなかったジオフェンス定義情報を特定する。言い換えれば、生成部123Aは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、OS130に設定されないサービス用ジオフェンスのジオフェンス定義情報を特定する。
そして、生成部123Aは、ユーザの現在位置と、特定したジオフェンス定義情報が定義するサービス用ジオフェンスとの距離をそれぞれ算出する(ステップS1801)。
例えば、図19に示すように、「place1」~「place10」のサービス用ジオフェンスのうち、「place1」~「place4」及び「place9」~「place10」が選択部122により選択されなかったサービス用ジオフェンスであるとする。この場合、生成部123Aは、ユーザの現在位置と、「place1」~「place4」及び「place9」~「place10」がそれぞれ表すサービス用ジオフェンスとの距離をそれぞれ算出する。なお、ユーザの現在位置と、サービス用ジオフェンスとの距離としては、ユーザの現在位置から、サービス用ジオフェンスの境界までの距離のうちの最短距離とすれば良い。
なお、選択部122によるサービス用ジオフェンスの選択が、生成部123Aによる制御用ジオフェンスの生成よりも後に行われる場合、生成部123Aは、選択部122により選択されないジオフェンス定義情報を特定すれば良い。
次に、生成部123Aは、上記のステップS1801で算出した距離のうちの最短距離Dminに基づいて、制御用ジオフェンスの半径r0を算出する(ステップS1802)。生成部123Aは、例えば、以下の(1)又は(2)により半径r0を算出すれば良い。
(1)図19に示すように、生成部123Aは、上記のステップS1801で算出した距離のうちの最短距離Dmin(すなわち、「place4」のサービス用ジオフェンスまでの距離)を、制御用ジオフェンスの半径r0とする。これは、ユーザの現在位置を中心として半径r0=Dminの円形領域内では、未選択のサービス用ジオフェンス(すなわち、OS130に設定されないサービス用ジオフェンス)が存在しないためである。
(2)図19に示すように、生成部123は、図15に示すジオフェンスの再設定処理中におけるユーザの移動距離を考慮して、制御用ジオフェンスの半径r0を算出する。この場合、ユーザの移動の速さをv、ジオフェンスの再選択処理の処理時間をtpとして、r0=Dmin-v×tpとすれば良い。これにより、例えば、ユーザの移動の速さvが大きい場合であっても、ジオフェンスの再選択処理が完了しないうちに、OS130に設定されていないサービス用ジオフェンスにユーザが進入してしまうような事態を防止することができる。
なお、上記の(1)又は(2)において、所定のマージンMを考慮しても良い。例えば、上記の(1)の場合、r0=Dmin-Mとしても良い。同様に、例えば、上記の(2)の場合、r0=Dmin-v×tp-Mとしても良い。
次に、生成部123Aは、上記のステップS1802で算出した半径r0と、ユーザの現在位置とから、制御用ジオフェンスのジオフェンス定義情報を生成する(ステップS1803)。すなわち、生成部123Aは、例えば、ユーザの現在位置を中心として、上記のステップS1802で算出した半径r0の円形領域を表す制御用ジオフェンスのジオフェンス定義情報を生成する。
以上により、本実施形態に係る端末装置10は、ユーザの移動に応じて、制御用ジオフェンスの半径を動的に算出することができる。このとき、本実施形態に係る端末装置10は、OS130に設定されないサービス用ジオフェンスまでの距離に基づいて、制御用ジオフェンスの半径を算出する。これにより、OS130に設定されていないサービス用ジオフェンスにユーザが進入してしまう事態を防止し、かつ、ジオフェンスの再選択処理の頻度を抑えることができる。
したがって、例えば、制御用ジオフェンスの半径r0が小さいことにより頻繁にジオフェンスの再選択処理が行われ、端末装置10のCPU17の処理負荷や消費電力等が増加してしまう事態を防止することができる。
ここで、本実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理の他の例について、図20を参照しながら説明する。図20は、第二の実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理の他の例を示すフローチャートである。
まず、生成部123Aは、ユーザの移動方向を特定する(ステップS2001)。ユーザの移動方向の特定方法は限定されない。生成部123Aは、例えば、以下の(1)又は(2)の方法により移動方向を特定すれば良い。
(1)端末装置10が加速度センサや電子コンパス等を備える場合、これらの加速度センサや電子コンパスからユーザの移動方向を特定する。
(2)ユーザがこれまでに進入(チェックイン)したサービス用ジオフェンスの履歴からユーザの移動方向を特定する。例えば、ユーザがこれまでにチェックインしたサービス用ジオフェンスが、順に、「placeA」、「placeB」、「placeC」、「placeD」であるとする。また、「placeA」の中心から「placeB」の中心への方向(例えば北を0度として時計回りに正の方向とすれば良い。)をθ1とする。同様に、「placeB」の中心から「placeC」の中心への方向θ2、「placeC」の中心から「placeD」の中心への方向θ3とする。
このとき、方位差d1=θ2-θ1と、d2=θ3-θ2とを算出して、d2-d1が予め決められた所定の値d以下である場合、生成部123Aは、ユーザの移動方向をθ3とすれば良い。
次に、生成部123Aは、上記のステップS2001で特定した移動方向に基づいて、移動方向領域Uを特定する(ステップS2002)。例えば、図21に示すように、生成部123Aは、地図上における所定の領域内であって、移動方向に直交し、かつ、ユーザの現在位置を通る直線に対して当該移動方向側にある領域を移動方向領域Uと特定する。
次に、生成部123Aは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、移動方向領域Uに含まれ、かつ、選択部122により選択されなかったジオフェンス定義情報を特定する。言い換えれば、生成部123Aは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、OS130に設定されず、かつ、移動方向領域Uに含まれるサービス用ジオフェンスのジオフェンス定義情報を特定する。
そして、生成部123Aは、ユーザの現在位置と、特定したジオフェンス定義情報が定義するサービス用ジオフェンスとの距離をそれぞれ算出する(ステップS2003)。
例えば、図21に示すように、「place1」~「place10」のサービス用ジオフェンスのうち、「place1」~「place4」及び「place9」~「place10」が選択部122により選択されなかったサービス用ジオフェンスであるとする。この場合、OS130に設定されず、かつ、移動方向領域Uに含まれるサービス用ジオフェンスは、「place9」及び「place10」となる。したがって、生成部123Aは、ユーザの現在位置と、「place9」及び「place10」がそれぞれ表すサービス用ジオフェンスとの距離をそれぞれ算出する。これは、移動方向領域Uに含まれないサービス用ジオフェンスは、ユーザが進入する可能性が低いためである。これにより、移動方向領域Uに含まれないサービス用ジオフェンスの影響によって、制御用ジオフェンスの半径r0が不必要に小さくなってしまう事態を防止することができる。以降のステップS1802及びステップS1803は、図18と同様である。
以上により、本実施形態に係る端末装置10は、ユーザの移動方向も考慮して、制御用ジオフェンスの半径を動的に算出することができる。このとき、本実施形態に係る端末装置10は、ユーザの移動方向を考慮して、ユーザが進入する可能性が低いサービス用ジオフェンスを除外して、制御用ジオフェンスの半径を算出する。これにより、ジオフェンスの再選択処理の頻度を更に抑えることができる。
なお、図18のステップS1801において、選択部122により選択されなかったジオフェンス定義情報がない場合(すなわち、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報がS個以下である場合)、制御用ジオフェンスの半径は、予め決められた値とされても良い。
(第三の実施形態)
次に、第三の実施形態について説明する。第一の実施形態及び第二の実施形態では、ユーザが制御用ジオフェンスから離脱した場合に、サービス用ジオフェンス及び制御用ジオフェンスの再設定を行う場合について説明した。
ところで、OS130によっては、ユーザが制御用ジオフェンスから離脱したと判定してから、基盤アプリケーション120に対してexitイベントを通知するまで数分程度要する場合がある。このため、例えば、ユーザが自動車等に乗って高速で移動している場合には、ジオフェンスの再設定処理が終了する前に、OS130に設定されていないサービス用ジオフェンスにユーザが進入してしまう事態も考えられる。
一方で、inイベントについては、ユーザがジオフェンスに進入したと判定されてから、基盤アプリケーション120に通知されるまで数秒程度であることが知られている。そこで、第三の実施形態では、ユーザが制御用ジオフェンスに進入した場合に、サービス用ジオフェンス及び制御用ジオフェンスの再設定を行う場合について説明する。
なお、第三の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同様の構成要素については第一の実施形態と同一の符号を付与し、その説明を省略する。
第三の実施形態に係る制御用ジオフェンスの一例について、図22を参照しながら説明する。図22は、第三の実施形態に係る制御用ジオフェンスの一例を説明する図である。
図22に示すように、本実施形態では、例えば、ユーザの現在位置を中心とした半径Rの円と外接し、かつ、隣り合う制御用ジオフェンス同士が外接するようにL(図22に示す例ではL=6)個の制御用ジオフェンスがOS130に設定される。なお、Lには3以上の整数が予め設定される。
端末装置10(コンピュータ)の現在位置に応じて生成される制御用ジオフェンスは、本実施形態においては、端末装置10の現在位置の周囲に生成されるエリアである。例えば、端末装置10の現在位置を中心に所定半径を有する円と外接する円形のエリアが、制御用ジオフェンスとして設定される。
図22に示すような制御用ジオフェンスをOS130に設定することで、ユーザがどの方向に移動したとしても、ユーザは制御用ジオフェンスに進入するようになる。
次に、本実施形態に係るサービス提供システム1の機能構成について、図23を参照しながら説明する。図23は、第三の実施形態に係るサービス提供システム1の機能構成の一例を示す図である。
図23に示すように、本実施形態に係る端末装置10は、生成部123Bと、イベント中継部126Aとを有する。
生成部123Bは、例えば、半径Rの円と外接し、かつ、隣り合う制御用ジオフェンス同士が外接するようなL個の制御用ジオフェンスのそれぞれのジオフェンス定義情報を生成する。
イベント中継部126Aは、OS130から通知されたイベント(inイベント又はexitイベント)を中継する。このとき、イベント中継部126Aは、サービス用ジオフェンスへのinイベント又はサービス用ジオフェンスからのexitイベントが通知された場合、当該inイベント又はexitイベントをユーザアプリケーション110に通知する。
また、イベント中継部126Aは、制御用ジオフェンスへのinイベントが通知された場合、当該inイベントを選択部122に通知する。制御用ジオフェンスへのinイベントが選択部122に通知されることで、選択部122では、サービス用ジオフェンスが新たに選択される。同様に、制御用ジオフェンスへのinイベントが生成部123Bに通知されることで、生成部123Bでは、制御用ジオフェンスが新たに生成される。一方で、イベント中継部126Aは、制御用ジオフェンスからのexitイベントが通知された場合、当該exitイベントを破棄する。
以降では、本実施形態に係るサービス提供システム1の全体処理について、図24を参照しながら説明する。図24は、第三の実施形態に係るサービス提供システム1の全体処理の一例を示す図である。
基盤アプリケーション120のイベント中継部126Aは、OS130から通知されたinイベントが制御用ジオフェンスへの進入を示すinイベントである場合、図15に示すジオフェンスの再設定処理を行う(ステップS2401)。
以上のように、本実施形態に係る端末装置10は、ユーザが制御用ジオフェンスに進入した場合に、ジオフェンスの再設定処理を行う。上述したように、inイベントは、ユーザがジオフェンスに進入したと判定されてから、基盤アプリケーション120に通知されるまで数秒程度である。したがって、例えば、ユーザが自動車等に乗って高速で移動している場合であっても、OS130に設定されていないサービス用ジオフェンスにユーザが進入してしまう事態を防止することができる。
以降では、本実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理(図10のステップS1006及び図15のステップS1506の処理)について、図25を参照しながら説明する。図25は、第三の実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理の一例を示すフローチャートである。
まず、生成部123Bは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、選択部122により選択されなかったジオフェンス定義情報を特定する。言い換えれば、生成部123Bは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、OS130に設定されないサービス用ジオフェンスのジオフェンス定義情報を特定する。
そして、生成部123Aは、ユーザの現在位置と、特定したジオフェンス定義情報が定義するサービス用ジオフェンスとの距離をそれぞれ算出する(ステップS2501)。
次に、生成部123Bは、上記のステップS2501で算出した距離のうちの最短距離Dminに基づいて半径Rを決定する。そして、生成部123Bは、ユーザの現在位置を中心として、決定した半径Rで表される第1の円を決定する(ステップS2502)。生成部123Bは、半径Rとして、例えば、R=Dminとしても良いし、所定のマージンMを考慮して、R=Dmin+Mとしても良い。
次に、生成部123Bは、上記のステップS2502で決定した第1の円に外接し、かつ、隣り合う円同士が外接するL個の第2の円を特定する。そして、生成部123Bは、特定した第2の円を境界とする円形領域をそれぞれ表す制御用ジオフェンスのジオフェンス定義情報を生成する(ステップS2503)。
以上により、本実施形態に係る端末装置10は、ユーザの現在位置を中心として半径Rの円に外接し、かつ、隣り合う制御用ジオフェンス同士が外接するL個の制御用ジオフェンスをOS130に設定することができる。言い換えれば、本実施形態に係る端末装置10は、ユーザの現在位置が含まれないL個の制御用ジオフェンスを、ユーザの周囲を囲むように定義し、OS130に設定することができる。
これにより、本実施形態に係る端末装置10は、ユーザの移動によって、ユーザが制御用ジオフェンスに進入した場合に、サービス用ジオフェンス及び制御用ジオフェンスの再設定を行うにようにすることができる。
本実施形態では、制御用ジオフェンスは、或る時点におけるユーザの現在位置の周囲にあるジオフェンス(例えば、現在位置を中心に所定半径を有する円と外接する円形のエリア)であるため、ユーザがその位置から移動すると自然に、ジオフェンス進入のイベントが発生することになる。これにより、アプリケーション140(基盤アプリケーション120)側ではOS130からの通知を受けて、サービス用ジオフェンスを再選択及び再設定することができる。つまり、強制的にジオフェンス進入を発生させる制御用ジオフェンスを導入したことで、アプリケーション140(基盤アプリケーション120)側でサービス用ジオフェンスの再選択を、制御用ジオフェンスへの進入により必ず発生させることになる。以上から、OS130からのイベント通知がないことにより、サービス用ジオフェンスの再選択及び再設定が行われずに、OS130の監視対象が切り替わらないという事態を回避することができる。
なお、図25のステップS2501において、選択部122により選択されなかったジオフェンス定義情報が無い場合(すなわち、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報がS個以下である場合)、第1の円の半径は、予め決められた値とされても良い。
ここで、図25では、ユーザの周囲を囲むように定義されたL個の制御用ジオフェンスのジオフェンス定義情報を生成する場合について説明したが、ユーザの移動方向が特定された場合には、ユーザの周囲を囲むようにL個の制御用ジオフェンスを定義する必要はない。例えば、図26に示すように、ユーザの移動方向が特定された場合は、当該移動方向の前方にL(図26に示す例ではL=3)個の制御用ジオフェンスをOS130に設定すれば良い。図26に示す例では、ユーザの移動方向の水平方向にx軸、当該移動方向と直交する方向にy軸を定義すれば、半径r0の円形領域を表す第1の制御用ジオフェンスが、ユーザの現在位置からx軸の正の方向に2r0の位置(x01,y01)を中心に設定されている。また、半径r0の円形領域を表す第2の制御用ジオフェンスが、第1の制御用ジオフェンスから、y軸の正の方向にr0の位置(x01,y02)を中心に設定されている。同様に、半径r0の円形領域を表す第3の制御用ジオフェンスが、第1の制御用ジオフェンスから、y軸の負の方向にr0の位置(x01,y03)を中心に設定されている。
そこで、以降では、ユーザの移動方向が特定可能である場合に、制御用ジオフェンスのジオフェンス定義情報を生成する処理について、図27を参照しながら説明する。図27は、第三の実施形態に係る制御用ジオフェンスのジオフェンス定義情報を生成する処理の他の例を示すフローチャートである。
まず、生成部123Bは、ユーザの移動方向を特定する(ステップS2701)。ユーザの移動方向は、例えば、図20のステップS2001と同様の方法により特定すれば良い。
次に、生成部123Bは、上記のステップS2701で特定した移動方向に基づいて、移動方向領域Uを特定する(ステップS2702)。
次に、生成部123Bは、アプリ側ジオフェンス定義テーブル300に格納されているジオフェンス定義情報のうち、移動方向領域Uに含まれ、かつ、選択部122により選択されなかったジオフェンス定義情報を特定する。
そして、生成部123Bは、ユーザの現在位置と、特定したジオフェンス定義情報が定義するサービス用ジオフェンスとの距離をそれぞれ算出する(ステップS2703)。
次に、生成部123Bは、上記のステップS2703で算出した距離のうちの最短距離Dminに基づいて、制御用ジオフェンスの半径r0を算出する(ステップS2704)。生成部123Bは、r0=Dminとしても良いし、所定のマージンMを考慮して、r0=Dmin-Mとしても良い。
次に、生成部123Bは、上記のステップS2701で特定した移動方向の前方に、半径r0のL個の円形領域でそれぞれ表される制御用ジオフェンスのジオフェンス定義情報を生成する(ステップS2705)。例えば、L=3である場合、生成部123Bは、ユーザの現在位置からx軸の正の方向に2r0の位置を中心として、半径r0の円形領域で表される第1の制御用ジオフェンスのジオフェンス定義情報を生成する。また、当該第1の制御用ジオフェンスからy軸の正の方向にr0の位置を中心として、半径r0の円形領域で表される第2の制御用ジオフェンスのジオフェンス定義情報を生成する。更に、当該第1の制御用ジオフェンスからy軸の負の方向にr0の位置を中心として、半径r0の円形領域で表される第3の制御用ジオフェンスのジオフェンス定義情報を生成する。
以上により、本実施形態に係る端末装置10は、ユーザの移動方向も考慮して、ユーザの移動方向の前方にL個の制御用ジオフェンスをOS130に設定することができる。なお、図27では、ユーザの移動方向の前方にL個の円形領域でそれぞれ表される制御用ジオフェンスのジオフェンス定義情報を生成する場合を説明したが、これに限られない。例えば、矩形領域をジオフェンスとして定義可能である場合には、生成部123Aは、例えば、ユーザの移動方向の前方に、1つの矩形領域で表される制御用ジオフェンスのジオフェンス定義情報を生成しても良い。
なお、生成部123は、特許請求の範囲の第1の生成部及び第2の生成部の一例である。選択部122は、特許請求の範囲の第1の選択部及び第2の選択部の一例である。設定部131は、特許請求の範囲の設定部及び再設定部の一例である。位置判定部133は、特許請求の範囲の判定部の一例である。
以上、本発明の実施形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
監視対象エリアへの進入又は離脱を監視する機能を有するOSが搭載されたコンピュータに、
第一の時点における前記コンピュータの位置に応じて、第一のエリア情報を生成する処理と、
前記第一の時点における前記コンピュータの位置に基づいて、予め定義された複数の候補エリア情報から、前記OSに前記監視対象エリアとして設定可能な最大数よりも前記第一のエリア情報の数以上少ない数の第二のエリア情報を選択する処理と、
前記第一のエリア情報と、前記第二のエリア情報とを前記OSに、前記監視対象エリアとして、設定する処理と、
前記コンピュータの位置が前記第一のエリア情報が示すエリアへ進入したこと又は離脱したことを示す第一の通知を、前記OSから受信すると、前記第一の通知を受信した第二の時点における前記コンピュータの位置に応じて、新たな第一のエリア情報を生成する処理と、
前記第二の時点における前記コンピュータの位置に応じて、前記複数の候補エリア情報から、新たな前記第二のエリア情報の選択を行う処理と、
前記新たな第一のエリア情報と前記新たな第二のエリア情報とを、前記OSの新たな監視対象エリアとして、再設定する処理と
を実行させることを特徴とする制御プログラム。
(付記2)
前記コンピュータの位置が、前記第二のエリア情報が示すエリアの範囲内となったことを示す第二の通知を前記OSから受信すると、前記第二のエリア情報に対応する情報を出力する処理を前記コンピュータに実行させることを特徴とする付記1に記載の制御プログラム。
(付記3)
前記新たな第一のエリア情報の生成と、前記新たな第二のエリア情報の選択とを行う処理は、
前記第二の通知を受信した第三の時点における前記コンピュータの位置に応じて、前記第一のエリア情報を新たに生成するとともに、前記複数の候補エリア情報から前記第二のエリア情報を新たに選択する、
ことを特徴とする付記2に記載の制御プログラム。
(付記4)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置を含むエリアに対応することを特徴とする付記1乃至付記3のいずれか一項に記載の制御プログラム。
(付記5)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置が含まれ、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記4に記載の制御プログラム。
(付記6)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置を含まず、該第一の時点における前記コンピュータの位置から所定距離離れた周囲に生成されたエリアに対応することを特徴とする付記1乃至付記3のいずれか一項に記載の制御プログラム。
(付記7)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置が含まれず、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記6に記載の制御プログラム。
(付記8)
前記第一のエリア情報は、前記コンピュータの移動の速さと前記コンピュータの移動方向との少なくとも一方に基づいて生成されることを特徴とする付記1乃至付記7のいずれか一項に記載の制御プログラム。
(付記9)
監視対象エリアへの進入又は離脱を監視する機能を有するOSが搭載されたコンピュータが、
第一の時点における前記コンピュータの位置に応じて、第一のエリア情報を生成する処理と、
前記第一の時点における前記コンピュータの位置に基づいて、予め定義された複数の候補エリア情報から、前記OSに前記監視対象エリアとして設定可能な最大数よりも前記第一のエリア情報の数以上少ない数の第二のエリア情報を選択する処理と、
前記第一のエリア情報と、前記第二のエリア情報とを前記OSに、前記監視対象エリアとして、設定する処理と、
前記コンピュータの位置が前記第一のエリア情報が示すエリアへ進入したこと又は離脱したことを示す第一の通知を、前記OSから受信すると、前記第一の通知を受信した第二の時点における前記コンピュータの位置に応じて、新たな第一のエリア情報を生成する処理と、
前記第二の時点における前記コンピュータの位置に応じて、前記複数の候補エリア情報から、新たな前記第二のエリア情報の選択を行う処理と、
前記新たな第一のエリア情報と前記新たな第二のエリア情報とを、前記OSの新たな監視対象エリアとして、再設定する処理と
を実行することを特徴とする制御方法。
(付記10)
前記コンピュータの位置が、前記第二のエリア情報が示すエリアの範囲内となったことを示す第二の通知を前記OSから受信すると、前記第二のエリア情報に対応する情報を出力する処理を前記コンピュータが実行することを特徴とする付記9に記載の制御方法。
(付記11)
前記新たな第一のエリア情報の生成と、前記新たな第二のエリア情報の選択とを行う処理は、
前記第二の通知を受信した第三の時点における前記コンピュータの位置に応じて、前記第一のエリア情報を新たに生成するとともに、前記複数の候補エリア情報から前記第二のエリア情報を新たに選択する、
ことを特徴とする付記10に記載の制御方法。
(付記12)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置を含むエリアに対応することを特徴とする付記9乃至付記11のいずれか一項に記載の制御方法。
(付記13)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置が含まれ、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記12に記載の制御方法。
(付記14)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置を含まず、該第一の時点における前記コンピュータの位置から所定距離離れた周囲に生成されたエリアに対応することを特徴とする付記9乃至付記11のいずれか一項に記載の制御方法。
(付記15)
前記第一のエリア情報は、前記第一の時点における前記コンピュータの位置が含まれず、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記14に記載の制御方法。
(付記16)
前記第一のエリア情報は、前記コンピュータの移動の速さと前記コンピュータの移動方向との少なくとも一方に基づいて生成されることを特徴とする付記9乃至付記15のいずれか一項に記載の制御方法。
(付記17)
監視対象エリアへの進入又は離脱を監視する機能を有するOSが搭載された制御装置であって、
第一の時点における前記制御装置の位置に応じて、第一のエリア情報を生成する第1の生成部と、
前記第一の時点における前記制御装置の位置に基づいて、予め定義された複数の候補エリア情報から、前記OSに前記監視対象エリアとして設定可能な最大数よりも前記第一のエリア情報の数以上少ない数の第二のエリア情報を選択する第1の選択部と、
前記第一のエリア情報と、前記第二のエリア情報とを前記OSに、前記監視対象エリアとして、設定する設定部と、
前記制御装置の位置が前記第一のエリア情報が示すエリアへ進入したこと又は離脱したことが判定されると、前記判定した第二の時点における前記制御装置の位置に応じて、新たな第一のエリア情報を生成する第2の生成部と、
前記第二の時点における前記制御装置の位置に応じて、前記複数の候補エリア情報から、新たな前記第二のエリア情報の選択を行う第2の選択部と、
前記新たな第一のエリア情報と前記新たな第二のエリア情報とを、前記OSの新たな監視対象エリアとして、再設定する再設定部と
を有することを特徴とする制御装置。
(付記18)
前記制御装置の位置が、前記第二のエリア情報が示すエリアの範囲内となったことが判定されると、前記第二のエリア情報に対応する情報を出力部を有することを特徴とする付記17に記載の制御装置。
(付記19)
前記第2の生成部は、前記第二の通知を受信した第三の時点における前記制御装置の位置に応じて、前記第一のエリア情報を新たに生成し、
前記第2の選択部は、前記第三の時点における前記制御装置の位置に応じて、前記複数の候補エリア情報から前記第二のエリア情報を新たに選択する、
ことを特徴とする付記18に記載の制御装置。
(付記20)
前記第一のエリア情報は、前記第一の時点における前記制御装置の位置を含むエリアに対応することを特徴とする付記17乃至付記19のいずれか一項に記載の制御装置。
(付記21)
前記第一のエリア情報は、前記第一の時点における前記制御装置の位置が含まれ、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記20に記載の制御装置。
(付記22)
前記第一のエリア情報は、前記第一の時点における前記制御装置の位置を含まず、該第一の時点における前記制御装置の位置から所定距離離れた周囲に生成されたエリアに対応することを特徴とする付記17乃至付記19のいずれか一項に記載の制御装置。
(付記23)
前記第一のエリア情報は、前記第一の時点における前記制御装置の位置が含まれず、かつ、当該位置と、前記第一の時点において選択されない前記第二のエリア情報が示すエリアとの距離に基づいて生成されることを特徴とする付記22に記載の制御装置。
(付記24)
前記第一のエリア情報は、前記制御装置の移動の速さと前記制御装置の移動方向との少なくとも一方に基づいて生成されることを特徴とする付記17乃至付記23のいずれか一項に記載の制御装置。