以下、本発明の実施の形態に係る位置情報取得方式について、例示のために、図面を用いて説明する。
本実施形態では、移動する携帯機器が自身の現在位置を示す位置情報を取得するために、多数の測位デバイスを利用する。測位デバイスとは、位置を特定するための信号を発信する機器であり、例えば、WiFi方式の測位手段であれば、WiFiアクセスポイントが測位デバイスとなり、音波信号(又は超音波信号)方式の測位手段であれば、音波信号発信器が測位デバイスとなる。
測位デバイスは、それぞれを識別するための情報である測位デバイスIDを有しており、WiFi方式、iBeacon方式、音波信号方式、RFID(又はNFC)方式等では、測位デバイスが発信する信号の中に、測位デバイスIDが含まれている。各測位デバイスの位置(座標情報)は、例えば、測位情報管理サーバに登録されており、携帯機器は、測位デバイスから受信した信号から得た測位デバイスIDに基づいて、位置を求めることができる。測位デバイスから受信した信号から、測位デバイスIDの他に、精度に関わる情報(受信電波強度、音圧、精度情報等)を得るようにしてもよい。
GNSS(GPS)方式、QZSS(みちびき)方式、PDR方式等では、測位デバイスが発信する信号から、測位デバイスIDではなく、位置(座標情報)が得られる。また、例えば、WiFi方式においても、同時に受信される複数の測位デバイスIDに基づいて求められる複数の位置から、携帯機器の位置を推定する方式を、携帯機器が測位手段として備える場合には、測位デバイスIDではなく、位置(座標情報)が得られることになる。
ある測位デバイスの信号が受信できる範囲を、対象範囲と呼ぶ。この範囲は、計測の度に変動し得る。また、携帯機器の備える計測手段によっても異なり得る。
本実施形態は、現実の空間における測位デバイスの対象範囲を、コンピュータの画面におけるGUIウィジェットのように扱う応用例に、使用することができる。GUIウィジェットを配置するように、測位デバイスを配置して、GUIウィジェットが存在する範囲内でポインティングデバイスの入力イベントを得ると、そのGUIウィジェットに対応する機能が実行されるように、測位デバイスの信号が届く範囲内で携帯機器が測位デバイスID(ロケーションIDともいう)を得ると、そのロケーションIDに対応するサービスが提供されるようにするのである。
なお、本実施形態は、ロケーションIDに対応するサービスが提供される応用例だけではなく、座標情報を用いたサービスが提供される応用例にも、使用することができる。前者の場合は、種々の測位手段により得られる情報のうち、GNSS方式等で得られる座標情報について、ロケーションIDに変換すればよく、後者の場合は、種々の測位手段により得られる情報のうち、音波信号方式等で得られるロケーションIDについて、座標情報に変換すればよい。
測位デバイスの対象範囲をGUIウィジェットのように扱う場合に対処すべき事項を、図1に示す例を用いて説明する。
まず、対象範囲が重複している場合、その重複範囲に移動してきた携帯機器は、複数の測位結果が得られる。例えば、図1では、P001に位置する携帯機器は、対象範囲L002とL008が重複する範囲内にあるので、両方の測位結果(RL002とRL008)を受け取る。このとき、受け取った複数のロケーションIDのうちの一つを選択して、サービスを提供するアプリケーションに渡すことが好ましい場合があるが、本実施形態に係る携帯機器は、いずれのロケーションIDを渡すべきかを判断することができる。なお、L002とL008の測位デバイスは、同じ方式の測位手段用であっても異なる方式の測位手段用であっても構わない。
そして、携帯機器は、例えば、対象範囲L002の範囲内であるP002に留まっていると、測位結果RL002を何度も受け取ることになる。これをGUIにたとえると、ウィジェットに対する入力イベントが繰り返し発生していることになるが、サービスを提供するアプリケーションに対しては、イベントは一度だけ入力されることが好ましい場合がある。本実施形態に係る携帯機器は、同じ範囲に留まっているうちは、一度だけ、ロケーションIDをアプリケーションに渡すようにすることができる。
さらに、対象範囲が重複している場所に携帯機器があるかどうかは、測位結果がすべて受け取られるまで決まらないので、そこに位置していることを知るには、そこに届く全ての測位結果を受け取るのを待たなければならず、時間を要する。しかも、測位結果は測位デバイスごとに順不同にばらばらに届くため、図1の例では、RL002を受け取った時点では、P001〜P005のどこにいるのか、決まらない。本実施形態に係る携帯機器は、受け取った測位結果を蓄えておき、蓄積した測位結果の組み合わせから、現在の位置を判断することができる。
また、携帯機器は留まったり移動したりするため、RL002を受け取った後にRL004を受け取ったとき、P002からP011へ移動したのか、L002とL004が重複する範囲内のP004にいるのか、区別することが難しい。本実施形態に係る携帯機器は、蓄積した測位結果から不要なものを適宜削除することができるため、移動したのか同じ範囲に留まっているのかを判断することができる。
(構成例1)
図2は、本実施形態に係る携帯機器の構成及び該携帯機器が利用可能なサーバの一例を示す図である。携帯機器100を構成するソフトウェアは、アプリケーション120と測位ライブラリ110とを備える。アプリケーション120は、測位ライブラリ110から通知される測位結果(例えば、ロケーションID)に基づいて、例えば、サービス提供サーバ200から情報をダウンロードして利用者に通知する機能を持つ。サービスは、サービス提供サーバ200によらずに、アプリケーション120によって提供されても構わない。
測位ライブラリ110は、測位部130と測位結果通知部140、通信部180を備える。測位部130は、複数の測位手段1〜Nを備える。本例では、測位方式(測位デバイスから受信する信号及びその処理方式の種類)ごとに、測位手段を設ける。なお、各々の測位デバイスの種類(後述する「高さ」に相当)は、測位方式の種類とは独立して設定することが可能である。つまり、二つの測位デバイスを、同じ測位方式で異なる種類にすることができるし、適用場面によっては、異なる測位方式でも同じ種類と設定してもよい。
測位結果通知部140は測位部130から測位結果を受け取り、測位結果をアプリケーションに通知するかどうかの要否を判定して、必要があれば測位結果をアプリケーション120に通知する。通知する測位結果は、本例では、ロケーションIDとするが、上述したように、座標情報とすることも可能である。
測位ライブラリ110は、アプリケーション開始時に、通信部180を介して測位情報管理サーバ300から、後述する測位デバイス管理マスター175のデータをダウンロードしてもよい。さらに、同様に、後述する測位結果マスター155のデータをダウンロードしてもよい。代替例として、これらのマスターのデータは、ライブラリ110自体が予め有していてもよいし、アプリケーション120が予め有していて、そこからライブラリ110が読み出すのでもよい。
測位結果変換部150は測位部130から受け取った測位結果の変換を行なう。測位結果は測位手段によって内容が異なり得る。GNSS、QZSS、PDRの測位結果は、携帯機器の座標情報と測位方式を示す情報とを含むが、WiFi、iBeacon、音波信号、RFIDの測位結果はロケーションIDと測位方式を示す情報とを含む。本例では、測位結果通知の要否判定処理で座標情報でなくロケーションIDを使用するので、測位結果変換部150においてGNSS、QZSS、PDRの測位結果の座標情報をロケーションIDに変換する。変換には、測位結果マスター155のデータを利用する。
通知管理部160はアプリケーションからの開始要求と終了要求を受け付けて、測位の開始と終了を行なう処理、および測位結果を選択的にアプリケーション120に通知するための処理を行なう。
測位履歴管理部170は、通知管理部160と協働して、受け取った測位結果のアプリケーションへの通知の要否を判定するとともに、必要に応じて測位履歴の更新及び削除を行なう。通知の要否の判定には、測位履歴メモリ165と測位デバイス管理マスター175を参照する。また、所望の判定を行なうための基準に従って、測位履歴メモリ165に対し、測位結果を保存したり削除したりする管理を行なう。
(測位結果マスター)
図4に、測位結果マスター155のデータの一例を示す。測位結果マスター155は、ロケーションIDとロケーション、測位手段を表わす情報を対応付けて管理する。本例では、ロケーションは点の座標列で表現される多角形であり、測位結果マスター155には、多角形の頂点列の座標値を記憶する。ある座標がロケーションに対応するかどうかは、座標とロケーションの多角形との内外判定結果に基づいて決定する。
測位手段から得られる座標の精度は測位方式ごとに異なり、GNSSでは10数mの誤差があるが、PDRでは数mの誤差しかない。そのため、GNSSの座標で決定されるロケーションをPDRでより詳細なロケーションに分割し、使い分けできるようにすると良い。
(測位結果変換処理)
図3に、測位結果変換部150の処理フローを示す。本例では、測位結果の通知の要否の判定に座標情報ではなくロケーションIDを使用するため、測位結果がロケーションIDを含まない場合に測位結果の座標情報をロケーションIDに変換する。具体的には、ステップS310で測位結果のロケーションIDの有無を確認し、無い場合は処理を終了する。有る場合は、次のステップS320で、測位結果マスター155の有無を確認し、無ければ測位情報管理サーバ300からダウンロードする。ステップS330では、測位手段を表わす値を変数mに代入する。ステップS340では、測位結果マスター155に含まれるロケーションについて測位結果の座標と内外判定を行い、座標が内側にある測位手段がmで多角形のロケーションIDを変数idに代入する。最後のステップS350において、測位結果のロケーションIDとして変数idのロケーションIDを設定する。
(処理例1)
図5は、通知管理部160の処理フローの一例(以下、「処理例1」という)を示す。通知管理部160は、アプリケーション120からの開始と終了の要求に応じて、ライブラリ110の開始と終了を行なう。具体的には、通知管理部160は、アプリケーションから開始要求を受け取ると、ステップS510においてアプリケーションからの終了要求の有無を確認し、終了要求があれば処理を終了する。終了要求がなければ、ステップS520において測位結果変換部150から測位結果を受け取れるか否か(測位部130においていずれかの測位手段による測位結果が新しく受信され、ロケーションIDが得られたか否か)を確認する。測位結果が受け取り不可能であれば所定の時間待機してステップS510に戻る。
測位結果が受け取り可能であれば、ステップS540において測位結果変換部150から測位結果を受け取る。次に、ステップS550で、受け取った測位結果のロケーションIDを測位デバイス管理マスター175のデータに含まれているものかどうかを確認する。ロケーションIDを測位デバイス管理マスター175が含まない場合は、その測位結果は、処理せずに廃棄する。
このように測位デバイス管理マスター175を利用することにより、ライブラリ110が処理対象とするロケーションIDを、実際に設置され信号を発信している多数の測位デバイスのうちの一部の測位デバイスから受信されるものに限定することができる。例えば、測位デバイス管理マスター175として記憶するデータの内容を、配置されている多数の測位デバイスの一部とし、どの一部を記憶するかをアプリケーションごとに使い分けることで、測位結果の使用の可否をアプリケーションごとに変更できる。ステップS560では、測位結果を引数として測位履歴更新関数を実行する。この関数では、図7又は図8に動作例を示すように、測位履歴メモリ165にステップS540で受け取られた測位結果を書き込むとともに、測位結果のアプリケーション120への通知の要否を判定し、必要があれば測位結果を通知する。
(測位デバイス管理マスター)
図6は、測位デバイス管理マスター175のデータの一例を示す。本例における測位デバイス管理マスター175は、ロケーションIDごとに6項目のデータを管理することが可能である。「緯度」と「経度」は、測位デバイスの位置を表わす。
「高さ(種類又は優先度)」は、測位デバイスの種類もしくは測位結果の優先度を表わす。「高さ」が測位デバイスの種類を表わす応用例においては、「高さ」は単に、各々の測位結果が同一の種類に属するか、異なる種類に属するかを判別するために用いられる。一方、「高さ」が測位結果の優先度を表わす応用例においては、「高さ」の大小によって、対象範囲が重複する場所で受け取られた複数の測位結果のうちのいずれを通知すべきかを判断したり、受け取られた(もしくは履歴として保持されている)測位結果の通知の要否を判定したり、履歴として保持されている測位結果の削除の要否を判定したりするために用いられる。
「有効時間」は、受け取った測位結果を測位履歴メモリ165に有効なものとして保持する時間で、測位履歴メモリに測位結果を保存してからの経過時間が「有効時間」を超過した場合、その測位結果は測位履歴メモリ165から削除される。「有効距離」は、受け取った測位結果を測位履歴メモリ165に有効なものとして保持する間に許容される移動距離であり、測位結果を測位履歴メモリに保存してからの移動距離が「有効距離」を超過した場合、その測位結果は測位履歴メモリ165から削除される。
「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストである。このリストは、ある測位結果を受け取った時に、その受け取ったロケーションIDが、直前の測位結果が得られた場所で取得され得るものである(直前の測位結果が未だ有効である)か、取得され得ないものである(移動したために直前の測位結果が無効になる)かを知る目的で使用する。
(更新例1)
図7は、測位履歴更新関数S560の処理フローの一例(以下、「更新例1」という)を示す。本例では、受け取られた測位結果が測位履歴メモリ165に保持されていない場合に測位結果を通知する。具体的には、まず、ステップS710において、受け取った測位結果r1のロケーションIDの高さ(種類又は優先度)を測位デバイス管理マスター175から取得する。次に、その高さと同じ高さを有する測位結果を、測位履歴メモリ165から抽出して、変数r0に代入する。測位履歴メモリ165が同じ高さの測位結果を保持していなければ、変数r0にNULLが代入される。
ステップS720では、測位結果r0とr1の内容に応じてr1の通知の要否を判定する。更新例1では、r0がNULLの場合と、r0とr1のロケーションIDが一致しない場合に、ステップS740においてr1を通知する。この仕組みにより、同じ測位結果を連続して受け取った場合に、アプリケーション120に対して同じ測位結果を連続して通知してしまうことを回避する。また、測位履歴メモリ165は、測位結果を高さ(種類又は優先度)ごとに保持するので、同じ高さを持つ測位結果のグループごとに連続した通知を回避することができる。
ステップS740では、受け取った測位結果r1を測位時刻とともに測位履歴メモリ165に保存する。r1でr0を上書きすることにより、測位履歴メモリ165が、高さごとに最大1件の測位結果を保持するようにするとよい。
(更新例2)
図8は、測位履歴更新関数S560の処理フローの別の例(以下、「更新例2」という)を示す。本例では、受け取った測位結果が、測位履歴メモリ165に保持されておらず、かつ、その高さが履歴にある測位結果の高さの最大値以上である場合に、測位結果を通知する。具体的には、まず、ステップS810において、受け取った測位結果r1のロケーションIDの高さ(種類又は優先度)を測位デバイス管理マスター175から取得する。次に、測位履歴メモリ165が保持する測位結果のロケーションIDの高さの最大値(この最大の高さのロケーションIDを持つ測位結果をrmとする)と比較し、r1の高さの方が大きければ、ステップS830においてr1を通知する。r1の高さが、測位履歴メモリ165が保持する測位結果のロケーションIDの高さの最大値以下であれば、ステップS820の処理を実行する。
ステップS820では、受け取った測位結果r1のロケーションIDの高さとrmのロケーションIDの高さが等しく、かつr1とrmのロケーションIDが一致しない場合、ステップS830においてアプリケーション120に対してr1を通知する。
ステップS840では、測位履歴メモリ165に測位結果r1を測位時刻とともに保存する。r1でr0を上書きすることにより、測位履歴メモリ165が、高さごとに最大1件の測位結果を保持するようにするとよい。
(測位履歴メモリ)
図9は、測位履歴メモリ165が保持する測位結果の一例を示す。本例では、後述する処理例2のように、測位から一定時間経過後に削除される様子が時系列で示されている。5つの表は、各測位点(携帯機器が移動した位置)で測位を行なった後の測位履歴メモリ165の内容である。右下の図は、測位デバイスの対象範囲(円)と測位点(+)の配置を表わしており、測位デバイスにはL002、L003、L008の3個を使用し、各測位デバイスから受信する測位結果のロケーションIDは、それぞれRL002、RL003、RL008、高さは、それぞれ2、3、5である。説明の便宜上、測位はP001から開始して、P002、P003、P004、P005の順に1秒間隔で行なうものとする。
まず、測位点P001で測位結果RL008を受け取ると、測位結果RL008が、高さ5、有効時間1.10秒、有効距離3.0m、測位時刻10:00:00で測位履歴メモリ165に保存される。「高さ」、「有効時間」、「有効距離」は、図6の測位デバイス管理マスター175を参照して取得する。次に、測位点P002で測位結果RL002を受け取ると、測位結果RL002が高さ2、有効時間1.10秒、有効距離3.0m、測位時刻10:00:01で測位履歴メモリに保存される。
その後、測位点P003に到達する過程で、測位結果RL008は、保持時間が有効時間を超過するので、測位履歴メモリ165から削除される。次の測位点P003で受け取る測位結果RL002は、高さ2、有効時間1.10秒、有効距離10.0m、測位時刻10:00:02で保存され、測位点P004で受け取る測位結果RL003は、高さ5、有効時間1.10秒、有効距離3.0m、測位時刻10:00:03で保存される。
測位点P005に到達する過程で、測位結果RL002は、保持時間が有効時間を超過するので、測位履歴メモリから削除される。そして、測位点P005で受け取る測位結果RL003が、高さ3、有効時間1.10秒、有効距離3.0m、測位時刻10:00:04で保存される。このように、一定時間経過後の測位結果の削除は、測位とは独立に行なわれる。同様に、測位時の位置から一定距離移動後に実行される測位履歴メモリからの測位結果の削除も、測位とは独立に行なわれる。
(構成例2)
図10は、本実施形態に係る携帯機器の構成の別の例を示す図である。本例は、携帯機器のセンサーから得られる観測値から速度を導出して時刻とともに記録する機能と、速度の記録から測位履歴管理を行なう機能とを備える携帯機器の構成である。
携帯機器101を構成するソフトウェアは、アプリケーション120と測位ライブラリ111とを備える。アプリケーション120は、測位ライブラリ111から通知される測位結果(例えば、ロケーションID)に基づいて、例えば、サービス提供サーバ200から情報をダウンロードして利用者に通知する機能を持つ。
測位ライブラリ111は、測位部130と測位結果通知部141、通信部180を備える。 測位結果通知部141は測位部130から測位結果を受け取り、測位結果をアプリケーションに通知するかどうかの要否を判定して、必要があれば測位結果をアプリケーション120に通知する。通知する測位結果は、本例では、ロケーションIDとするが、先述したように、座標情報とすることも可能である。
測位ライブラリ111は、アプリケーション開始時に、通信部180を介して測位情報管理サーバ300から、後述する測位デバイス管理マスター175のデータをダウンロードしてもよい。さらに、同様に、後述する測位結果マスター155のデータをダウンロードしてもよい。代替例として、これらのマスターのデータは、ライブラリ111自体が予め有していてもよいし、アプリケーション120が予め有していて、そこからライブラリ111が読み出すのでもよい。
測位結果変換部150は、先述したように、測位部130から受け取った測位結果の変換を行なう。
測位履歴管理部171は、通知管理部161と協働して、受け取った測位結果のアプリケーションへの通知の要否を判定するとともに、必要に応じて測位履歴の更新及び削除を行なう。通知の要否の判定には、測位履歴メモリ165と測位デバイス管理マスター175に加えて、活動履歴メモリ196を参照する。また、所望の判定を行なうための基準に従って、測位履歴メモリ165に対し、測位結果を保存したり削除したりする管理を行なう。
活動履歴管理部195は、センサー190から携帯機器の移動速度に関する計測値を取得して、移動速度を計測時刻とともに活動履歴メモリ196に保存する管理を行なう。図11に、活動履歴メモリ196のデータの一例を示す。本例では、速度は速度ベクトルとして管理する。速度ベクトルは、速度を緯度方向、経度方向、高さ方向の座標系で表わしたものである。携帯機器の加速度センサーから得られる加速度を、携帯端末の姿勢情報に基づいて上述した座標系に変換し、積分して得られる値を使用する。速度ベクトルを使用する理由は、図14で後述するように、携帯機器の移動距離が、延べ距離よりも、2地点間の距離の方が好ましいからである。
(処理例2)
図12は、通知管理部161の処理フローの別の例(以下、「処理例2」という)を示す。本例では、一定時間経過後あるいは一定距離移動後に測位履歴メモリから測位結果を削除するためのタイマー処理を開始する。
通知管理部161は、アプリケーション120からの開始と終了の要求に応じて、ライブラリ111の開始と終了を行なう。具体的には、通知管理部161は、アプリケーションから開始要求を受け取ると、ステップS120においてタイマー処理を開始する。タイマー処理では、図13又は図15に動作例を示すように、測位履歴メモリが保持する測位結果を、測位時からの経過時間又は移動距離に基づいて、削除したり、削除後に、ロケーションIDの高さに基づいて、測位履歴メモリが保持する測位結果を通知したりする。
次に、ステップS510においてアプリケーションからの終了要求の有無を確認し、終了要求があれば処理を終了する。終了要求がなければ、ステップS520において測位結果変換部150から測位結果を受け取れるか否か(測位部130においていずれかの測位手段による測位結果が新しく受信され、ロケーションIDが得られたか否か)を確認する。測位結果が受け取り不可能であれば、所定の時間待機してステップS510に戻る。
測位結果が受け取り可能であれば、ステップS540において測位結果変換部150から測位結果を受け取る。次に、ステップS550で、受け取った測位結果のロケーションIDを測位デバイス管理マスター175のデータに含まれているものかどうかを確認する。ロケーションIDを測位デバイス管理マスター175が含まない場合は、その測位結果は、処理せずに廃棄する。
ステップS560では、測位結果を引数として測位履歴更新関数を実行する。この関数では、図7又は図8に動作例を示すように、測位履歴メモリ165にステップS540で受け取られた測位結果を書き込むとともに、測位結果のアプリケーション120への通知の要否を判定し、必要があれば測位結果を通知する。
図13は、図12のタイマー処理開始S120の処理フローの一例として、タイマーで測位履歴管理部171に削除させる例を示す。ステップS130において、アプリからの終了要求の有無を確認する。終了要求があればタイマー処理を終了する。アプリからの終了要求がなければ、ステップS132において、処理FIND_TO_BE_DELETED()を実行して、測位履歴メモリから削除対象とする測位結果のリストを取得して変数lに代入する。削除対象とする測位結果のリストは、後述する判定方法に基づいて作成される。次に、ステップ134において、リストlにある測位結果を測位履歴メモリから削除する。最後に、所定の時間待機してステップ130に戻る。
図14は、図12のS132又は図15のS152の、測位履歴メモリから削除対象とする測位結果リストを返す処理FIND_TO_BE_DELETED()において、測位結果が削除対象であると判定する処理のフローを示す。図14の左側は、一定時間経過後に履歴を削除する場合の判定処理フローであり、右側は一定距離移動後に履歴から削除する場合の判定処理フローである。本実施形態では、目的に応じて、上述の2つの処理のうちいずれか一つの方法を使用する。
一定時間経過後に履歴を削除する場合は、測位履歴が保持する測位結果riについて、測位時刻TSと有効時間TMを取得し、現在時刻とTSの差分がTM以上であれば、測位結果riを削除対象とする。
一定距離移動後に履歴を削除する場合は、まず、測位履歴が保持する測位結果riについて、測位時刻TSと有効距離DMを取得する。次に、活動履歴メモリを参照して、時刻TSを原点とした場合の現在の位置(座標)Dを推定し、原点と位置Dの間の距離(||D||)がDM以上であれば、測位結果riが削除対象であると判定する。本フローの移動距離は、計測時の位置と現在位置との2地点間の距離であり、車の走行距離で計測されるような延べ距離ではないようにすることが好ましい。
Dを活動履歴メモリ196の内容から推定する方法としては多様な方法が考えられ、図14の右側のフローの下にある数式はその一例を示す。Tは現在時刻、Tiは活動履歴メモリのi番目の要素の時刻、Viは活動履歴メモリのi番目の要素の速度ベクトルである。aはT>Tiの条件の下で最大のiである。bはTi<TSの条件の下で最大のiである。数式の1番目の項は、現在の移動ベクトルをVaとみなして、時刻Taから現在までの移動ベクトルの推定式である。数式の3番目の項は、測位時の移動速度をVbとみなして、時刻TSから時刻T(b−1)までの移動ベクトルの推定式である。数式の2番目の項は、時刻T(b−1)から時刻Taまでの移動ベクトルの総和である。
図15は、図12のタイマー処理開始S120の処理フローの別の例として、測位履歴管理部171に削除させたことを契機に通知する例を示す。ステップS150において、アプリケーションからの終了要求の有無を確認する。終了要求があればタイマー処理を終了する。アプリからの終了要求がなければ、ステップS152において、測位履歴メモリから削除対象とする測位結果リストを取得して変数lに代入する。削除対象とする測位結果リストは、先述の判定方法に基づいて作成される。次に、測位履歴メモリから測位結果のロケーションIDの高さが最大の測位結果tを取得してから(ステップS153)、測位結果リストlが含む測位結果を測位履歴メモリから削除する(ステップS154)。
次に、現在の(削除後の)測位履歴メモリの測位結果について、改めて、ロケーションIDの高さが最大の測位結果を抽出し(TOP_LOG())、それと先の測位結果tを比較する。両測位結果のロケーションIDが一致しなければ、あるいは、両測位結果の高さが一致しなければ、TOP_LOG()で得られる測位結果をアプリケーションに通知する。最後に、一定時間待機した後でステップS150に戻る。
本例によれば、ある高さ(種類あるいは優先度)の測位結果が、時間の経過により無効とみなされ削除された時に、それより小さい高さの測位結果が測位履歴メモリに残っていれば、その小さい高さの測位結果を改めてアプリケーションに通知することにより、無効となった位置に代わる有効な位置をアプリケーションが早期に把握することが可能になる。さらに、例えば、受け取った測位結果が、その高さ(種類あるいは優先度)が測位履歴メモリにある測位結果よりも小さいという理由で未通知のまま測位履歴メモリに保存されていた場合にも、本例のフローの実行によって、アプリケーションに通知し得るようになる。
なお、ここでは、図12(あるいは後述する図20)のメイン処理ループが動作するのと並列に、図13のタイマー処理ループが動作する例を説明したが、メイン処理ループの中で、測位結果を測位履歴メモリに保存する際に、その測位結果の有効時間が経過すると期限切れとなるタイマーのカウントを開始し、期限切れになったら、その測位結果を測位履歴メモリから削除するようにしてもよい。
(処理例3)
図16は、通知管理部160の処理フローのさらに別の例(以下、「処理例3」という)を示す。通知管理部160は、アプリケーション120からの開始と終了の要求に応じて、ライブラリ110の開始と終了を行なう。具体的には、通知管理部160は、アプリケーションから開始要求を受け取ると、ステップS510においてアプリケーションからの終了要求の有無を確認し、終了要求があれば処理を終了する。終了要求が無ければ、ステップS520において測位結果変換部150から測位結果を受け取れるか否か(測位部130においていずれかの測位手段による測位結果が新しく受信され、ロケーションIDが得られたか否か)を確認する。測位結果が受け取り不可能であれば所定の時間待機してステップS510に戻る。
測位結果が受け取り可能であれば、ステップS540において測位結果変換部150から測位結果を受け取る。次に、ステップS550で、受け取った測位結果のロケーションIDを測位デバイス管理マスター175のデータに含まれているものかどうかを確認する。ロケーションIDを測位デバイス管理マスター175が含まない場合は、その測位結果は、処理せずに廃棄する。
ステップS160では、測位結果を引数として測位履歴削除関数を実行する。この関数では、図17、図18又は図19に動作例を示すように、予め決められた規則に基づき、対象範囲の外部にあるロケーションIDを推定して、そのロケーションIDを持つ測位結果を測位履歴メモリ165から削除する。
ステップS560では、測位結果を引数として測位履歴更新関数を実行する。この関数では、図7又は図8に動作例を示すように、測位履歴メモリ165にステップS540で受け取られた測位結果を書き込むとともに、測位結果のアプリケーション120への通知の要否を判定し、必要があれば測位結果を通知する。
(削除例1)
図17は、測位履歴削除関数S160の処理フローの一例(以下、「削除例1」という)を示す。削除例1は、受け取った測位結果r1が測位履歴にない場合に、r1のロケーションIDの高さ(種類又は優先度)よりも大きな高さを有する測位結果を削除履歴メモリ165から削除する。具体的には、ステップS170で、受け取った測位結果のロケーションIDと同じ高さを有する測位結果を、測位履歴メモリ165から抽出して変数r0に代入する。測位履歴メモリ165が、同じ高さの測位結果を保持していなければ、変数r0にNULLが代入される。
ステップS172では、r0とr1の内容に応じて、測位履歴メモリから測位結果を削除する。r0がNULLの場合、あるいはr0とr1のロケーションIDが一致しない場合、ステップ174において、r1の高さよりも大きな高さの測位結果を、測位履歴メモリ165から削除する。
削除例1の削除方法は、対象範囲に包含関係があるように配置されている場合であれば、包含する側の対象範囲の変化が、包含される側の対象範囲の変化であるとみなし得ることを利用して、包含される側の測位デバイスから受け取っていた測位結果を履歴から削除する方法である。そのため、削除例1は、測位デバイス管理マスター175が、ロケーションIDの高さが測位デバイスの種類ごとに割り当てられていて、かつ対象範囲が狭い測位方式ほど大きな高さが割り当てられている場合に、特に有用である。
(削除例2)
図18は、測位履歴削除関数S160の処理フローの別の例(以下、「削除例2」という)を示す。削除例2では、受け取った測位結果r1のロケーションIDを受け取る位置で受信し得ない測位結果を、測位履歴メモリ165から削除する。具体的には、ステップS180で、受け取った測位結果r1のロケーションID(GET_LOCATIONID(r1))について、測位デバイス管理マスター175から「取得され得る測位結果ロケーションIDのリスト」を取得して変数lに代入する。次に、ステップS182において、リストlに含まれない測位結果を測位履歴メモリ165から削除する。
削除例2の削除方法は、測位デバイスの対象範囲の配置関係から、測位結果を受け取った位置で取得し得ないロケーションIDが分かることを利用して、測位履歴メモリ165から現在の位置から取得し得ない測位結果を削除する方法である。したがって、削除例2は、測位デバイスの高さ(種類あるいは優先度)をどのように割り当てる場合にも、応用可能である。
(削除例3)
図19は、測位履歴削除関数S160の処理フローのさらに別の例(以下、「削除例3」という)を示す。削除例3は、削除例1と削除例2の2つの削除方法を合わせたものであり、削除例1、削除例2のそれぞれの削除処理を行なう。具体的には、ステップS190で、受け取った測位結果r1のロケーションID(GET_LOCATIONID(r1))について、測位デバイス管理マスター175から「取得され得る測位結果ロケーションIDのリスト」を取得して変数lに代入する。次に、ステップS192において、リストlに含まれない測位結果を測位履歴メモリ165から削除する。
次に、ステップS194で、受け取った測位結果のロケーションIDの高さ(種類又は優先度)と同じ高さを有する測位結果を、測位履歴メモリ165から抽出して、変数r0に代入する。測位履歴メモリ165が同じ高さの測位結果を保持していなければ、変数r0にNULLが代入される。ステップS196では、r0とr1の内容に応じて測位履歴メモリから測位結果を削除する。r0がNULLの場合と、r0とr1のロケーションIDが一致しない場合に、ステップ198において、r1の高さよりも高さが高いロケーションIDの測位結果を測位履歴メモリ165から削除する。
削除例1は、対象範囲同士が重複し合っているような場合でも、履歴から測位結果を削除し得るが、取得し得ない測位結果を履歴から削除できない場合がある。一方、削除例2は、対象範囲同士が隔絶しているような場合に、履歴から測位結果を合理的に削除するのに適しており、対象範囲が密集していると削除が行なわれない場合がある。削除例3では、削除例1と削除例2を合わせることで、適切に削除可能な場合を増加させることができる。
(処理例4)
図20は、通知管理部161の処理フローのまた別の例(以下、「処理例4」という)を示す。処理例4は、一定時間経過後あるいは一定距離移動後に、履歴から測位結果を削除するためのタイマー処理を実行し、受け取った測位結果に基づいて測位履歴削除処理を行なう例である。
通知管理部161は、アプリケーション120からの開始と終了の要求に応じて、ライブラリ111の開始と終了を行なう。具体的には、通知管理部161は、アプリケーションから開始要求を受け取ると、ステップS120においてタイマー処理を開始する。タイマー処理では、図13又は図15に動作例を示すように、測位履歴メモリが保持する測位結果を測位時からの経過時間又は移動距離に基づいて削除したり、削除後にロケーションIDの高さに基づいて別の測位結果を通知したりする。
次に、ステップS510において、アプリケーションからの終了要求の有無を確認し、終了要求があれば処理を終了する。終了要求がなければ、ステップS520において測位結果変換部150から測位結果を受け取れるか否か(測位部130においていずれかの測位手段による測位結果が新しく受信され、ロケーションIDが得られたか否か)を確認する。測位結果が受け取り不可能であれば所定の時間待機してステップS510に戻る。
測位結果が受け取り可能であれば、ステップS540において測位結果変換部150から測位結果を受け取る。次に、ステップS550で、受け取った測位結果のロケーションIDを測位デバイス管理マスター175のデータに含まれているものかどうかを確認する。ロケーションIDを測位デバイス管理マスター175が含まない場合は、その測位結果は、処理せずに廃棄する。
ステップS160では、測位結果を引数として測位履歴削除関数を実行する。この関数では、図17、図18又は図19に動作例を示すように、予め決められた規則に基づき、対象範囲の外部にあるロケーションIDを推定して、そのロケーションIDを持つ測位結果を測位履歴メモリ165から削除する。
ステップS560では、測位結果を引数として測位履歴更新関数を実行する。この関数では、図7又は図8に動作例を示すように、ステップS540で受け取った測位結果を測位履歴メモリ165に保存するとともに、測位結果のアプリケーション120への通知の要否を判定し、必要があれば測位結果を通知する。
以下には、上述した構成及び処理を適宜組み合わせて実施する例として、図21に示す(A)〜(L)の場合を具体的に説明する。
(実施例(A))
実施例(A)は、受け取った測位結果が、測位履歴メモリに保持されていない場合に、アプリケーションに対して通知を行なう例である。
図22(a)に示す測位デバイスの配置例に基づいて、実施例(A)がアプリケーションに測位結果をどのように通知するかを説明する。G221、S221、S222はそれぞれGNSS、音波信号、音波信号の測位デバイスである。また、それぞれから受け取る測位結果のロケーションIDはRG221、RS221、RS222である。図22(a)に描かれている円は、各測位デバイスの測位結果を受け取る範囲を、矩形は座標がロケーションIDRG221に変換される領域を模式的に表したもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P221〜P225は説明に使用する測位点(携帯機器が移動した位置)であり、P221からP222、P223、P224、P225の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図22(b)に、実施例(A)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG221が1に、RS221とRS222が3に設定されている。実施例(A)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。また、「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報も持たない。
実施例(A)において、測位点P221で受け取る測位結果RG221は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P222で受け取る測位結果RS221は、高さが3であるが測位履歴メモリは高さ3の測位結果を保持していないので、アプリケーションに通知される。測位点P223では、測位結果RG221を受け取るが、測位履歴メモリは同じ測位結果を保持するので通知されない。測位点P224で受け取る測位結果RS222は高さが3であるが、測位履歴メモリは同じ高さの測位結果RS221を保持する。両測位結果の高さは同じだが、ロケーションIDが異なるので、受け取った測位結果RS222はアプリケーションに通知される。測位点P225では測位結果RG221を受け取るが、測位履歴メモリが同じ測位結果を保持するので通知されない。
実施例(A)によれば、携帯機器がある対象範囲内に留まっている間は、同じ測位結果を連続して受け取り得るが、2回目以降に受け取った測位結果は測位履歴メモリに保持されているため、アプリケーションには通知されない。このことにより、アプリケーションが同じ位置情報を連続して通知されることを抑止できる。
また、実施例(A)では、高さごとに前回通知した測位結果は通知されないため、全てのロケーションIDに相異なる高さを割り当てれば、全ての測位結果は一度しか通知されないようにすることができるので、例えば、スタンプラリーのように、複数のチェックポイントを配置し、各チェックポイントに到達したことを一度だけ通知する目的に使用するのに適している。
さらに、同一高さの測位結果αとβがある場合、実施例(A)では、測位結果αを受け取ると測位履歴メモリにαが保存され、次にβを受け取ると、測位履歴メモリからαが削除されてβが保存されるので、この後でαを受け取るとαを通知できる。このように、実施例(A)を使うと、同一高さの2つの測位結果がある場合、それらを交互に受け取ったときに限り、受け取った測位結果を通知するようにできるので、2地点間を往復させてその回数を計測するような目的に利用できる。また、同じ高さの対象範囲が重複する場所では、2つの測位結果を受け取り得るので、それらを交互に通知し続けることができる。この効果は、例えば、現在いる場所が注意すべき場所であることを警告する上で都合が良い。
(実施例(B))
実施例(B)は、受け取った測位結果の高さ(測位デバイスの種類もしくは測位結果の優先度)が前回通知した測位結果の高さよりも大きい、あるいは前回通知した測位結果のロケーションIDの高さと等しいが、測位結果のロケーションIDが異なる場合に通知を行なう例である。
図23(a)に示す測位デバイスの配置例に基づいて、実施例(B)がアプリケーションに測位結果をどのように通知するかを説明する。G231、W231、S231はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。図23(a)に描かれている円は各測位デバイスの測位結果を受け取る範囲を、矩形は座標がロケーションIDRG231に変換される領域を模式的に表したもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。また、それぞれから受け取る測位結果のロケーションIDはRG231、RW231、RS231である。P231〜P235は説明に使用する測位点(携帯機器が移動した位置)であり、P231からP232、P233、P234、P235の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図23(b)に、実施例(B)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG231が1に、RW231が2に、RS231が3に設定されている。実施例(B)では、時間や距離により、測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。また、「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報も持たない。
実施例(B)において、測位点P231で受け取る測位結果RG231は、測位開始後初めて受け取る測位結果であり、測位履歴メモリは測位結果を保持していないので、アプリケーションに通知される。測位点P232で受け取る測位結果RS231は高さが3であるが、測位履歴メモリは高さ3以上の測位結果を保持していないので、測位結果RS231はアプリケーションに通知される。測位点P233では、測位結果RW231を受け取るが、RW231の高さは2であり、測位履歴メモリは高さ3の測位結果RS231を保持するので、RW231は通知されない。測位点P234でも測位結果RW231を受け取るが、同じ理由によりRW231はアプリケーションに通知されない。測位点P235では、測位結果RG231を受け取るが、RG231は測位履歴メモリが保持しているので、アプリケーションには通知されない。
上述したように、実施例(B)では、通知する測位結果のロケーションIDの高さは、前回通知した測位結果のロケーションIDの高さ以上になる。例えば、大きな店舗の各入り口にWiFiに基づく測位デバイスを配置し、入り口ごとに異なる入店案内を提供できるよう異なるロケーションIDを測位デバイスに割り当てて、携帯機器を商品に近接させることで情報を受け取れるように商品ごとにiBeaconや音波信号に基づく測位デバイスを配置する場合に、WiFiに由来するロケーションIDの高さをiBeaconや音波信号由来のロケーションIDの高さよりも小さく設定することで、一度商品の情報を受け取った利用者に入店案内を提供しないようにすることができる。
(実施例(C))
実施例(C)は、実施例(A)の実装に、一定時間経過後あるいは一定距離移動後に測位履歴メモリ165から測位結果を削除する機能を追加する例である。実施例(A)は、受け取った測位結果が、測位履歴メモリ165に保持されていない場合に限りアプリケーションに通知する例である。実施例(C)では、測位履歴メモリ165が保持している測位結果が削除され得るので、実施例(A)において、受け取った測位結果が測位履歴メモリ165に保持されているという理由で、アプリケーションに通知できない場面であっても、一定時間経過後あるいは一定距離移動後に通知できるようになる。
図24(a)に示す測位デバイスの配置例に基づいて、実施例(C)がアプリケーションに対して測位結果をどのように通知するかを説明する。G241、W241、S241はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG241、RW241、RS241である。図24(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG241に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P241〜P245は説明に使用する測位点(携帯機器が移動した位置)であり、P241からP242、P243、P244、P245の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を、測位点ラベルの下にあるカッコ内に記載した時刻に受け取るものとする。S241が2箇所に配置されているが、右側のS241はW241に包含されており、測位結果RS241を受け取った時点で、履歴にRW241が保持されているかどうかで区別可能である。
図24(b)に、実施例(C)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG241が1に、RW241が2に、RS241が3になるように設定されている。有効時間と有効距離は、測位履歴メモリ165に保持される測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報は持たない。なお、ロケーションIDRS241は2箇所にあるため、緯度と経度は設定しない。
実施例(C)において、測位点P241で受け取る測位結果RG241は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P242で受け取る測位結果RS241は高さが3であるが、測位履歴メモリは高さが3の測位結果を保持していないので、アプリケーションに通知される。測位点P243では、測位結果RG241を受け取るが、測位履歴メモリが同じ測位結果を保持しているので通知されない。測位点P244で受け取る測位結果RW241は、高さが2であるが、測位履歴メモリは高さ2の測位結果を保持していないので、RW241はアプリケーションに通知される。この後、測位履歴メモリが保持する測位結果RS241は、測位時刻からの経過時間が有効時間3.0秒を超過するので、測位履歴メモリから削除される。測位点P245では、測位結果RS241を受け取るが、測位履歴メモリはRS241と同じ高さの測位結果を保持しないので、RS241はアプリケーションに通知される。
上述のように、実施例(C)では、測位履歴メモリが保持する測位結果が削除されるので、異なる場所で同じロケーションIDが発信されている場合や、同じ場所に再び訪れた場合に、前回の測位結果が、(その後同じ高さの異なる測位結果を受信していなくても、前回と同じ測位結果を受け取らない状態で一定時間経過後あるいは一定距離移動後であれば)削除されていて、今回の測位結果を改めて通知することができる。
また、実施例(C)は、ある対象範囲への侵入回数と滞在時間を記録するアプリケーションにおいて、短時間だけ外部に移動して同じ対象範囲に戻った場合はカウントしない方が好ましい場合にも利用できる。
(実施例(D))
実施例(D)は、実施例(B)の実装に、一定時間経過後あるいは一定距離移動後に測位履歴メモリ165から測位結果を削除する機能を追加したものである。実施例(B)は、受け取った測位結果のロケーションIDの高さ(測位デバイスの種類もしくは測位結果の優先度)が前回通知した測位結果の高さよりも高い、あるいは前回通知した測位結果の高さは等しいが、測位結果が異なる場合に通知を行う例である。実施例(D)では、測位履歴メモリが保持する測位結果が削除され得るので、実施例(B)で、受け取った測位結果の高さが、測位履歴メモリが保持する測位結果の高さの最大値よりも小さい、あるいは受け取った測位結果が、測位履歴メモリが保持する測位結果に等しいという理由で、アプリケーションに測位結果を通知できない場面であっても、一定時間経過後あるいは一定距離移動後であれば、通知できるようになる。
実施例(D)がどのようにアプリケーションに通知を行なうかを図25と図26に基づいて以下に説明する。
まず、図25(a)に示す測位デバイスの配置例に基づいて、実施例(D)がアプリケーションに対して測位結果をどのように通知するかを説明する。G251、W251、S251はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG251、RW251、RS251である。図25(a)に描かれている円は、各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG251に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P251〜P254は説明に使用する測位点(携帯機器が移動した位置)であり、図25(a)では、P251からP252、P253、P254の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を、測位点ラベルの下にあるカッコ内に記載した時刻に受け取るものとする。
図25(b)に、実施例(D)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG251が1に、RW251が2に、RS251が3になるように設定されている。有効時間と有効距離は、測位履歴メモリ165に保持されている測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリから測位結果を削除しないので、図6に示したそのための情報は持たない。
実施例(D)において、測位点P251で受け取る測位結果RG251は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P252で受け取る測位結果RS251は、高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P253で測位結果RG251を受け取るが、測位履歴メモリがRG251を保持しているので、RG251はアプリケーションに通知されない。
測位点P253からP254への移動の過程で、測位履歴メモリが保持する測位結果RS251の測位時からの経過時間が、有効時間の3.0秒を超過するので、RS251は測位履歴メモリ165から削除される。その後、測位点P254で、測位結果RW251を受け取るが、測位履歴メモリはRG251以外の測位結果を保持していないので、RW251はアプリケーションに通知される。
次に、図26(a)に示す測位デバイスの配置例に基づいて、実施例(D)がアプリケーションに対して測位結果をどのように通知するかを説明する。図25の配置例では、履歴から測位結果が削除されたことによって、その後で受け取った測位結果が通知されるようになったが、図26の配置例では、履歴からの測位結果の削除の前後で同じ測位結果を受け取ったことにより、履歴から測位結果が削除されたことによっても測位結果が通知されるようにならない。
G261、W261、S261はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG261、RW261、RS261である。図26(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG261に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P261〜P265は説明に使用する測位点(携帯機器が移動した位置)であり、図26(a)においては、P261からP262、P263、P264、P265の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を、測位点ラベルの下にあるカッコ内に記載した時刻に受け取るものとする。
図26(b)に、実施例(D)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG261が1に、RW261が2に、RS261が3になるように設定されている。有効時間と有効距離は測位履歴メモリに保持される測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報は持たない。
実施例(D)において、測位点P261で受け取る測位結果RG261は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P262で受け取る測位結果RS261は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P263で測位結果RG261を受け取るが、測位履歴メモリがRG261を保持しているので、RG261はアプリケーションに通知されない。測位点P264で受け取る測位結果RW261の高さは2だが、測位履歴メモリが高さ3の測位結果RS261を保持しているので、RW261はアプリケーションに通知されない。測位点P264からP265への移動の過程で、測位履歴メモリが保持する測位結果RS261の測位時からの経過時間が、有効時間の3.0秒を超過するので、RS261は測位履歴メモリ165から削除される。その後、測位点P265で、測位結果RW261を受け取るが、測位履歴メモリはRW261を保持しているので、RW261はアプリケーションに通知されない。
上述のように、実施例(D)では、測位履歴メモリが保持している測位結果が有効時間経過後あるいは有距離移動後に削除されるので、高さが小さい測位結果がそれよりも高さが大きい測位結果を受け取った後でも通知され得る。ただし、図26の配置例で説明したように、保存した測位結果が、高さが小さいという理由で通知されなかった場合は、その測位結果が測位履歴メモリに保存されるので、高さが大きな測位結果が履歴から削除された後に前回未通知になった測位結果を再び受け取っても、通知されない。
実施例(D)によれば、例えば、2つの対象範囲をある一定時間以内に移動できなかった場合にだけ通知を行なうアプリケーションを実現可能である。具体的には、2つの対象範囲αからβに移動する場合を想定して、対象範囲の高さがα>βとなるように設定する。このとき、αからβに移動して、βで測位結果を受け取っても、αの測位結果が測位履歴メモリに保持されているので、βの測位結果は通知されない。しかし、αからβへの移動時間がαの有効時間以上であれば、移動中に測位履歴メモリの測位結果αが削除されて、βの測位結果が通知され得るので、一定時間以内にβに到達できなかった場合に限り情報を通知するようなアプリケーションを実現できる。
(実施例(D)´)
実施例(D)´は、実施例(D)の変形例であり、タイマー処理において、測位履歴メモリから測位結果が削除されたときに、測位履歴メモリにある高さが最大の測位結果をアプリケーションに通知する点が異なる。実施例(D)で説明に使用した図26を使用して実施例(D)´を説明する。
実施例(D)´において、測位点P261で受け取る測位結果RG261は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P262で受け取る測位結果RS261は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P263で測位結果RG261を受け取るが、測位履歴メモリが同じRG261を保持しているので、RG261はアプリケーションに通知されない。測位点P264で測位結果RW261を受け取るが、RW261よりも大きな高さを有する測位結果を測位履歴メモリが保持しているので、RW261はアプリケーションに通知されない。測位点P264からP265への移動の過程において、測位履歴メモリが保持する測位結果RS261の測位時刻からの経過時間が、有効時間の3.0秒を超過するので、RS261は測位履歴メモリ165から削除される。実施例(D)´では、測位履歴メモリから測位結果を削除すると、測位履歴メモリが保持する測位結果のうち最も高さが大きな測位結果をアプリケーションに通知するので、RW261がアプリケーションに通知される。測位点P265で、測位点P264に引き続き測位結果RW261を受け取るが、測位履歴メモリがRW261を保持しているので、RW261はアプリケーションに通知されない。
上述のように、実施例(D)では、測位履歴メモリが保持している測位結果が有効時間経過後あるいは有距離移動後に削除された時に測位履歴メモリが保持する高さが最大の測位結果をアプリケーションに通知するので、保存した測位結果が、高さが低いという理由で通知されなかった場合であっても、通知されない原因になった測位結果が削除された直後に通知され得る。特に、実施例(D)の図26で説明したように、測位結果が履歴に残っているという理由で通知されない場合であっても、履歴から大きな高さを有する測位結果が削除された時点で未通知の測位結果が通知され得る。
実施例(D)´を利用すれば、2つの対象範囲αとβ、及びそれらを包含する対象範囲γから成る配置例において、αを開始点、βを目的地とする移動の途中で、所定の時間経過後に目的地βに到達していない場合に、情報を通知する仕組みを実現できる。対象範囲α、β、γについて、各高さをγ<α<βとなるように設定する。まず開始点で測位結果αとγを受け取るので、測位結果αとγが測位履歴メモリに保持される。対象範囲αの外部に出てβへの移動中は測位結果γを受け取るが、測位結果γとαが測位履歴メモリに保持されているので通知されない。移動中にαの有効時間を経過すると、測位結果αは測位履歴メモリから削除される。このとき、測位履歴メモリの最上位になる測位結果が通知されるので、測位結果γが通知される。目的地に到達すると、測位結果βを受け取るが、βはαとγよりも高さが大きいので必ず通知される。このように、γが通知されるのは、αからβへの移動途中にβの有効時間を経過した後に限られる。
(実施例(E))
実施例(E)は、実施例(B)の実装に、受け取った測位結果が測位履歴メモリに保持されていない場合に、受け取った測位結果の高さ以上の測位結果を測位履歴メモリから削除する機能を追加した例である。
実施例(E)がどのようにアプリケーションに通知を行なうかを図28と図29に基づいて以下に説明する。
まず、図27(a)に示す測位デバイスの配置例に基づいて、実施例(E)が、アプリケーションに対して、測位結果をどのように通知するかを説明する。図27のG271、W271、S271は、それぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDは、RG271、RW271、RS271である。図28(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG271に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P271〜P275は説明に使用する測位点(携帯機器が移動した位置)であり、P271からP272、P273、P274、P275の順に移動する場合について説明する。なお、説明の便宜上、各測位点で測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図27(b)に、実施例(E)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは測位結果の優先度)はRG271が1に、RW271が2に、RS271が3になるように設定されている。実施例(E)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。また、「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報も持たない。
実施例(E)において、測位点P271で受け取る測位結果RG271は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P272で受け取る測位結果RS271は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P273で測位結果RW271を受け取る。測位結果RW271は、測位履歴メモリに保持されていないので、RW271の高さよりも高いロケーションIDを有する測位結果RS271が測位履歴メモリ165から削除され、測位結果RW271がアプリケーションに通知される。測位点P274では測位結果RS271を受け取るが、RS271よりも大きな高さを有する測位結果を測位履歴メモリが保持していないので、RS271はアプリケーションに通知される。測位点P275では、測位点P273に引き続き測位結果RW271を受け取るが、測位履歴メモリがRW271を保持しているので、アプリケーションに通知されない。
上述のように、実施例(E)は、測位履歴メモリ165が保持していない測位結果を受け取ると、受け取った測位結果よりも高さが大きな測位結果を測位履歴メモリから削除する。この機序により、同じ測位結果を2度受け取る間に、それよりも低い測位結果を受け取ることで、同じ測位結果が2度アプリケーションに通知され得る。ただし、図27と同じ配置であっても、受け取る測位結果の順序が異なれば、同じ測位結果が2度通知されなくなる。その例を、図28を使って以下に説明する。
図28(a)に示す測位デバイスの配置例に基づいて、実施例(E)がアプリケーションに対して測位結果をどのように通知するかを説明する。G281、W281、S281はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG281、RW281、RS281である。図28(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG281に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P281〜P285は説明に使用する測位点(携帯機器が移動した位置)であり、P281からP282、P283、P284、P285の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図28(b)に、実施例(E)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG281が1に、RW281が2に、RS281が3になるように設定されている。実施例(E)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。また、「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報も持たない。
実施例(E)において、測位点P281で受け取る測位結果RG281は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P282で受け取る測位結果RS281は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P283で測位結果RS281を受け取るが、測位履歴メモリはRS281を保持しているので、RS281はアプリケーションに通知されない。測位点P284では、測位結果RW281を受け取るが、RW281は測位履歴メモリに保持されていないので、測位履歴メモリからRW281のロケーションIDの高さよりも高いロケーションIDを有する測位結果RS281が測位履歴メモリから削除され、RW281がアプリケーションに通知される。測位点P285で、測位点P284に引き続き測位結果RW281を受け取るが、測位履歴メモリがRW281を保持しているので、RW281はアプリケーションに通知されない。
上述の2つの例の違いは、対象範囲S281とW281が重複する部分において、測位結果RW281を受け取った後、測位結果RS281を受け取るか否かにある。対象範囲S281とW281が重複する部分に十分な時間留まれば、RW281を受け取り、その後でRS281を受け取り、受け取ったRS281がアプリケーションに通知され得る。逆に、対象範囲S281とW281が重複する部分に留まる時間が十分に短ければ、RW281を受け取っても、その後にRS281を受け取れず、RS281が通知されない。よって、実施例(E)は、例えば、2つの異なる高さを持つ対象範囲がある場合に、大きな高さを持つ対象範囲から小さな対象範囲への移動の過程で、高い方の測位結果を2度受け取ったならば、そこに滞在している時間が長いと解釈して、前進を促す目的に利用できる。
実施例(E)を利用することで、一つの対象範囲から出てまた同じ対象範囲に戻る途中に別の対象範囲を通過したかどうかを、戻った時の通知の有無で判断できるようになる(同様なことは、実施例(F)と(G)でも可能)。2つの対象範囲をαとβとする。いま、αを出発点として、再びαに戻る場合を考える。対象範囲βはαの外側にあり、αとβの高さはα>βとなるように設定する。対象範囲αの内部では測位結果αを受け取るので測位履歴メモリにαが保存される。αの外部に出て、対象範囲βを通過せずにαに戻った場合は、測位結果αを受け取るが、αは測位履歴メモリに保持されているので、通知されない。一方、対象範囲αを出て、対象範囲βに移動すると、測位結果βを受け取る。βの高さはαよりも小さく、αは測位履歴メモリに保持されていないので、測位履歴メモリからαが削除され、βが測位履歴メモリに保存される。その後、対象範囲αに戻ると、測位結果αを受け取るが、αは測位履歴メモリに保持されていないので、αはアプリケーションに通知される。このように、αを出てβを通過した時に限り、対象範囲αに戻った時に測位結果が通知されるようにできる。
さらに、実施例(E)を利用することで、同じロケーションIDを有する対象範囲が複数箇所に散在している場合であっても、各対象範囲をそれぞれ別の対象範囲に包含させることで、各対象範囲の測位結果を受け取った都度通知することができる。例えば、対象範囲α1とα2があり、α1とα2のロケーションIDが同じαであるとする。また、α2は対象範囲βに包含され、ロケーションIDの高さはα>βになるように設定する。このとき、最初に対象範囲α1に留まって測位結果α1を受け取ると、測位履歴メモリにα1が保存される。次に、対象範囲α2に移動すると、測位結果βを受け取る。βの高さはαよりも小さいので、測位履歴メモリにある測位結果α1は削除される。この後で、測位結果α2を受け取ると、α2のロケーションIDαを有する測位結果が測位履歴メモリにないので、α2はアプリケーションに通知される。この効果は、ロケーションIDαを有する対象範囲が2個以上であっても、それらを包含する対象範囲が異なるロケーションIDを保持していれば実現可能である。
(実施例(F))
実施例(F)は、実施例(A)の実装に、測位デバイス管理マスター175を参照して、受け取った測位結果のロケーションIDの「取得され得る測位結果のロケーションIDのリスト」に含まれない測位結果を、測位履歴メモリから削除する機能を追加した例である。
図29(a)に示す測位デバイスの配置例に基づいて、実施例(F)がアプリケーションに対して測位結果をどのように通知するかを説明する。G291、W291、S291はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG291、RW291、RS291である。図29(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG291に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P291〜P295は説明に使用する測位点(携帯機器が移動した位置)であり、図29(a)において、P291からP292、P293、P294、P295の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図29(b)に、実施例(F)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG291が1に、RW291が2に、RS291が3になるように設定されている。実施例(F)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストであり、受け取った測位結果のロケーションIDから、受信し得ないロケーションIDを有する測位結果を測位履歴メモリ165から削除する目的で使用する。
実施例(F)において、測位点P291で受け取る測位結果RG291は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P292で受け取る測位結果RW291は高さが2であるが、測位履歴メモリは高さが2以上の測位結果を保持していないので、アプリケーションに通知される。測位点P293で測位結果RG291を受け取るが、測位履歴メモリはRG291を保持しているので、RG291はアプリケーションに通知されない。測位点P294で測位結果RS291を受け取る。ここで、ロケーションIDRS291の「取得され得る測位結果ロケーションIDのリスト」(RG291、RS291)に含まれない測位結果RW291を測位履歴メモリ165から削除する。受け取った測位結果RS291は測位履歴メモリ165が保持されていないので、アプリケーションに通知される。測位点P295で、測位結果RW291を受け取る。ここでは、ロケーションID RW291の「取得され得る測位結果ロケーションIDのリスト」(RG291、RW291)に含まれない測位結果RS291を測位履歴メモリ165から削除する。次に、受け取った測位結果RW291は、測位履歴メモリに保持されていないので、アプリケーションに通知される。
実施例(A)では、図29(a)の配置例では、測位点P295で測位結果RW291を受け取っても、測位履歴メモリにRW291が保持されているので、通知しないが、実施例(F)では通知することができる。
実施例(F)の測位デバイス管理マスターを変更することで、指定したロケーションIDの測位結果について、受け取った都度、アプリケーションに通知されるようにすることができる。これは、「取得され得る測位結果ロケーションIDのリスト」にないロケーションIDの測位結果が、測位履歴メモリから削除される仕組みを利用する。測位デバイス管理マスターの「取得され得る測位結果ロケーションIDのリスト」が、自らのロケーションIDを含まない場合、処理例3のステップS160において、測位履歴削除関数が受け取った測位結果と同じロケーションIDを持つ測位結果を削除するので、受け取った測位結果は常に測位履歴メモリに保持されなくなるため、アプリケーションに通知されるようになるからである。測位デバイスから測位信号を前後の状況に依らず、受信する度に通知する動作は、移動する携帯機器の追跡や移動の様子を記録する目的に適している。
また、実施例(F)によると、異なる高さが割り当てられた対象範囲が複数個ある場合でも、受け取った測位結果を都度通知するようにできる(同じ高さを割り当てれば、実施例(A)、(B)でも同様なことが実現可能)。例えば、対象範囲αとβについて、「取得され得る測位結果ロケーションIDのリスト」をそれぞれαとβにする。各高さは任意の大きさが割り当てられていて良い。このとき、まず、対象範囲αでは測位結果αを通知して、測位履歴メモリにαを保存する。対象範囲βに移動すると、βの「取得され得る測位結果ロケーションIDのリスト」にαが保持されていないので、測位履歴メモリからαが削除される。受け取った測位結果βは測位履歴メモリに保持されていないので通知され、測位履歴メモリに保存される。再び対象範囲αに移動すると、測位結果αを受け取る。αの「取得され得る測位結果ロケーションIDのリスト」にはβが保持されていないので、測位履歴メモリから測位結果βが削除され、αが通知される。このように、実施例(F)によれば、「取得され得る測位結果ロケーションIDのリスト」の設定により、高さの設定に関係なく、受け取った測位結果を通知するようにできる。
(実施例(G))
実施例(G)は、実施例(B)の実装に、測位デバイス管理マスターを参照して、受け取った測位結果のロケーションIDの「取得され得る測位結果のロケーションIDのリスト」に含まれない測位結果を、測位履歴メモリから削除する機能を追加した例である。
図30(a)に示す測位デバイスの配置例に基づいて、実施例(G)がアプリケーションに対して測位結果をどのように通知するかを説明する。G301、W301、S301はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG301、RW301、RS301である。図30(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG301に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P301〜P305は説明に使用する測位点(携帯機器が移動した位置)であり、図30(a)においては、P301からP302、P303、P304、P305の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図30(b)に、実施例(G)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG301が1に、RW301が2に、RS301が3になるように設定されている。実施例(G)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストであり、受け取った測位結果のロケーションIDから、受信し得ないロケーションIDを有する測位結果を測位履歴メモリ165から削除する目的で使用する。
実施例(G)において、測位点P301で受け取る測位結果RG301は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P302で受け取る測位結果RS301は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P303で測位結果RG301を受け取るが、測位履歴メモリはRG301を保持しているので、RG301はアプリケーションに通知されない。測位点P304で測位結果RW301を受け取るが、ロケーションID RW301の「取得され得る測位結果ロケーションIDのリスト」(RG301、RW301)に含まれない測位結果RS301を測位履歴メモリ165から削除する。受け取った測位結果RW301は測位履歴メモリ165が保持していないので、アプリケーションに通知される。次に、測位点P305で、測位結果RS301を受け取る。ここでは、ロケーションID RS301の「取得され得る測位結果ロケーションIDのリスト」(RG301、RS301)に含まれない測位結果RW301を測位履歴メモリ165から削除する。次に、受け取った測位結果RS301は、測位履歴メモリに保持されていないので、アプリケーションに通知される。
実施例(B)を図30(a)の配置例に適用すると、測位点P304で測位結果RW301を受け取っても、測位履歴メモリがRS301を保持しており、その高さがRW311よりも高いので、通知されない。また、測位点P315で測位結果RS311を受け取るが、測位履歴メモリがRS311を保持しているので、通知されない。一方、実施例(G)は、測位点P314、P315でそれぞれ受け取った測位結果RW311、RS311を通知することができる。
実施例(G)によれば、ある対象範囲から出て、再びその対象範囲に戻る過程で、別の対象範囲を通過したことを、戻った時の通知の有無で判断できる(同様なことは、実施例(E)と(F)でも実現が可能)。2つの対象範囲αとβがあり、αとβは重複していないものとする。いま、対象範囲αを出発点として、再びαに戻る場合を考える。αのロケーションIDの「取得され得る測位結果ロケーションIDのリスト」はβを保持しないようにし、βのロケーションIDの「取得され得る測位結果ロケーションIDのリスト」はαを保持しないように設定する。出発点である対象範囲αでは測位結果αを受け取るので測位履歴メモリにαを保存する。αの外側に出て、対象範囲βを通過せずにαに戻る場合は、測位結果αを受け取るが、αは測位履歴メモリに保持されているので通知されない。一方、対象範囲αの外側に出て、対象範囲βを通過して、再びαに戻る場合は、対象範囲βに移動して測位結果βを受け取ると、βのロケーションIDの「取得され得る測位結果ロケーションIDのリスト」がαを保持していないので、測位履歴メモリからαが削除される。その後、対象範囲αに移動して測位結果αを受け取るが、αは測位履歴メモリに保持されていないので、アプリケーションに通知される。このように、αを出てβを通過した時に限り、対象範囲αに戻った時に通知がされるようにできる。類似の仕組みは実施例(E)でも作ることができるが、実施例(E)では、αとβの高さをβ<αになるように設定する必要があった。一方、実施例(G)では、高さの設定は考慮しなくて良い。
また、実施例(G)を利用して、測位結果を受け取ることで測位履歴メモリをクリアし得る対象範囲を作ることができる。具体的には、対象範囲αとβ、γ、δについて、それぞれの「取得され得る測位結果ロケーションIDのリスト」を(α)と(β)、(α、β、γ)、(α、β、δ)に、高さを10と30、20、40に設定する。対象範囲αとβが測位履歴メモリをクリアする対象範囲であり、各対象範囲に移動した場合にどのような効果があるかを説明する。まず、対象範囲αについて説明する。対象範囲αに移動して測位結果αを受け取ると、測位履歴メモリにあるα以外の測位結果が削除された後、測位履歴メモリにαが保存される。次に対象範囲γに移動すると、測位結果γを受け取り、γの高さがαよりも大きいので、γがアプリケーションに通知される。その後、対象範囲にδに移動すると、δの「取得され得る測位結果ロケーションIDのリスト」が(α、β、δ)であるので、測位履歴メモリからγが削除され、δの高さがαよりも大きいので、測位結果δが通知される。
次に、対象範囲βについて説明する。対象範囲βに移動して測位結果βを受け取ると、βの「取得され得る測位結果ロケーションIDのリスト」が(β)であるので、測位履歴メモリにあるβ以外の測位結果が削除された後、測位履歴メモリに測位結果βが保存される。次に、対象範囲γに移動すると測位結果γを受け取るが、γの高さはβよりも小さいので受け取った測位結果γは通知されない。対象範囲δに移動すると、測位結果δを受け取るが、δの高さはβよりも大きいので、測位結果δがアプリケーションに通知される。このように、実施例(G)を利用すれば、測位結果を受け取ることで測位履歴メモリをクリアする対象範囲を作ることができるだけでなく、その後で通知される測位結果の優先度の制限を各対象範囲に設定することも可能である。
(実施例(H))
実施例(H)は、実施例(E)の実装に、一定時間経過後あるいは一定距離移動後に測位履歴メモリ165から測位結果を削除する機能を追加したものである。なお、実施例(E)は、受け取った測位結果を測位履歴メモリが保持していない場合に、受け取った測位結果の高さ以上の測位結果を、測位履歴メモリから削除する例である。
図31(a)に示す測位デバイスの配置例に基づいて、実施例(H)がアプリケーションに対して測位結果をどのように通知するかを説明する。G311、W311、S311はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG311、RW311、RS311である。図31(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG311に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P311〜P316は説明に使用する測位点(携帯機器が移動した位置)であり、図31(a)においては、P311からP312、P313、P314、P315、P316の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を、測位点ラベルの下にあるカッコ内に記載した時刻に受け取るものとする。
図31(b)に、実施例(H)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG311が1に、RW311が2に、RS311が3になるように設定されている。有効時間と有効距離は測位履歴メモリ165に保持される測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位結果を測位履歴メモリ165から削除しないので、図6に示したそのための情報は持たない。
実施例(H)において、測位点P311で受け取る測位結果RG311は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P312で受け取る測位結果RS311は高さが3であるが、測位履歴メモリは高さが3以上の測位結果を保持していないので、アプリケーションに通知される。測位点P313で測位結果RW311を受け取るが、測位履歴メモリ165はRW311を保持していないので、RW311よりも高さが大きなロケーションIDを有する測位結果RS311を測位履歴メモリ165から削除し、RW311をアプリケーションに通知する。測位点P314では測位結果RS311を受け取るが、測位履歴メモリはロケーションIDの高さがRS311以上の測位結果を保持していないので、RS311はアプリケーションに通知される。測位点P315では測位結果RW311を受け取るが、ロケーションIDがRW311の測位結果を測位履歴メモリに保持されているので、通知されない。測位点P315からP316に移動する過程で、測位履歴メモリが保持する測位結果RS311の測位時からの経過時間が有効時間を超過するので、測位履歴メモリから測位結果RS311が削除される。測位点316でも測位結果RS311を受け取るが、測位履歴メモリ165は、ロケーションIDの高さがRS311以上の測位結果を保持していないので、測位結果RS311はアプリケーションに通知される。
実施例(H)は、実施例(E)と異なり、測位履歴メモリが保持する高さ最大の測位結果が一定時間経過後あるいは一定距離移動後に削除され得るので、削除された測位結果と同じロケーションIDを有する測位結果を通知することができる。
実施例(H)によれば、同じロケーションIDを有する対象範囲が複数箇所に散在している場合であっても、各対象範囲を相異なる別の対象範囲に包含させることで、各対象範囲で受け取った測位結果を通知させることが可能である。この効果は実施例(E)と同じだが、実施例(H)では、測位履歴メモリに保持されている測位結果が、それを受信しなくなってから一定時間経過後あるいは一定距離移動後に削除され得るので、一度通知した測位結果を、例えば1時間後に再度通知できるようにすることが可能である点が異なっている。
(実施例(H)´)
実施例(H)´は、実施例(H)の変形例であり、タイマー処理において、測位履歴メモリから測位結果が削除されたときに、測位履歴メモリにある高さが最大の測位結果をアプリケーションに通知する点が異なる。
実施例(H)の説明に使用した図31を使用して、実施例(H)´がアプリケーションに対して測位結果をどのように通知するかを説明する。
測位点P311からP315までは実施例(H)と同じ機序で通知を行なう。測位点P315からP316に移動する過程で、測位履歴メモリが保持する測位結果RS311の測位時からの経過時間が有効時間を超過するので、測位履歴メモリから測位結果RS311が削除される。この時、測位履歴メモリが保持する高さ最大の測位結果はRW311であるので、RW311がアプリケーションに通知される。測位点P316で測位結果RS311を受け取るが、測位履歴メモリ165がロケーションIDの高さがRS311以上の測位結果を保持していないので、アプリケーションに通知される。
実施例(H)´では、一定時間経過後あるいは一定距離移動後に測位履歴メモリから削除された測位結果が、履歴中で高さが最大だった場合、その次に大きな高さのロケーションIDを有する測位結果がアプリケーションに通知される。実施例(H)では、測位履歴メモリが保持していない測位結果を受け取ると、それよりも高い測位結果を削除するので、上記の仕組みにより通知される測位結果は一度通知されている測位結果であり、同じ測位結果が2度通知され得ることになる。
実施例(H)´によれば、同じロケーションIDを有する対象範囲が複数箇所に散在している場合であっても、各対象範囲を相異なる別の対象範囲に包含させることで、各対象範囲で受け取った測位結果を通知することが可能である。この効果は、実施例(H)と同じだが、実施例(H)´では、包含する側の測位結果を一定時間経過後あるいは一定距離移動後に再通知することができる。例えば、対象範囲α1とα2があり、α1とα2のロケーションIDは同じαであるとする。ただし、α2は別の対象範囲βに包含されるようにし、ロケーションIDの高さはα>βになるように設定する。また、αとβの有効時間を、αが60秒、βは90秒に設定する。こうすることで、対象範囲α2を通過した場合に限り、ロケーションIDαの測位結果を受け取らなくなってから60秒後にβを再度通知し得る。以下、再通知する機序について説明する。対象範囲α2では、測位結果α2とβを受け取るので、測位履歴メモリには測位結果α2とβが最終的に保持される。その後、対象範囲α2の外側に移動して60秒以上経過すると、対象範囲α2は測位履歴メモリから削除される(ただし、時間内に対象範囲α1に移動した場合は除く)。ことのき、測位履歴メモリに残ったβの高さが最大になるので、測位結果βが通知される。
(実施例(I))
実施例(I)は、実施例(F)の実装に、一定時間経過後あるいは一定距離移動後に測位履歴メモリ165から測位結果を削除する機能を追加した例である。
図32(a)に示す測位デバイスの配置例に基づいて、実施例(I)がアプリケーションに対して測位結果をどのように通知するかを説明する。G321、W321、S321はそれぞれGNSS、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG321、RW321、RS321である。図32(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG321に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P321〜P326は説明に使用する測位点(携帯機器が移動した位置)であり、図32(a)においては、P321からP322、P323、P324、P325、P326の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。S321が2箇所に配置されているが、左側のS321はW321に包含されており、測位結果RS321を受け取った時点で、履歴にRW321が保持されているかどうかで、区別可能である。
実施例(I)は、実施例(F)と同様に、測位デバイス管理マスターを参照して、受け取った測位結果のロケーションIDの「取得され得る測位結果のロケーションIDのリスト」に含まれない測位結果を測位履歴メモリ165から削除するための実装を備えている。しかし本配置例では、後述する測位デバイス管理マスターで示すように、「取得され得る測位結果ロケーションIDのリスト」にロケーションIDによる違いがなく、この実装が機能しない。
図32(b)に、実施例(I)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG321が1に、RW321が2に、RS321が3になるように設定されている。有効時間と有効距離は測位履歴メモリ165に保持される測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストであり、受け取った測位結果のロケーションIDから、受信し得ないロケーションIDを有する測位結果を測位履歴メモリ165から削除する目的で使用する。なお、RS321は2箇所にあるため、緯度と経度に特定の値を設定していない。
実施例(I)において、測位点P321で受け取る測位結果RG321は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P322で受け取る測位結果RW321は、測位履歴メモリ165に保持されていないので、アプリケーションに通知される。測位点P323では測位結果RS321を受け取るが、測位履歴メモリはRS321を保持していないので、アプリケーションに通知される。測位点P324では測位結果RW321を受け取るが、RW321は測位履歴メモリに保持されているので通知されない。続く測位点P325で受け取るRG321も測位履歴メモリに保持されているので通知されない。
測位点P325からP326に移動する過程で、測位履歴メモリが保持する測位結果RS321は、測位からの経過時間が有効時間3.0秒を超過するので、測位履歴メモリから削除される。測位点P326では測位結果RS321を受け取るが、RS321は測位履歴メモリに保持されていないので、アプリケーションに通知される。
実施例(F)では、受け取った測位結果のロケーションIDの取得され得る測位結果のロケーションIDのリストについて、リストに含まれない測位結果を測位履歴メモリから削除することにより、以前に受け取ったのと同じ測位結果を通知する。一方、実施例(I)では、測位履歴メモリが保持する高さ最大の測位結果が一定時間経過後あるいは一定距離移動後に削除し得ることにより、「取得され得る測位結果ロケーションIDのリスト 」に基づく測位履歴メモリからの測位結果の削除が行われない場合であっても、以前に受け取ったのと同じ測位結果を通知することができる。
実施例(I)によれば、実施例(F)と同様に、異なる高さが割り当てられた対象範囲が複数個あっても、対象範囲で測位結果を受け取ると、その都度通知するようにできる。ただし、実施例(F)では、ある対象範囲の内側から外側に移動して、再び同じ対象範囲に戻った場合は受け取った測位結果を通知できなかった。実施例(I)では、ある測位結果を受け取らなくなってから、一定時間経過後あるいは一定距離移動後に、その測位結果を測位履歴メモリから削除するので、ある対象範囲を出た後、一定時間以上経過あるいは一定距離以上移動してその対象範囲に戻れば、受け取った測位結果を通知し得る。
(実施例(J))
実施例(J)は、実施例(G)の実装に、一定時間経過後あるいは一定距離移動後に測位履歴メモリ165から測位結果を削除する機能を追加した例である。
図33(a)に示す測位デバイスの配置例に基づいて、実施例(J)がアプリケーションに対して測位結果をどのように通知するかを説明する。G331、W331、W332、S331はそれぞれGNSS、WiFi、WiFi、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG331、RW331、RW332、RS331である。図33(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG331に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P331〜P336は説明に使用する測位点(携帯機器が移動した位置)であり、図33(a)においては、P331からP332、P333、P334、P335、P336の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。S331が2箇所に配置されているが、左側のS331はW331に包含されており、右側のS331はW332に包含されており、測位結果RS331を受け取った時点で、履歴にRW331とRW332のどちらが保持されているかで区別が可能である。
実施例(J)は、実施例(G)と同様に、測位デバイス管理マスターを参照して、受け取った測位結果のロケーションIDの「取得され得る測位結果のロケーションIDのリスト」について、リストに含まれない測位結果を測位履歴メモリから削除するための実装を備えている。しかし、後述する測位デバイス管理マスターで示すように、「取得され得る測位結果ロケーションIDのリスト」にはロケーションIDによる違いがなく、この実装は機能しない。
図33(b)に、実施例(J)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG331が1に、RW331とRW332が2に、RS331が3になるように設定されている。有効時間と有効距離は測位履歴メモリ165に保持されている測位結果の削除の可否の判定に使用する値であり、それぞれ測位時刻からの経過時間、測位時の位置から現在の位置までの距離との比較に使用する。「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストであり、受け取った測位結果のロケーションIDから、受信し得ないロケーションIDを有する測位結果を測位履歴メモリ165から削除する目的で使用する。なお、RS331は2箇所にあるため、緯度と経度に特定の値を設定していない。
実施例(J)において、測位点P331で受け取る測位結果RG331は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P332で受け取る測位結果RW331は高さが2であるが、測位履歴メモリ165が高さ2以上のロケーションIDを有する測位結果保持していないので、アプリケーションに通知される。測位点P333で測位結果RS331を受け取るが、RS331の高さ3位上のロケーションIDを有する測位結果を測位履歴メモリ165が保持していいないので、RS331はアプリケーションに通知される。測位点P334では測位結果RW331を受け取るが、RW331は測位履歴メモリに保持されているので通知されない。測位点P335では測位結果RW332を受け取るが、RW332の高さ2以上のロケーションIDを有する測位結果RS331が測位履歴メモリ165に保持されているので、RW332は通知されない。
測位点P335からP336に移動する過程で、測位履歴メモリが保持する測位結果RS331は、測位からの経過時間が有効時間3.0秒を超過するので、測位履歴メモリ165から削除される。測位点P336では測位結果RS331を受け取るが、RS331の高さ3以上のロケーションIDを有する測位結果は測位履歴メモリに保持されていないので、アプリケーションに通知される。
実施例(G)では、受け取った測位結果のロケーションIDの取得され得る測位結果のロケーションIDのリストについて、リストに含まれない測位結果を測位履歴メモリから削除することにより、以前に受け取ったのと同じ測位結果を通知する。一方、実施例(J)では、測位履歴メモリが保持する高さ最大の測位結果が一定時間経過後あるいは一定距離移動後に削除し得ることにより、「取得され得る測位結果ロケーションIDのリスト」に基づく測位履歴メモリからの測位結果の削除が行われない場合であっても、以前に受け取ったのと同じ測位結果を通知することができる。
実施例(J)によれば、実施例(G)と同様に、測位結果を受け取ることで測位履歴メモリをクリアし得る対象範囲を作ることができる。実施例(G)では、通知に必要な測位結果の高さの条件を設定できたが、実施例(J)では、一定時間経過後あるいは一定距離移動後にその条件を無効化できる。具体的には、対象範囲αとβ、γについて、それぞれの「取得され得る測位結果ロケーションIDのリスト」を(α)と(β)、(α、β、γ)に、高さを例えば10と30、20に、有効時間を60秒、60秒、30秒に設定する。こうすると、対象範囲βから対象範囲γに移動した直後は、測位結果γを受け取っても、γの高さがβよりも小さいので通知されないが、対象範囲β以外の場所に60秒以上留まった後であれば、測位履歴メモリからβが削除されるので、測位結果γを受け取れば、γを通知し得る。
(実施例(J)´)
実施例(J)´は、実施例(J)の変形例であり、タイマー処理において、測位履歴メモリから測位結果が削除され、削除後に測位履歴メモリ165が保持する高さが最大の測位結果をアプリケーションに通知する点が異なる。
実施例(J)の説明に使用した図33を使用して、実施例(J)´がアプリケーションに対して測位結果をどのように通知するかを説明する。
測位点P331からP335までは実施例(J)と同じ機序で通知を行なう。その後の測位点P335からP336に移動する過程で、測位履歴メモリが保持する測位結果RS331は、測位からの経過時間が有効時間3.0秒を超過するので、測位履歴メモリ165から削除される。削除実行後、測位履歴メモリが保持する高さ最大の測位結果はRW332になるので、測位結果RW332がアプリケーションに通知される。測位点P336では測位結果RS331を受け取るが、測位結果RS331の高さ3以上の測位結果を測位履歴メモリが保持していないので、アプリケーションに通知される。
実施例(J)´は、実施例(J)では高さが高い測位結果が削除された時に、その次に高い高さを持つ測位結果が通知される。実施例(J)の測位履歴メモリ165には、優先度が低い理由から、受け取った測位結果が通知されずに保持されている場合があるが、実施例(J)´では、そのような測位結果がアプリケーションに通知され得る。
実施例(J)´によれば、実施例(J)と同様に、測位結果を受け取ると測位履歴メモリをクリアし得る対象範囲を作ることができる。実施例(J)では、通知に必要な測位結果の高さの条件が、一定時間経過後あるいは一定距離移動後に無効化されるだけだったが、実施例(J)´では、無効化された後で、測位履歴メモリにある高さが最大の測位結果が通知される。具体的には、対象範囲αとβ、γについて、それぞれの「取得され得る測位結果ロケーションIDのリスト」を(α)と(β)、(α、β、γ)に、高さを10と30、20に、有効時間を60秒、60秒、30秒に設定する。こうすることにより、対象範囲βから対象範囲γに移動した直後は、測位結果γを受け取っても、γの高さがβよりも小さいので通知されないが、対象範囲β以外の場所に60秒以上留まれば、測位履歴メモリから測位結果βが削除され、測位結果γを受け取らなくても測位結果γが通知される。
(実施例(K))
実施例(K)は、実施例(E)と実施例(F)の2つを組み合わせた例であり、測位履歴メモリ165から測位結果を削除する方法として、受け取った測位結果が測位履歴メモリに保持されていない場合に、その測位結果の高さよりも大きな測位結果を測位履歴メモリから削除する方法、及び、受け取った測位結果のロケーションIDの「取得され得る測位結果ロケーションIDのリスト」に含まれない測位結果を測位履歴メモリ165から削除する方法の2つを使う。また、通知については、受け取った測位結果が測位履歴メモリ165に保持されていない場合に通知を行なう。
図34(a)に示す測位デバイスの配置例に基づいて、実施例(K)がアプリケーションに対して測位結果をどのように通知するかを説明する。G341、W341、S341、S342はそれぞれGNSS、WiFi、音波信号、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG341、RW341、RS341、RS342である。図34(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG341に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。P341〜P348は説明に使用する測位点(携帯機器が移動した位置)であり、図34(a)においては、P341からP342、P343、P344、P345、P346、P347、P348の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図34(b)に、実施例(K)で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さはRG341が1に、RW341が2に、RS351とRS352が3になるように設定されている。実施例(K)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。「取得され得る測位結果ロケーションIDのリスト」は、そのロケーションIDを受信可能な範囲内のいずれかの場所で受信され得るロケーションIDのリストであり、受け取った測位結果のロケーションIDから、受信し得ないロケーションIDを有する測位結果を測位履歴メモリ165から削除する目的で使用する。
実施例(K)において、測位点P341で受け取る測位結果RG341は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P342では測位結果RW341を受け取るが、測位履歴メモリ165はロケーションIDRW341を有する測位結果を保持していないので、アプリケーションに通知される。測位点P343では測位結果RG341を受け取るが、測位履歴メモリ165はロケーションIDRG341を有する測位結果を保持しているので、アプリケーションに通知されない。
測位点P344では測位結果RS341を受け取るが、ロケーションIDRS341の「取得され得る測位結果ロケーションIDのリスト」(RG341、RS341)に含まれない測位結果RW341が測位履歴メモリから削除され、RS341がアプリケーションに通知される。続く測位点P345では、測位結果RG341を受け取るが、ロケーションIDRG341を有する測位結果を測位履歴メモリ165が保持しているので通知されない。
測位点P346では測位結果RS342を受け取るが、ロケーションIDRS342の「取得され得る測位結果ロケーションIDのリスト」(RG341、RW341、RS342)に含まれない測位結果RS341が測位履歴メモリから削除され、RS342がアプリケーションに通知される。
測位点P347では測位結果RW341を受け取るが、ロケーションIDRW341を有する測位結果は測位履歴メモリに保持されていないので、RW341よりも高さが大きな測位結果RS342を測位履歴メモリから削除し、RW341がアプリケーションに通知される。測位点P348では、測位結果RS342を受け取るが、測位履歴メモリはRS342を保持していないので、アプリケーションに通知される。
実施例(E)を本配置例に適用すると、測位点P347で受け取る測位結果RW341は測位履歴メモリが保持しているので通知されない。また、測位点P348で受け取る測位結果RS342も測位履歴メモリに保持されているので通知されない。一方、実施例(F)を本配置例に適用すると、測位点P347で測位結果RW341を受け取るが、測位履歴メモリが保持するRS342は削除されないので、測位点P348で受け取る測位結果RS342は通知されない。
上述のように、実施例(K)は、対象範囲が相互に重複するような密集した状況と対象範囲同士が隔絶されている状況とが混在する配置であっても、測位履歴メモリが保持する測位結果のうち、無効である可能性の高い測位結果を削除して、より適切な測位結果を通知することができる。
実施例(K)によれば、同じロケーションIDを有する対象範囲が複数箇所に散在している場合であっても、それらの測位結果を受け取って通知するようにできる。これは、実施例(E)と同様である。実施例(K)では、さらに、高さが異なる対象範囲が散らばってあるような状態が混在していても、各測位結果を受け取って通知するようにできる。具体的には、対象範囲α1とα2、β、γ、δがあり、α1とα2は同じロケーションIDαを有していて、α1はβに、α2はγにそれぞれ包含されているとする。ロケーションIDα、β、γ、δの高さは、α>β,γとし、β、γ、δで相異なるように設定する。α、β、γ、δの「取得され得る測位結果ロケーションIDのリスト」は、それぞれ(α、β、γ)、(α、β)、(α、γ)、(δ)とする。まず、対象範囲α1に移動すると、ここでは測位結果α1とβを受け取り、測位履歴メモリにα1とβが保存される。この後で対象範囲α2に移動すると、測位結果γとα2を受け取る。測位結果γを受け取ると、測位結果γの「取得され得る測位結果ロケーションIDのリスト」は(α、γ)であるので、測位履歴メモリから測位結果βが削除される。また、測位結果γは測位履歴メモリに保持されていないので、測位結果γよりも高さが大きいαは測位履歴メモリから削除される。その結果、受け取ったγとα2が通知される。次に、対象範囲δに移動すると、ロケーションIDδの「取得され得る測位結果ロケーションIDのリスト」は(δ)であるので、測位履歴メモリにあるαとγは削除される。その結果、受け取った測位結果δが通知される。実施例(E)では、βとγ、δの高さを同じ大きさにしないと同様なことは実現できない。このように、同じロケーションIDを有する対象範囲が複数個と、それとは異なるロケーションIDを有する対象範囲とが混在しているような状況でも、各対象範囲で受け取った測位結果を都度通知するようにできる。
(実施例(L))
実施例(L)は、実施例(E)と実施例(G)の2つを組み合わせた例であり、測位履歴メモリ165から測位結果を削除する方法として、受け取った測位結果が測位履歴メモリに保持されていない場合に、その測位結果の高さよりも大きな測位結果を測位履歴メモリ165から削除する方法と、受け取った測位結果のロケーションIDの「取得され得る測位結果ロケーションIDのリスト」に含まれない測位結果を測位履歴メモリ165から削除する方法の2つを使う。また、通知については、受け取った測位結果のロケーションIDの高さが測位履歴メモリにある測位結果の高さの最大値以上で、かつ、受け取った測位結果が測位履歴メモリ165に保持されていない場合に行なう。
実施例(L)がどのように受け取った測位結果をアプリケーションに通知するかを、実施例(K)で使用した図34に基づいて説明する。
実施例(L)において、測位点P341で受け取る測位結果RG341は、測位開始後初めて受け取る測位結果であり、測位履歴メモリ165は測位結果を保持していないので、アプリケーションに通知される。測位点P342では測位結果RW341を受け取るが、ロケーションIDRW341の高さ2以上のロケーションIDを有する測位結果は測位履歴メモリ165に保持されていないので、アプリケーションに通知される。測位点P343では測位結果RG341を受け取るが、測位履歴メモリ165はロケーションIDRG341を有する測位結果を保持しているので、アプリケーションに通知されない。
測位点P344では測位結果RS341を受け取るが、ロケーションIDRS341の「取得され得る測位結果ロケーションIDのリスト」は「RG341、RS341」であるので、測位履歴メモリから測位結果RW341が削除され、RS341がアプリケーションに通知される。測位点P345では、測位結果RG341を受け取るが、ロケーションIDRG341を有する測位結果を測位履歴メモリ165が保持しているので、通知されない。
測位点P346では測位結果RS342を受け取るが、ロケーションIDRS342の「取得され得る測位結果ロケーションIDのリスト」(RG341、RW341、RS342)に含まれない測位結果RS341が測位履歴メモリから削除される。削除後、測位結果RS342の高さ3以上の測位結果が測位履歴メモリに保持されていないので、RS342はアプリケーションに通知される。
測位点P347では測位結果RW341を受け取るが、ロケーションIDRW341を有する測位結果が測位履歴メモリに保持されていないので、RW341よりも高さが大きな測位結果RS342が測位履歴メモリから削除され、RW341がアプリケーションに通知される。測位点P348では測位結果RS342を受け取るが、測位履歴メモリはRS342の高さ3以上の測位結果を保持していないので、アプリケーションに通知される。
実施例(E)を本配置例に適用すると、測位点P347で受け取る測位結果RW341は測位履歴メモリに保持されているので通知されない。また、測位点P348で受け取る測位結果RS342も測位履歴メモリに保持されているので通知されない。一方、実施例(G)を本配置例に適用すると、測位点P347で測位結果RW341を受け取るが、RW341の高さ2よりも高さが大きな測位結果RS342が測位履歴メモリに保持されているので、通知されない。さらに、測位点P348で受け取る測位結果RS342も、測位履歴メモリに保持されているので、通知されない。
上述のように、実施例(L)は、対象範囲が相互に重複するような密集した状況と対象範囲同士が隔絶されている状況とが混在する配置であっても、測位履歴メモリが保持する測位結果のうち、無効である可能性の高い測位結果を削除して、より適切な測位結果を通知することができる。
以上に例示した各実施例の動作に基づき、アプリケーションで提供したいサービスに応じて、どのように多数の測位デバイスを分散配置し、どのように各測位デバイスに高さを割り当て、どの実施例の動作を測位ライブラリに行なわせるかを、設計することが可能である。
実施例(L)を利用することで、実施例(K)と同様に、同じロケーションIDを有する対象範囲が複数箇所に散在している場合であっても、それらの測位結果を受け取った都度通知するようにできる。
また、実施例(G)の効果のように、測位結果を受け取ることで測位履歴メモリをクリアし得る対象範囲を作ることができる。実施例(G)では、測位履歴メモリをクリアする対象範囲に対して、通知される測位結果の優先度の制限を設定できたが、実施例(L)では、それらの優先度の設定を全て無効化されるので、同じ設定のまま実施例を切り替えるだけで、優先度の制限の可否を変更することが可能である。
(測位デバイス管理マスターに関する応用例1)
位置情報に基づいてサービスを提供するアプリケーションにおいて、携帯機器が同じ測位手段を備えていない、あるいはアプリケーションが要求する精度や感度を備えていない理由から、他の機種と同じ測位手段を利用できない場合がある。
上述した実施形態において、図7の処理例1、図12の処理例2、図16の処理例3、図20の処理例4のステップS550で説明したように、測位デバイス管理マスター175として記憶するデータの内容を、配置されている多数の測位デバイスの一部とし、どの一部を記憶するかをアプリケーションごとに使い分けることで、測位結果の使用の可否を変更することが可能である。この測位デバイス管理マスターの使い分けを、アプリケーションごとにではなく、携帯機器の機種ごとにすることで、利用可能な測位手段が異なっている携帯機器同士が、同じアプリケーションを等しく利用できるようにすることが可能である。
図35に基づいて、測位デバイス管理マスターの使い分けにより、どのように利用できる測位手段が異なる携帯機器同士が同じアプリケーションを使えるようになるかを説明する。なお、本説明では、実施例(A)を使用するものとする。また、携帯機器には、GNSS、WiFi、iBeacon、音波信号の測位手段を持つ機種(A)と、GNSS、WiFi、音波信号の測位手段を持つがiBeaconは持たない機種(B)があるものとする。
図35(a)は、測位デバイスの配置例を示す。G351、W351、S351、I351はそれぞれGNSS、WiFi、音波信号、iBeaconの測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG351、RW351、RS351、RI351である。図35(a)に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG351に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。なお、対象範囲S351は対象範囲I351の内側に位置している。P351〜P357は説明に使用する測位点(携帯機器が移動した位置)であり、図35(a)においては、P351からP352、P353、P354、P355、P356、P357の順に移動する場合について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図35(b)と(c)は、本説明で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは即位結果の優先度)はRG351が1、RW351が2、RS351が3、RI351が3に設定されている。また、RS351とRI351の位置は同じ値に設定されている。実施例(A)では、時間や距離により測位履歴メモリ165から測位結果を削除しないので、図6に示した有効時間と有効距離の情報は持たない。また、「取得され得る測位結果ロケーションIDのリスト」に基づいて、測位履歴メモリ165から、測位結果を削除しないので、図6に示したそのための情報も持たない。図35(b)の測位デバイス管理マスターのデータは、iBeaconの測位デバイスから受け取るロケーションIDを持つが、図35(c)のデータは持っていない。
機種(A)の携帯機器は、測位デバイス管理マスター175のデータとして、図35(b)を測位情報管理サーバからダウンロードするものとする。また、機種(B)の携帯機器は、測位デバイス管理マスターのデータとして、図35(c)を測位情報管理サーバからダウンロードするものとする。機種による測位デバイス管理マスターのデータの切り替えは、携帯機器から測位情報管理サーバに対して測位デバイス管理マスターデータ要求時に機種を表す情報を送信して、測位情報管理サーバが機種に合う測位デバイス管理マスターデータを返送することで取得する。代替例として、アプリケーションに機種ごとの測位デバイス管理マスターに持たせておき、機種に合う測位デバイス管理マスターのデータを測位ライブラリに渡すようにしても良い。また、測位ライブラリが機種ごとの測位デバイス管理マスターのデータを持ち、機種に合う測位デバイス管理マスターデータを使い分けても良い。
機種(A)の携帯機器を使う場合について説明する。機種(A)はアプリケーション開始後、まず、測位点P351において、測位結果RG351を受け取る。RG351は測位開始後初めて受け取る測位結果なので、アプリケーションに通知される。測位点P352では、測位結果RW352を受け取るが、RW352は測位履歴メモリ165に保持されていないので、アプリケーションに通知される。測位点P353では測位結果RG351を受け取るが、測位履歴メモリはRG351を保持しているので、アプリケーションには通知されない。測位点P354では測位結果RI351を受け取るが、RIは測位デバイス管理マスター(図35(b))に登録されていて、測位履歴メモリに保持されていないので、アプリケーションに通知される。測位点P355では、測位結果RS351を受け取るが、RS351は測位デバイス管理マスターに登録されていないので、廃棄される。測位点P356では、測位結果RI351を受け取るが、RI351は測位履歴メモリに保持されているのでアプリケーションには通知されない。測位点P357では、測位結果RG351を受け取るが、RG351は測位履歴メモリに保持されているので、アプリケーションには通知されない。
次に、機種(B)の携帯機器を使う場合について説明する。機種(B)はアプリケーション開始後、まず、測位点P351からP353までは、機種(A)と同じように測位結果を受け取り、アプリケーションに対して測位結果を通知する。測位点P354は測位結果RI351の受信できる測位点であるが、機種(B)はiBeaconの測位手段を備えていないので、RI351は受け取られない。測位点P355では、測位結果RS351を受け取るが、RS351は測位デバイス管理マスターに登録されていて、測位履歴メモリに保持されていないので、アプリケーションに通知される。測位点P356では、測位結果RI351を受け取るが、測位点P354と同じ理由により、RI351はアプリケーションに通知されない。測位点P357では、測位結果RG351を受け取るが、RG351は測位履歴メモリに保持されているので、アプリケーションには通知されない。
このように、備える測位手段が異なる機種同士でも、測位デバイス管理マスターを使い分けることで、一つのアプリケーションを同じように使用することが可能になる。
(測位デバイス管理マスターに関する応用例2)
測位デバイス管理マスター175のデータを使い分けることで、同一エリアにおいて、異なる位置情報に基づいたサービス提供が可能になる。図36(a)は、店舗内の測位デバイスの配置例を示す図である。図36(b)、(c)は、それぞれ趣味嗜好の分類(A)と(B)の測位デバイス管理マスターのデータである。例えば、店舗内で来店客に趣味嗜好に関するアンケートに回答させ、それに基づいた位置情報サービスを提供する場合、来店客の回答データから来店客の趣味嗜好を(A)と(B)の2つに分類し、分類結果に合う測位デバイス管理マスター175を測位情報管理サーバ300からダウンロードさせる。携帯機器は、測位結果を店内で無作為に受け取るが、携帯機器には、測位デバイス管理マスターに登録されている測位結果しか通知されないので、利用者は自分の趣味嗜好に分類されている測位結果に基づいたサービスだけを受け取ることができる。また、2つの分類で共通するサービスを提供しても良い。その場合は、図36の(b)、(c)のロケーションIDRI361のように、分類(A)と(B)の両方に含めることで容易に実現できる。
(偽装防止への応用例)
位置情報に基づいたサービス提供を行うと、悪意の利用者が、携帯機器の測位手段をソフトウェア的に操作して、実際とは異なる位置に留まっているように偽装する、あるいは測位デバイスから受信した信号を記録して再生することで、あたかも測位デバイスがあった場所に携帯機器が位置しているように偽装することが起こり得る。本例では、測位結果の通知の条件として複数の測位手段の測位結果が測位履歴メモリ165に保持されていること、あるいは所定の順序で測位結果を受け取らないと測位結果を通知できないようにすることで、このような位置の偽装を困難にすることが可能である。
図37は、説明に使用する測位デバイスの対象範囲の配置例を示す。G371、W371、S371、S372、S373はそれぞれGNSS、WiFi、音波信号、音波信号、音波信号の測位デバイスの対象範囲である。また、それぞれから受け取る測位結果のロケーションIDはRG371、RW371、RS371、RS372、RS373である。図37に描かれている円は各測位デバイスの対象範囲を、矩形は座標がロケーションIDRG371に変換される領域を模式的に表わしたもの(実際の対象範囲は、種々の環境要因で複雑な形状となり、受け取る側の携帯機器によっても異なり得る)である。PA371〜PA375、PB371〜PB375は説明に使用する測位点(携帯機器が移動した位置)であり、図37においては、PA371からPA372、PA373、PA374、PA375の順に移動する場合とPB371からPB372、PB373、PB374、PB375の順に移動する場合の2つの移動経路について説明する。なお、説明の便宜上、各測位点で、測位点の上部に記載したロケーションIDの測位結果を受け取るものとする。
図38と図39は、本説明で使用する測位デバイス管理マスター175のデータを示す。緯度と経度がロケーションIDの位置を表わし、高さ(測位デバイスの種類もしくは即位結果の優先度)はRG371が1、RW371が2、RS371が3、RS371が4、RS371が5に設定されている。本例は、測位結果が測位履歴メモリに保持されているかどうかに基づいて、受け取った測位結果を処理せず廃棄する、あるいは受け取った測位結果をアプリケーションに通知するため、測位履歴メモリが測位結果を保持できるようにする必要がある。具体的には、RS371とRS372、RS273が同時に測位履歴メモリに保持されるようにするために、各高さに異なる値を割り当てている。本例では、実施例(A)を使用するので、有効時間と有効距離、「取得され得る測位結果ロケーションIDのリスト」の情報は持たない。実施例(A)以外の実施例を使用する場合は、実施例に合わせて必要なデータを追加する必要がある。なお、図40と図41のフローで後述するが、図38のデータは「通知に必要な測位結果のリスト」を、図39のデータは「受け取りに必要な測位結果のリスト」を持つ。
図38のデバイス管理マスターのデータの「通知に必要な測位結果のリスト」は、図40で後述するNOTIFY(r1)関数が参照するリストで、通知時に測位履歴メモリがリストにある全測位結果を保持していなければ、受け取った測位結果をアプリケーションに通知しないようにする目的で使用する。
図39のデバイス管理マスターのデータの「受け取りに必要な測位結果のリスト」は、図41で後述するIS_ACCEPTABLE(r1)関数が参照するリストで、測位結果を受け取った後で、測位履歴メモリがリストにある前側位結果を保持していなければ、受け取った測位結果を処理せずに廃棄するようにする目的で使用する。
図40は、受け取った測位結果を、所定の測位結果が測位履歴メモリに保持されている時に限り通知するようにする、図7の更新例1のステップS730と図8の更新例2のステップS830のNOTIFY(r1)関数のフローの一例を示す。ステップS910では、測位結果r1のロケーションIDの「通知に必要な測位結果のリスト」を、測位デバイス管理マスター175から取得して、変数qに代入する。ステップS920では、測位履歴メモリ165が、リストqの要素の全測位結果を保持しているかどうかを確認する。保持している場合は、アプリケーションに測位結果r1を通知して、処理を終了する。保持していない場合は、測位結果をアプリケーションに通知せずに、処理を終了する。
図41は、受け取った測位結果を、所定の測位結果が測位履歴メモリに保持されている時に限り、処理するようにするための、図5の処理例1と図12の処理例2、図16の処理例3、図20の処理例4のステップS550のIS_ACCEPTABLE(r1)関数のフローの一例を示す。ステップS950では、測位結果r1のロケーションIDの「受け取りに必要な測位結果のリスト」を、測位デバイス管理マスター175から取得して、変数qに代入する。ステップS960では、測位履歴メモリ165が、リストqの要素の測位結果を保持しているかどうかを確認し、その結果を返す。
図37の移動経路PA371〜PA375に基づいて、所定の測位結果が測位履歴メモリに保持されている場合に限り、受け取った測位結果を通知する例について説明する。本例では、実施例(A)について、測位デバイス管理マスターとして図38に示したデータ、及び図40のNOTIFY(r1)関数のフローを使用する。別の実施例を使用する場合は、「通知に必要な測位結果のリスト」に登録するロケーションIDの高さを適切に設定する必要がある。例えば、実施例(B)を使用する場合は、通知対象となる測位結果のロケーションIDの高さよりも大きな高さの測位結果は測位履歴メモリに保持されていないので、「通知に必要な測位結果のリスト」に登録するロケーションIDは、当該ロケーションIDの高さ以下でなければならない。
移動経路PA371〜PA375で、どのように測位結果が通知されるのかを説明する。測位点PA371では測位結果RG371を受け取るが、RG371は測位開始後初めて受け取った測位結果であるので、アプリケーションに通知される。測位点PA372では測位結果RW371を受け取るが、測位履歴メモリはRW371を保持していないので、アプリケーションに通知される。測位点PA372では測位結果RS373を受け取る。RS373は測位履歴メモリに保持されていないが、ロケーションIDRS373の「通知に必要な測位結果のリスト」はRS371であり、RS371が測位履歴メモリに保持されていないので、RS373は通知されない。測位点PA374では測位結果RS371を受け取る。RS371は測位履歴メモリに保持されておらず、ロケーションIDRS371の「通知に必要な測位結果のリスト」はRW371であり、RW371は測位履歴メモリに保持されているので、RS371はアプリケーションに通知される。測位点PA375では測位結果RS372を受け取る。RS372は測位履歴メモリに保持されておらず、ロケーションIDRS372の「通知に必要な測位結果のリスト」はRS371であり、RS371は測位履歴メモリに保持されているので、RS372はアプリケーションに通知される。このように、測位履歴メモリに所定の測位結果が保持されている場合に限り、受け取った測位結果を通知することが可能である。
引き続き、図37の移動経路PB371〜PB375に基づいて、所定の測位結果の全てを測位履歴メモリが保持していない場合は、受け取った測位結果を廃棄する例について説明する。本例では、実施例(A)について、測位デバイス管理マスターとして図39に示したデータ、及び図41のIS_ACCEPTABLE(r1)関数のフローを使用する。ただし、測位デバイス管理マスターの「通知に必要な測位結果のリスト」の要素の高さがロケーションIDの高さ以下であれば、実施例(B)を使ってもよい。
移動経路PB371〜PB375で、どのように測位結果が通知されるのかを説明する。測位点PB371では測位結果RG371を受け取るが、RG371は測位開始後初めて受け取った測位結果であるので、アプリケーションに通知される。測位点PB372では測位結果RW371を受け取るが、測位履歴メモリはRW371を保持していないので、アプリケーションに通知される。測位点PB373では測位結果RS372を受け取る。ロケーションIDRS372の「受け取りに必要な測位結果のリスト」はRS371だが、RS371は測位履歴メモリに保持されていないので、RS372は処理されずに廃棄される。測位点PB374では測位結果RS371を受け取る。ロケーションIDRS371の「受け取りに必要な測位結果のリスト」はRW371であり、RW371は測位履歴メモリに保持されているので破棄されない。また、RS371は測位履歴メモリに保持されていないので、アプリケーションに通知される。測位点PB375では、測位点PB373に続いて、測位結果RS372を受け取る。ロケーションIDRS372の「受け取りに必要な測位結果のリスト」はRS371、このとき測位履歴メモリに保持されているので、廃棄されない。また、RS372は測位履歴メモリに保持されていないので、アプリケーションに通知される。このように、所定の順序で受け取った測位結果のみを通知できるようにすることが可能である。
(その他の構成例)
図42は、本実施形態に係る携帯機器の構成及び該携帯機器が利用可能なサーバの別の例を示す図である。本例は、受け取った測位結果、ならびに携帯機器のセンサーから得られる観測値から導出した速度を、時刻とともにサーバに送信する機能を備える携帯機器、及び携帯機器に対してアプリケーションに通知すべき情報を送信する機能を備えるサーバ装置の構成である。
携帯機器102を構成するソフトウェアは、アプリケーション120と測位ライブラリ112とを備える。アプリケーション120は、測位ライブラリ112から通知される測位結果(例えば、ロケーションID)に基づいて、例えば、サービス提供サーバ200から情報をダウンロードして利用者に通知する機能を持つ。サービスは、サービス提供サーバ200によらずに、アプリケーション120によって提供されても構わない。
測位ライブラリ112は、アプリケーション開始時に、通信部180を介して位置情報管理サーバ400との間にデータ通信経路を確立し、サーバに対して測位の開始を要求する。位置情報管理サーバ400は、開始要求を受け取ると、サーバが備える測位履歴メモリと活動履歴メモリをクリアし、測位デバイス管理マスターと測位結果マスターを測位情報管理サーバ300から取得して、測位結果の通知の要否の判定に必要な前処理を行なう。代替例として、測位デバイス管理マスターと測位結果マスターは、アプリケーションが保持していて、ライブラリ112経由でサーバに送信しても良いし、ライブラリ112自体が予め有していて、サーバに送信しても良い。
通知管理部162は測位部130から測位結果を受け取り、通信部180を介して位置情報提供サーバ400に送信する。位置情報提供サーバは、受け取った測位結果をアプリケーションに通知するかどうかの要否を判定し、必要があれば測位結果を測位ライブラリ112に送信する。通知管理部162は位置情報提供サーバ400から通信部180を介して測位結果を受け取ると、アプリケーション120に通知する。
活動履歴管理部196は、センサー190から携帯機器の移動速度に関する計測値を取得して、移動速度を計測時刻とともに通信部180を介して位置情報提供サーバ400に送信する。なお、実施例(A)、(B)、(E)〜(G)、(K)、(L)の実施形態で、位置情報提供サーバ300が、測位結果の通知の要否判定を行なう場合、活動履歴メモリのデータは参照されないので、この場合は、測位ライブラリ112の構成からセンサー190と活動履歴管理部196を除外しても良い。
以上、本発明の実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。