(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2021069122
(43)【公開日】20210430
(54)【発明の名称】動的に生成された地理データを用いた位置追跡のためのシステムおよび方法
(51)【国際特許分類】
   H04W 64/00 20090101AFI20210402BHJP
   G01S 19/14 20100101ALI20210402BHJP
   H04W 60/04 20090101ALI20210402BHJP
【FI】
   !H04W64/00 150
   !G01S19/14
   !H04W60/04
   !H04W64/00 171
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
【全頁数】30
(21)【出願番号】2020179199
(22)【出願日】20201026
(31)【優先権主張番号】16/663,118
(32)【優先日】20191024
(33)【優先権主張国】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
3.FIREWIRE
4.JAVA
5.JAVASCRIPT
6.WIRELESSHART
(71)【出願人】
【識別番号】516348669
【氏名又は名称】エックスアド インコーポレーテッド
【氏名又は名称原語表記】XAD,INC.
【住所又は居所】アメリカ合衆国 ニューヨーク州 10007 ニューヨーク ワン ワールド トレード センター シックスティース フロア
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100192924
【弁理士】
【氏名又は名称】石井 裕充
(72)【発明者】
【氏名】カーメル ジムローニ
【住所又は居所】アメリカ合衆国 ニューヨーク州 10007 ニューヨーク ワン ワールド トレード センター シックスティース フロア
(72)【発明者】
【氏名】レザ ポール バニカゼミ
【住所又は居所】アメリカ合衆国 ニューヨーク州 10007 ニューヨーク ワン ワールド トレード センター シックスティース フロア
(72)【発明者】
【氏名】ラヴィ シュクラ
【住所又は居所】アメリカ合衆国 ニューヨーク州 10007 ニューヨーク ワン ワールド トレード センター シックスティース フロア
【テーマコード(参考)】
5J062
5K067
【Fターム(参考)】
5J062AA09
5J062BB05
5J062CC07
5K067AA43
5K067EE02
5K067EE10
5K067FF03
5K067HH31
5K067JJ52
(57)【要約】      (修正有)
【課題】モバイル装置位置の効率的追跡を可能にし、電力消費を低減するシステム及び方法を提供する。
【解決手段】環境100において、ソフトウェアアプリケーションを駆動するモバイル装置102ーmは、それが起動されたとき又は所定の移動状態に達したとき、サーバ104へ初期の位置データを提供する。サーバは、初期の位置データに基づいて、モバイル装置の近くのジオフェンスの組と、ジオフェンスの組によって定義された地域を含む領域とを含む地理データを判定し、地理データをモバイル装置に提供する。モバイル装置は、更に、モバイル装置がジオフェンスの組のいずれかの内側にいるときにその位置を収集し、収集した位置をサーバに提供する。モバイル装置は更に、所定の移動状態に達したことに応答して、領域の外側に退出した後のその移動状態を追跡し、新たな領域とジオフェンスの新たな組とを含む更新済み地理データをサーバから取得する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ネットワークに接続されたモバイル装置上で実装される、位置データの収集方法であって、
前記モバイル装置は前記モバイル装置の現在位置を検出するように構成可能な1以上の位置検出機構と、前記1以上の位置検出機構を管理するように構成可能なオペレーティングシステムとを含み、
第1の時刻での前記モバイル装置の第1の位置を示す位置データを、前記ネットワーク内のサーバに提供することと、
前記サーバから第1の地理データを受信することであって、前記第1の地理データは、前記第1の位置に近いジオフェンスの第1の組と、前記第1の位置及びジオフェンスの前記第1の組によって定義された地域を含む第1の領域とを含む、ことと、
前記第1の地理データを前記オペレーティングシステムを用いて登録することと、
前記モバイル装置が、ジオフェンスの前記第1の組のうち任意の特定のジオフェンス内にあることが検出されたことに応答して、前記モバイル装置の位置を示す位置データを収集することと、
収集された位置データを前記サーバに提供することと、
前記モバイル装置が前記第1の領域を退出したことと、前記第1の領域を退出した後に所定の移動状態に達したこととに応答して、前記サーバに、第2の時刻での前記モバイル装置の第2の位置を示す位置データを提供することと、
前記サーバから第2の地理データを受信することであって、前記第2の地理データは、前記第2の位置の近くのジオフェンスの第2の組と、前記第2の位置及びジオフェンスの前記第2の組によって定義された地域を含む、ことと、
前記第2の地理データを前記モバイル装置の前記オペレーティングシステムを用いて登録することであって、前記第2の地理データは、前記オペレーティングシステムにて前記第1の地理データに取って代わる、ことと、
を含む方法。
【請求項2】
請求項1に記載の方法において、
前記方法は、モバイル装置上のアプリケーションプログラムを用いて実装され、
前記アプリケーションプログラムは、前記第1の地理データを前記オペレーティングシステムを用いて登録するよう構成され、前記オペレーティングシステムは、
前記モバイル装置がジオフェンスの前記第1の組のうち特定のジオフェンスに進入したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から位置データを収集することを開始させ、
前記モバイル装置が前記特定のジオフェンスを退出したことに応答して、位置データの収集を停止させ、
前記モバイル装置が前記第1の領域を退出したことが検出されたことに応答して、前記モバイル装置の移動状態を追跡し、
前記モバイル装置が前記第1の領域を退出した後に前記所定の移動状態に達したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から第2の位置を取得させる
ように構成される、方法。
【請求項3】
請求項1又は2に記載の方法において、
前記所定の移動状態は、所定の長さの時間よりも長い間、前記モバイル装置が静止すること、又は、所定の速度上限よりも低い移動速度で移動することを示す、方法。
【請求項4】
請求項3に記載の方法において、
前記所定の速度上限は5マイル/時であり、前記所定の長さの時間は5分である、方法。
【請求項5】
請求項1乃至4のいずれか一項に記載の方法において、
収集された前記位置データは、第1の一連の位置を示す第1の位置データを含み、前記第1の一連の位置は、それぞれ、前記モバイル装置が前記特定のジオフェンスにとどまる間の期間の第1の部分にわたる第1の一連の時間間隔に対応し、
収集された前記位置データは更に、第2の一連の位置を示す第2の位置データを含み、前記第2の一連の位置は、それぞれ、前記期間の前記第1の部分に後続する前記期間の第2の部分にわたる第2の一連の時間間隔に対応し、
前記第2の一連の時間間隔における各時間間隔は、前記第1の一連の時間間隔のいずれよりも、持続時間において大きい、方法。
【請求項6】
請求項1乃至4のいずれか一項に記載の方法において、
収集された前記位置データは、一連の第1の時間窓のそれぞれの間に収集された前記位置データの第1の部分と、前記一連の第1の時間窓に後続する一連の第2の時間窓のそれぞれの間に収集された前記位置データの第2の部分とを含み、前記一連の第2の時間窓の各々は、前記一連の第1の時間窓のいずれよりも長く、
収集された位置データを前記サーバに提供することは、
前記一連の第1の時間窓の各第1の時間窓の終わりに、前記各第1の時間窓において収集された前記位置データの前記第1の部分の少なくともいくつかを前記サーバへ送信することと、
前記一連の第2の時間窓の各第2の時間窓の終わりに、前記各第2の時間窓において収集された前記位置データの前記第2の部分の少なくともいくつかを前記サーバへ送信することと、
を含む、方法。
【請求項7】
請求項5に記載の方法において、
前記一連の第1の時間窓の各々は約1乃至5分であり、前記一連の第2の時間窓の各々は約2乃至10分である、方法。
【請求項8】
請求項1乃至7のいずれか一項に記載の方法において、
前記第1の領域は前記第1の位置に中心があり、所定の半径を、又は、ジオフェンスの前記第1の組のうち前記第1の位置から最も遠いジオフェンスの位置によって決定される半径を有する、方法。
【請求項9】
請求項1乃至8のいずれか一項に記載の方法において、
ジオフェンスの前記第1の組は、それぞれ、複数の別個の対象に関連付けられる、方法。
【請求項10】
請求項1乃至9のいずれか一項に記載の方法において、
前記モバイル装置は、前記第1の領域を退出した後、前記モバイル装置が前記所定の移動状態に達する前に、前記サーバへいずれの位置データも提供しない、方法。
【請求項11】
モバイル装置であって、
1以上のプロセッサと、
前記モバイル装置の現在位置を検出するよう構成可能な1以上の位置検出機構と、
前記1以上の位置検出機構を管理するよう構成可能なオペレーティングシステムと、
前記1以上のプロセッサに接続された記憶部と、を含み、
前記記憶部は前記1以上のプロセッサによって実行されるように構成されたアプリケーションプログラムを格納し、前記アプリケーションプログラムは、
第1の時刻での前記モバイル装置の第1の位置を示す位置データを、ネットワークを介してサーバに提供することと、
前記サーバから第1の地理データを受信することであって、前記第1の地理データは、前記第1の位置に近いジオフェンスの第1の組と、前記第1の位置及びジオフェンスの前記第1の組によって定義された地域を含む第1の領域とを含む、ことと、
前記第1の地理データを、前記オペレーティングシステムを用いて登録することであって、前記オペレーティングシステムは、
前記モバイル装置がジオフェンスの前記第1の組のうち任意の特定のジオフェンス内に進入したことに応答して、前記1以上の位置検出機構から位置データを収集することを前記アプリケーションプログラムに開始させることと、
前記モバイル装置が前記特定のジオフェンスを退出したことに応答して、前記アプリケーションプログラムに、位置データの収集を停止させることと、
前記モバイル装置が前記第1の領域を退出したことに応答して、前記モバイル装置の移動状態を追跡することと、
前記モバイル装置が前記第1の領域を退出した後に所定の移動状態に達したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から第2の位置を取得させることと、
を実行するよう構成される、ことと、
収集された位置データと前記第2の位置とを前記サーバに提供することと、
前記サーバから第2の地理データを受信することであって、前記第2の地理データは、前記第2の位置の近くのジオフェンスの第2の組と、前記第2の位置及びジオフェンスの前記第2の組によって定義された地域を含む第2の領域とを含む、ことと、
前記第2の地理データを前記モバイル装置の前記オペレーティングシステムを用いて登録することであって、前記第2の地理データは、前記オペレーティングシステムにて前記第1の地理データに取って代わる、ことと、
の命令を含む、
モバイル装置。
【請求項12】
請求項12に記載のモバイル装置において、
前記所定の移動状態は、所定の長さの時間よりも長い間、前記モバイル装置が静止すること、又は、所定の速度上限よりも低い移動速度で移動することを示す、モバイル装置。
【請求項13】
コンピュータプログラム命令を格納した非一時的なコンピュータ可読媒体であって、
前記コンピュータプログラム命令は、アプリケーションプログラムに組み入れられるよう構成され、ネットワークに接続されたモバイル装置の1以上のプロセッサによって前記前記アプリケーションプログラムが実行されたときに、位置データの収集方法を前記アプリケーションプログラムに実行させるよう構成され、前記モバイル装置は、前記モバイル装置の現在位置を検出するよう構成可能な1以上の位置検出機構と、前記1以上の位置検出機構を管理するよう構成可能なオペレーティングシステムとを含み、前記方法は、
第1の時刻での前記モバイル装置の第1の位置を示す位置データを前記ネットワーク内のサーバに提供することと、
前記サーバから第1の地理データを受信することであって、前記第1の地理データは、前記第1の位置に近いジオフェンスの第1の組と、前記第1の位置及びジオフェンスの前記第1の組によって定義された地域を含む第1の領域とを含む、ことと、
前記第1の地理データを、前記オペレーティングシステムを用いて登録することであって、前記オペレーティングシステムは、
前記モバイル装置がジオフェンスの前記第1の組のうち任意の特定のジオフェンスに進入したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から位置データを収集することを開始させることと、
前記モバイル装置が前記特定のジオフェンスを退出したことに応答して、前記アプリケーションプログラムに、位置データの収集を停止させることと、
前記モバイル装置が前記第1の領域を退出したことに応答して、前記モバイル装置の移動状態を追跡することと、
前記モバイル装置が前記第1の領域を退出した後に所定の移動状態に達したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から第2の位置を取得させることと、
を実行するよう構成される、ことと、
収集された位置データと前記第2の位置とを前記サーバに提供することと、
前記サーバから第2の地理データを受信することであって、前記第2の地理データは、前記第2の位置の近くのジオフェンスの第2の組と、前記第2の位置及びジオフェンスの前記第2の組によって定義された地域を含む第2の領域とを含む、ことと、
前記第2の地理データを前記モバイル装置の前記オペレーティングシステムを用いて登録することであって、前記第2の地理データは、前記オペレーティングシステムにて前記第1の地理データに取って代わる、ことと、
を含む、非一時的なコンピュータ可読媒体。
【請求項14】
請求項16に記載の非一時的なコンピュータ可読媒体において、
前記所定の移動状態は、所定の長さの時間よりも長い間、前記モバイル装置が静止すること、又は、所定の速度上限よりも低い移動速度で移動することを示す、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は位置ベースの情報サービスに関連し、より詳細には、動的に生成された地理データに関連するモバイル装置位置を追跡するためのシステムおよび方法に関する。
【背景技術】
【0002】
モバイル装置(スマートフォンなど)には、組み込みのハードウェア又はソフトウェアが含まれていることがよくある。これらはモバイル装置上の他のソフトウェアアプリケーション(アプリ)に有用な情報を生成する。例えば、モバイル装置のオペレーティングシステム(OS)は例えば、全地球測位システム(GPS)、WifiおよびBTネットワーク、セルラ塔三角測量などを使用して、モバイル装置の位置に関する情報を生成する位置サービスを提供することが多い。モバイル装置上のアプリは指定された精度レベルに基づいて、どのサービスを使用するかを選択することができる。GPSは最も正確であり、最も多くの資源(リソース)を消費する。その後、OSはモバイル装置の位置又は移動状態に関する情報を生成できる。これは、モバイル装置上の各種アプリが特定の機能を実行するために使用される。しかし、生成された情報に頻繁にアクセスする要求はとりわけ、アプリケーションがモバイルユーザによって使用されていないときに、過剰な電力消費および望ましくないバックグラウンド活動をもたらす可能性がある。
【発明の概要】
【0003】
いくつかの実施形態では、ソフトウェアアプリケーションを駆動するモバイル装置は、モバイル装置が起動されたとき、待機モードからオフされたとき、又は、所定の領域から退出した後に所定の移動状態に達したときに、その位置を、コンピュータシステム又はサーバへ提供するよう構成される。モバイル装置は、モバイル装置の現在位置を検出するよう構成可能な1以上の位置検出機構と、1以上の位置検出機構を管理するよう構成可能なオペレーティングシステムとを含む。コンピュータシステム又はサーバは、受信された位置に基づいて地理データを判定し、地理データをモバイル装置に提供する。地理データは、前記位置に近いジオフェンスの組と、前記位置及びジオフェンスの前記組によって定義された地域を含む領域とを含む。ソフトウェアアプリケーションは、地理データをモバイル装置のオペレーティングシステムを用いて登録するよう構成される。オペレーティングシステムは、前記モバイル装置が、ジオフェンスの前記第1の組のうち任意の特定のジオフェンス内に進入したことに応答して、前記1以上の位置検出機構から位置データを収集することを前記アプリケーションプログラムに開始させることと、前記モバイル装置が前記特定のジオフェンスを退出したことに応答して、前記アプリケーションプログラムに、位置データの収集を停止させることと、前記モバイル装置が前記第1の領域を退出したことに応答して、前記モバイル装置の移動状態を追跡することと、前記モバイル装置が前記第1の領域を退出した後に所定の移動状態に達したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から新たな位置を取得させることと、を実行するよう構成される。所定の移動状態は、前記モバイル装置が静止し、又は、所定の速度上限よりも低い移動速度で移動することを示す。ソフトウェアアプリケーションを駆動するモバイル装置は更に、収集された位置データと新たな位置とをサーバに提供するよう構成され、コンピュータ及び/又はサーバから、ジオフェンスの新たな組と、新たな位置及びジオフェンスの新たな組によって定義された地域を含む新たな領域とを含む更新された地理データを受信するよう構成され、新たな地理データをモバイル装置のオペレーティングシステムを用いて登録するよう構成される。新たな地理データは、オペレーティングシステムにて以前の地理データに取って代わる。したがってモバイル装置が領域内にあるときに位置データを収集することによって、また、モバイル装置が新たな位置に移動したときに関心地域の組と領域とを動的に調整することによって、ソフトウェアアプリケーションは、モバイル装置位置データの効率的な収集を可能にし、モバイル装置が任意の関心地域内にないときに、電力消費と好ましくないバックグラウンド活動とを低減することができる。
【0004】
いくつかの実施形態では、位置データの収集方法は、ネットワークに接続されたモバイル装置上でアプリケーションプロセッサを用いて実装される。前記モバイル装置は前記モバイル装置の現在位置を検出するように構成可能な1以上の位置検出機構と、前記1以上の位置検出機構を管理するように構成可能なオペレーティングシステムとを含む。方法は、第1の時刻での前記モバイル装置の第1の位置を示す位置データを、前記ネットワーク内のサーバに提供することと、前記サーバから第1の地理データを受信することであって、前記第1の地理データは、前記第1の位置に近いジオフェンスの第1の組と、前記第1の位置及びジオフェンスの前記第1の組によって定義された地域を含む第1の領域とを含む、こととを含む。方法は更に、前記第1の地理データを前記オペレーティングシステムを用いて登録することを含む。オペレーティングシステムは、前記モバイル装置が、ジオフェンスの前記第1の組のうち任意の特定のジオフェンス内に進入したことに応答して、前記1以上の位置検出機構から位置データを収集することを前記アプリケーションプログラムに開始させることと、前記モバイル装置が前記特定のジオフェンスを退出したことに応答して、前記アプリケーションプログラムに、位置データの収集を停止させることと、前記モバイル装置が前記第1の領域を退出したことに応答して、前記モバイル装置の移動状態を追跡することと、前記モバイル装置が前記第1の領域を退出した後に所定の移動状態に達したことに応答して、前記アプリケーションプログラムに、前記1以上の位置検出機構から第2の位置を取得させることと、を実行するよう構成される。前記所定の移動状態は、前記モバイル装置が静止すること、又は、所定の速度上限よりも低い移動速度で移動することを示す。方法は更に、収集された位置データと第2の位置とを前記サーバに提供することと、前記サーバから第2の地理データを受信することであって、前記第2の地理データは、前記第2の位置の近くのジオフェンスの第2の組と、前記第2の位置及びジオフェンスの前記第2の組によって定義された地域を含む、ことと、前記第2の地理データを前記モバイル装置の前記オペレーティングシステムを用いて登録することであって、前記第2の地理データは、前記オペレーティングシステムにて前記第1の地理データに取って代わる、ことと、を含む。
【0005】
いくつかの実施形態では、非一時的なコンピュータ可読媒体は、コンピュータプログラム命令を格納する。前記コンピュータプログラム命令は、アプリケーションプログラムに組み入れられるよう構成され、前記アプリケーションプログラムに、ネットワークに接続されたモバイル装置の1以上のプロセッサによって実行されたときに位置データの収集方法を実行させるよう構成される。
【0006】
いくつかの実施形態では、方法は、1以上のプロセッサと、1以上のプロセッサによる実行のための命令を格納した記憶部とを含むサーバにて実行される。方法は、モバイル装置から、第1の時刻でのモバイル装置の第1の位置を示す位置データを受信する。方法は更に、前記第1の位置に基づいて第1の地理データを判定することを含む。第1の地理データは第1の位置の近くのジオフェンスの第1の組と、第1の位置及びジオフェンスの第1の組によって定義された地域を含む第1の領域とを含む。方法は更に、第1の地理データをモバイル装置に提供することと、モバイル装置から、モバイル装置がジオフェンスの第1の組のうち任意の特定のジオフェンス内にとどまる間のモバイル装置の位置を示す収集された位置データを受信することを含む。方法は更に、モバイル装置から、第2の時刻でのモバイル装置の第2の位置を示す位置データを受信することと、第2の位置からジオフェンスの第1の組の各々の外側にあるか否かを判定することと、第2の位置がジオフェンスの第1の組の各々の外側にあることに応答して、第2の時刻でのモバイル装置の第2の位置に基づいて地理データを判定することを含む。第2の地理データは、第2の位置の近くのジオフェンスの第2の組と、第2の位置及びジオフェンスの第2の組によって定義された地域を含む第2の領域を含む。方法は更に、モバイル装置に第2の地理データを提供することを含む。
【図面の簡単な説明】
【0007】
【図1】図1は、特定の実施形態による、モバイル装置位置の動的位置収集のための環境の概略図である。
【図2】図2は、実施形態によるモバイル装置の概略図である。
【図3】図3は実施形態による動的位置収集のために、1つ以上の方法論を実行する、および/またはシステムの一部または全部を提供する、コンピュータ/サーバの図的表現である。
【図4】図4A〜4Dは、特定の実施形態による、第1の地理データによって定義される境界に対するモバイル装置の位置および移動を示す例示的な地図である。
【図5】図5A〜5Dは、特定の実施形態による、第1の地理データによって定義された境界に対する、および後に第2の地理データによって定義された境界に対する、モバイル装置の位置および移動を示す例示的な地図である。
【図6】図6A〜図6Dは、特定の実施形態による位置データの収集および透過を図示する、図4A〜図5Dに対応するタイミング図である。
【図7A】図7A〜7Cは、特定の実施形態による動的位置収集のためにモバイル装置によって実行される方法を示すフローチャートである。
【図7B】図7A〜7Cは、特定の実施形態による動的位置収集のためにモバイル装置によって実行される方法を示すフローチャートである。
【図7C】図7A〜7Cは、特定の実施形態による動的位置収集のためにモバイル装置によって実行される方法を示すフローチャートである。
【図8】図8は、特定の実施形態による動的位置収集のためにモバイル装置によって実行される方法を示す図である。
【図9A】図9A〜図9Cは、特定の実施形態による動的位置収集のためにサーバによって実行される方法を示すフローチャートである。
【図9B】図9A〜図9Cは、特定の実施形態による動的位置収集のためにサーバによって実行される方法を示すフローチャートである。
【図9C】図9A〜図9Cは、特定の実施形態による動的位置収集のためにサーバによって実行される方法を示すフローチャートである。
【図10】図10は、ある実施形態による動的位置収集のためにサーバによって実行される方法を示す図である。
【発明を実施するための形態】
【0008】
ここで、実施形態を参照し、その例を添付の図面に示す。以下の説明において、各種記載された実施形態の理解を提供するために、多数の特定の詳細が記載される。しかしながら、各種記載された実施形態がこれらの特定の詳細なしに実施され得ることは、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、回路、およびネットワークは、実施形態の態様を不必要に曖昧にしないように、詳細には説明されていない。
【0009】
また、第1、第2などの用語は場合によっては様々な要素を説明するために本明細書で使用される。しかしこれらの要素はこれらの用語によって限定されるべきではないことも理解されよう。これらの用語は、1つの要素を別の要素から区別するためにのみ使用される。例えば、第1の位置は第2の位置と呼ぶことができる。同様に、第2の位置は、各種説明された実施形態の範囲から逸脱することなく、第1の位置と呼ぶことができる。第1の位置および第2の位置は両方とも位置である。それらは同じ位置であってもなくてもよい。
【0010】
本明細書で説明される様々な実施形態の説明で使用される用語は特定の実施形態を説明するためだけのものであり、限定することを意図するものではない。様々な記載された実施形態および添付された特許請求の範囲の記載において使用されるように、単数形は文脈が明確に示さない限り、複数形も含むことが意図される。本明細書において使用される用語「および/または」は関連する列挙された項目のうちの1つまたは複数の任意のおよびすべての考えられる組合せを指し、包含することも理解される。用語「含む」および/または「備える」は本明細書において使用される場合、記載された特徴、客体(integer)、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、客体、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことがさらに理解されるであろう。
【0011】
本文中で用いられる「もし」、「仮に」、「場合」(if)との用語は任意に、文脈に応じて、「とき」、「すると」、「判定したことに応答して」、「検出したことに応答して」、「判定に応じて」という表現を意味すると解釈される。類似的に、「判定された場合」又は「条件又はイベントが検出された場合」という表現は、任意に、文脈に応じて、「判定すると」、「判定することに応答して」、「条件又はイベントを検出したことに応答して」、「条件又はイベントが検出されたとの判定に応じて」という表現を意味するものと解釈される。
【0012】
図1は、開示された技術のいくつかの実施形態が動作することができる環境100の概要を示す模式図である。環境100は、パケットを基礎としたネットワーク110に接続された1つ以上のコンピュータシステム104を含むことができる。特定の実施形態におけるパケットを基礎としたネットワーク110は、インターネット120と、インターネットゲートウェイを介してインターネット120に接続されたセルラネットワーク122の一部または全部とを含む。コンピュータ/サーバ104は、複数のセルラ局122aを含むセルラネットワーク122を介して、有線イーサネット(登録商標)、および任意選択でパワーオーバイーサネット(PoE)、WiFi、および/またはセルラ接続構造を使用して、インターネット120に接続することができる。ネットワークはまた、1つ以上のNAS(network attached storage)システム106を含むことができ、これは、異種のクライアント群へのデータ接続を提供するために、コンピュータネットワークに接続されたコンピュータデータ記憶サーバである。図1に示すように、1つまたは複数のモバイル装置102(例えば、モバイル装置102-1〜102-m(mは1以上の整数))も、セルラネットワーク122へのセルラ接続を介してパケットベースのネットワークに接続される。WiFiホットスポット(ホットスポット135など)が利用可能である場合、モバイル装置102は、その内蔵WiFi接続構造を使用してWiFiホットスポット135を介してインターネット120に接続することができる。したがって、モバイル装置102は、インターネット120に接続されたコンピュータ/サーバ104と対話することができる。モバイル装置102の例示は、スマートフォン及びタブレットコンピュータを含む。
【0013】
図2はいくつかの実施形態によるモバイル装置102(例えば、モバイル装置102-1からモバイル装置102-mのいずれか)を示すブロック図である。モバイル装置102は、1つ以上の中央処理装置202、1つ以上のネットワーク(または他の通信)インタフェース210、記憶部(メモリ)212、およびこれらの構成要素を相互接続する1つ以上の通信バス214を含む。通信バス214は任意選択で、システムコンポーネント間の通信を相互接続し、制御する回路(チップセットと呼ばれることもある)を含む。
【0014】
モバイル装置102は、出力装置206および入力装置208を含むユーザインタフェース204をさらに含む。いくつかの実施形態では、入力装置208がキーボード、マウス、および/またはトラックパッドを含む。あるいはまたはさらに、いくつかの実施形態ではユーザインタフェース204がタッチセンシティブ(接触感知)表面を含む表示装置を含む。その場合、表示装置がタッチセンシティブディスプレイである。本明細書で説明する「ユーザ入力」は、タッチセンシティブディスプレイで検出された接触、および/または入力装置208による入力を指すことができる。いくつかの実施形態では出力装置(例えば、出力装置206)はスクリーンディスプレイおよび/またはスピーカを含む。さらに、一部のモバイル装置102は、マイクおよび音声認識装置を使用して、キーボードを補足または置換する。任意選択で、モバイル装置102は音声(例えば、ユーザからの音声)を捕捉するための音声入力装置(例えば、マイク)を含む。
【0015】
いくつかの実施形態では、モバイル装置102は1つまたは複数の位置検出機構215を含む。これは、モバイル装置102の位置を決定するよう構成され、及び、要求時にモバイル装置102のオペレーティングシステムにおよび/またはモバイル装置102上のソフトウェアアプリケーションに、位置更新を提供するように構成されたハードウェアおよび/またはソフトウェアを含む。いくつかの実施形態では、位置検出機構215が全地球航法衛星システム(GNSS)(例えば、全地球測位システム、GLONASS、Galileo、BeiDouまたは他の地理位置信号受信機)に基づく機構を含んでもよい。位置検出機構215はネットワークベースの位置検出機構(たとえば、周囲のセルタワーおよびWiFiアクセスポイントから収集されたデータを使用してモバイル装置102の位置を決定するための位置検出ソフトウェア)をさらに含むことができる。
【0016】
いくつかの実施形態において、1つ以上のネットワークインタフェース210は、他のモバイル装置102、コンピュータシステム104、及び/又は他の装置又はシステムからデータを受信し及び/又は送信するための無線及び/又は有線インタフェースを含む。いくつかの実施形態ではデータ通信が様々なカスタムまたは標準無線プロトコル(例えば、NFC、RFID、IEEE 802.15.4、Wi-Fi、ZigBee、6LoWPAN、Thread、Z-Wave、Bluetooth、ISA100.11a、WirelessHART、MiWiなど)のいずれかを使用して実行される。さらに、いくつかの実施形態ではデータ通信が様々なカスタムまたは標準の有線プロトコル(例えば、USB、Firewire、イーサネットなど)のいずれかを使用して実行される。例えば、1つ以上のネットワークインタフェース210は他のモバイル装置102、コンピュータシステム104、及び/又は他の無線(例えば、自動車、テレビ、ポータブルスピーカー等に音声データをストリーミングするためのBluetooth互換)装置との無線データ通信を可能にするための無線インタフェース260を含む。さらに、ある実施形態では無線インタフェース260(または1つ以上のネットワークインタフェース210の異なる通信インタフェース)が(1つ以上のパケットベースのネットワーク110を介して)他のWLAN互換装置(例えば、携帯型スピーカ、テレビなど)および/またはコンピュータシステム104とのデータ通信を可能にする。
【0017】
いくつかの実施形態ではモバイル装置102が加速度計、ジャイロスコープ、コンパス、磁力計、光センサ、近距離通信トランシーバ、気圧計、湿度センサ、気温センサ、近接センサ、距離測定器、および/または種々の条件を感知および測定するための他のセンサ/装置を含むが、これらに限定されない、1つまたは複数のセンサ部を含む。
【0018】
記憶部212はDRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリのような高速ランダムアクセスメモリを含み、1つ以上の磁気ディスクメモリ、光ディスクメモリ、フラッシュ または他の不揮発性ソリッドステートメモリのような不揮発性メモリを含み得る。記憶部212は、任意選択で1つまたは複数のメモリを含むことができる。記憶部212、または代替的に、記憶部212内の不揮発性記憶部のソリッドステートメモリは、コンピュータ可読の非一時的な媒体を含む。いくつかの実施形態では記憶部212および/または記憶部212の非一時的なコンピュータ可読の記憶媒体が以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを格納する。これらはCPU202によって実行されると、CPU202に、以下を含む各種機能または手順を実行させるか、または実行させる:
・オペレーティングシステム216は、モバイル装置がアプリを駆動することを可能にするモバイル装置ハードウェア, 記憶部及びソフトウェアリソースを管理する手順を含み、ハードウェア依存のタスクを実行することを可能にする。それは例えば、ハードウェア(例えば、GPS)またはソフトウェアから位置データを取得すること、モバイル装置の位置および動きの状態を追跡すること、モバイル装置がジオフェンスの内側にあるか外側にあるかを検出すること、および、例えば、アプリケーションプログラムハードウェア(API)(又は、いくつかの下記の実施形態等の1つまたは複数のモジュール(またはAPI)を含むオペレーティングシステム216)を介して情報を要求するモバイル装置上のアプリケーションに位置データを提供すること、である。
oモバイル装置102のハードウェア(例えば、GPS)またはソフトウェアによって生成された位置データを取得し、処理し、監視し、提供するための位置サービスモジュール218
oアプリケーションから受信した地理的位置情報(例えば、関心のある領域および地域などのジオフェンス)を記憶し、処理する(例えば、登録する)ための測位マッピングモジュール220
oモバイル装置102の移動状態を追跡および/または提供する状態追跡モジュール222
oモバイル装置102がオペレーティングシステムに登録されたジオフェンス(例えば、関心地域および/または地域)に進入するおよび/または退出すること、および所定の期間の間、所定の移動状態であることなど、特定の位置または移動状態にあることが検出されたときに、特定の動作を誘起(トリガ)する(例えば、アプリケーションプログラムに位置データを提供することを開始または停止する、あるいは位置データの収集を開始または停止するようにアプリケーションプログラムに促す)ための誘起モジュール224
・例えば標的サービスまたは機能を提供するアプリケーションプログラム(またはアプリケーション、またはアプリ)230
o例えば以下を含むソフトウェア開発キット(SDK)を有するアプリケーションプログラム232
・測位情報(例えば、関心地域、近傍領域、および領域など)を要求し、オペレーティングシステム216において地理データを登録または更新するように構成された地理データモジュール234
・以下でさらに詳細に説明するように、ある所定の条件下でモバイル装置位置データを取得、収集、および/または通信するように構成された位置モジュール236
oウェブサイトにアクセスし、ウェブサイトを閲覧し、及びウェブサイトと相互作用するためのウェブブラウザアプリケーション(例えば、マイクロソフトによるInternet ExplorerまたはEdge、アップルによるSafari、またはGoogleによるChrome)等の他のアプリケーションプログラム238、及び、単語処理、カレンダー、地図、天気、株価、時計、仮想デジタルアシスタント、プレゼンテーション、数字処理(スプレッドシート)、描画、インスタントメッセージング、電子メール、電話会議、動画管理、デジタル音楽プレイヤー、デジタル動画プレイヤー、2Dゲーム、3Dゲーム(例えば仮想現実)、電子書籍リーダ、および/またはワークアウト・サポートなどについてのアプリケーション
・オペレーティングシステム216の一部であり得るアプリケーションプログラムインターフェース(API)240であって、モバイル装置104上の異なるアプリケーションプログラム間および/またはアプリケーションプログラム(例えばアプリケーションプログラム232)とハードウェア(例えば位置検出215)との間の相互作用を支援し、アプリケーションプログラム(例えばアプリケーションプログラム232)とオペレーティングシステム216との間の相互作用を支援するアプリケーションプログラムインターフェース(API)240
・1つまたは複数のパケットベースネットワーク110に接続された1つまたは複数のネットワークインタフェース210(有線又は無線)を介した、モバイル装置102と他のコンピューティング装置(例えば、コンピュータシステム104、および/または他のモバイル装置)との間の通信を管理するためのネットワーク通信モジュール245
・ユーザインタフェース204を介して(例えば、入力装置208から)ユーザからコマンドおよび/または入力を受信し、ユーザインタフェース204(例えば、出力装置206)上での表示のための出力を提供するユーザインタフェースモジュール250
【0019】
いくつかの実施形態では、SDK 233がモバイル装置102上に独立してプログラムされたスタンドアロンプログラムであってもよく、他のアプリケーションプログラム230のいずれからも独立して動作してもよい。いくつかの実施形態では、SDK233が、他の機能も果たすアプリケーションプログラム232の一部である。
【0020】
いくつかの実施形態において、記憶部212はさらに、上記のプログラムおよびモジュールによって生成または使用されたデータまたはデータ構造270を記憶するための記憶部空間を含む。これは例えば、位置検出機構215又はオペレーティングシステム216からアプリケーションプログラム232によって受信及び/又は収集された位置データ272と、コンピュータ/サーバ104から受信された地理データ274(例えばPOIと地理的領域との境界)とを含む。
【0021】
図3は、いくつかの実施形態による、コンピュータ/サーバシステム(ここでは「コンピュータ」または「サーバ」と呼ぶことがある)104を示すブロック図である。コンピュータシステム104は、通常、1つまたは複数の中央演算処理装置/コア(CPU)302、1つまたは複数のネットワークインタフェース304、記憶部306、およびこれらの構成要素を相互接続するための1つまたは複数の通信バス308を含む。
【0022】
記憶部306はDRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリなどの高速ランダムアクセス記憶部を含み、1つまたは複数の磁気ディスクメモリ、光ディスクメモリ、フラッシュメモリ、または他の不揮発性ソリッドステートメモリなどの不揮発性記憶部を含むことができる。記憶部306は、オプションとして、1つ以上のCPU302から遠隔に配置された1つ以上のメモリを含む。記憶部306、または代替的には、記憶部306内の不揮発性ソリッドステートメモリがコンピュータ可読の非一時的な媒体を含む。いくつかの実施形態では記憶部306、または記憶部306の非一時的なコンピュータ可読記憶媒体は以下のプログラム、モジュールおよびデータ構造またはそのサブセットまたはスーパーセットを記憶する。
・様々な基本的なシステムサービスを取り扱うための手順、およびハードウェア依存タスクを実行するための手順を含むオペレーティングシステム310
・一つ以上のパケットベースのネットワーク110に接続された一つ以上のネットワークインタフェース304(有線または無線)を介して他のコンピューティング装置(例えばモバイル装置102)との通信を管理するために使用されるネットワーク通信モジュール312;
・1つ以上の機能を含むが、これらに限定されない各種機能を実行するための1つ以上のサーバアプリケーションモジュール314
oモバイル装置102から受信された位置データに基づいて測位情報(例えば、関心地域およびそれぞれの領域などのジオフェンス)を決定するように構成された位置分析モジュール316はであって、さらに、1つまたは複数のパケットベースのネットワーク110を介してモバイル装置102によって受信された位置データに基づいてモバイル装置102の位置を検証するように構成された、位置分析モジュール316
oモバイル装置102によって受信され、および/または位置分析モジュール316によって解析された位置データに基づいて、測位情報または地理データ(例えば、領域内の関心地域とその領域との組)を生成するように構成されたジオフェンス生成モジュール318であって、さらに、1つまたは複数のパケットベースのネットワーク110を介して、関心地域と領域との組をモバイル装置102に提供するように構成されるもの
・関心地域および/または1つまたは複数のエンティティ(対象)に対応する様々な情報を記憶し、アクセスするための1以上のサーバデータモジュール320であって、サーバデータモジュール320は次の1以上を含むがこれらに限定されない
oそれぞれの関心地域および/または近傍領域に対応する地理的位置情報を格納および/またはアクセスするように構成された地理データデータベース322:
・エンティティ情報(例えば、事業、店舗、レストラン、サービスなどのエンティティタイプ、エンティティの地理的規模、エンティティの位置、エンティティ合計数など)とエンティティに関連付けられた1以上の関心地域とを記憶および/またはアクセスするためのエンティティデータベース324
oユーザ特定情報を追跡および/または収集するためのユーザデータベース326であって、次の1以上を含むが、これらに限定されない
・モバイル装置102から受信した位置データを記憶およびアクセスするためのユーザ位置データ328
・特定のアプリケーションデータを記憶及び/又はアクセスするためのユーザアプリケーションデータ330であって、ユーザアプリケーションデータ330は、サーバ104がモバイル装置102に(例えばエンティティ情報に関連付けられた)アプリケーションについての関連情報を提供するために使用される(例えば指示、広告、販売促進等)。
【0023】
いくつかの実施形態において、コンピュータシステム/サーバ104は、ウェブまたはハイパーテキスト転送プロトコルサーバ、ファイル転送プロトコルサーバ、ならびにウェブページおよび共通ゲートウェイインタフェーススクリプト、PHPハイパーテキストプリプロセッサ、アクティブサーバページ、ハイパーテキストマークアップ言語、拡張マークアップ言語、Java、JavaScript、非同期JavaScriptおよびXML(AJAX)、XHP、Javelin、無線ユニバーサルリソースファイル(WURFL)などを用いて実装されたアプリケーションを含む。
【0024】
記憶部212および306に格納された上記で識別されたモジュールのそれぞれは、本明細書で説明される機能を実行するための命令セットに対応する。上記で識別されたモジュールまたはプログラム(すなわち、命令のセット)は別個のソフトウェアプログラム、手順(プロシージャ)、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは様々な実施形態において結合されるか、またはそうでなければ再配置され得る。いくつかの実施形態では、記憶部212および306が任意選択で、上記で識別されたそれぞれのモジュールおよびデータ構造のサブセットまたは上位セットを記憶する。さらに、記憶部212および306は、任意選択で、上述されていない追加のモジュールおよびデータ構造を格納する。いくつかの実施形態では、記憶部212に格納されたモジュールが記憶部306に格納されてもよい(逆もまた同様)。例えば、位置分析モジュール316は、コンピュータシステム/サーバ104において記憶部306に記憶され、および/またはモバイル装置102にて記憶部212に記憶されてもよい。
【0025】
図3はいくつかの実施形態によるコンピュータシステム/サーバ104を示す。しかし図3は本明細書で説明される実施形態の構造概略図よりも、1つまたは複数のメディアコンテンツサーバに存在し得る様々な特徴の機能的記述として一層意図される。実際には当業者によって認識されるように、別々に示される項目が組み合わされてもよく、いくつかの項目は分離されてもよい。例えば、図3に別々に示されるいくつかの項目は単一のサーバ上に実装されてよい。単一の項目は1つ以上のサーバによって実装されてよい。コンピュータシステム/サーバ104を実現するために使用されるサーバの実際の数、およびそれらの間で特徴がどのように割り当てられるかは、一実施形態ごとに異なる。また、任意選択で、平均使用期間だけでなく、ピーク使用期間中にサーバシステムが処理するデータトラヒックの量に部分的に依存する。
【0026】
図4A〜4Dは、いくつかの実施形態による、動的ジオフェンスベースの位置データ収集を例示する。いくつかの実施形態では、モバイル装置102の位置検出機構215が所定の頻度でモバイル装置102の位置を決定するように構成可能である。いくつかの実施形態では、モバイル装置102の位置検出機構215またはオペレーティングシステム216が、特定の規定された条件が満たされたときに、モバイル装置102の位置の更新(位置更新)を位置モジュール236に提供するように構成可能である。位置更新は、指定された頻度で、または少なくとも予め設定された最短距離だけの位置の変化に応答して、あるいは、位置モジュール236からの要求に応答して提供されることができる。いくつかの実施形態では、位置モジュール236が位置検出機構215またはオペレーティングシステム216によって提供される位置更新(位置データ)のうちの少なくともいくつかを収集するように構成される。いくつかの実施形態では、図4Aに示されるように、オペレーティングシステム216はモバイル装置102が起動されるか、または待機モードから外されるか、または平均歩行速度よりも速い速度で動き回った後、所定の時間、平均歩行速度(例えば、5マイル/時未満)まで停止または減速されたことに応答して、第1の時刻t0での位置401をアプリケーションプログラム232に提供して、または、その位置を取得するようにアプリケーションプログラム232に促す。それに応答して、アプリケーションプログラム232内の位置モジュール236はサーバ104に対して、位置データを、例えば、API240およびネットワークインタフェース210を介して、第1の時刻でのモバイル装置の位置401を示す(例えば、t = t0)。
【0027】
図4Bに示すように、時刻t0の直後の時刻t1において、モバイル装置102は、サーバ104からの境界の集合を定義する第1の地理データを受信する。第1の地理データは位置401の周りの第1の領域400と、第1の領域400内の第1の組の地域または関心地域(AOI)410(例えば、AOI410-1〜410-n、ここで、nは1以上の整数)とを定義するデータを含む。いくつかの実施形態では、AOI410のそれぞれはそれぞれのPOIまたはそれぞれのエンティティに関連付けられた地理的境界411または417の内側の地理的領域410である。地理的境界411は例えば、それぞれのエンティティの物理的構造(例えば、建物または構内)の周囲(例えば、AOI 410-2の場合は周囲411-2、AOI 410-nの場合は周囲411-n)、またはそれぞれのエンティティの物理的構造を囲むジオフェンス(例えば、AOI 410-1に関連するエンティティの場合はジオフェンス411-1、AOI 410-3の場合はジオフェンス411-3または417-3)とすることができる。第1の組のAOI410および第1の領域400に加えて、第1の地理データは、AOI410のいくつかまたはすべての近傍416の定義をさらに含むことができる。それぞれの近傍416は、関連するエンティティを取り囲むそれぞれの地理的境界417と、関連するエンティティの地理的境界411との間の地域に対応する(例えば、近傍416-2は、地理的境界417-2と地理的境界411-2との間にあるAOI 410-2に関連するエンティティの周りの地域に対応する)。
【0028】
いくつかの実施形態では、AOI組410が位置401に最も近い所定数(例えば、50)のAOIを含む。第1の領域400はAOIの組および第1の位置401を含む領域(例えば、最小領域)であり得る。例えば、図4Bに示されるように、第1の領域400は位置401に中心があり、第1の位置401と、位置401からのAOI 410の第1の組(例えば、AOI 410-3の点418)の最も遠い点との間の距離に等しいか、またはそれよりも大きい半径r1を有する。いくつかの実施形態では、半径r1が近傍416の最も遠い点に基づく。いくつかの実施形態では、半径r1が第1の位置401の近傍にあるもの(例えば、第1の位置401が商業地区または商業中心の近くにあるか、郊外にあるか等)に基づいてサーバ104によって定義される。第1の組のAOIは第1の領域400内で第1の位置401に最も近いAOIであり、所定の最大数(例えば、50)のAOIまでである。
【0029】
いくつかの実施形態では、実際の物理的な建造物の周囲の代わりにジオフェンスを使用してAOIを定義する場合、ジオフェンスはそれぞれのエンティティの位置および地理的な大きさに基づいて設定することができる。例えば、AOI410-1はAOIのそれぞれの位置(例えば、412)を中心とし、それぞれの中心位置(例えば、位置412)からのそれぞれの半径(例えば、半径414)によって規定される。それぞれの半径414は少なくとも部分的に、エンティティのそれぞれの大きさによって決定される。例えば、より大きな物理的フットプリントを有するエンティティ(例えば、ショッピングモール、小売店、食料雑貨店、レストラン、スタジアム等)はより小さな物理的フットプリントを有するエンティティ(例えば、理容店、ネイルサロン、キッチンカー等)よりも大きなそれぞれの半径を含む。
【0030】
第1の領域400および第1のAOIの組を受信すると、アプリケーションプログラム232内の地理データモジュール234は、第1の地理データを、領域400および第1のAOIの組410をオペレーティングシステム216に提供することによって、モバイル装置のオペレーティングシステム216に登録する。AOI410の代わりに、またはそれに加えて、いずれかの近傍416が提供される場合、地理データモジュール234は、オペレーティングシステム216へ近傍416の外側境界417を提供する。図4Cは時刻t1における位置401から時刻t2における別の位置402に移動するモバイル装置102を示す。位置402はAOI 410-2の近傍416?2内にある。いくつかの実施形態ではアプリケーションプログラム232が近傍416-2をオペレーティングシステム216に登録しているので、モバイル装置102が近傍定義416-2の内側にあることを検出することに応答して、オペレーティングシステム216は位置402をアプリケーションプログラム232に提供するか、または位置検出機構215から位置402を取得するようにアプリケーションプログラム232に促す。それに応答して、位置モジュール236は位置402を収集し、アプリケーションプログラム232および/またはサーバ104に位置402を提供することができる。アプリケーションプログラム232はモバイル装置102が近傍416-2の内側にある間に、他の動作をとることができる。
【0031】
いくつかの実施形態では、オペレーティングシステム216は、地理データに関するある所定の条件が満たされたときに、アプリケーションプログラム232に位置更新を提供するように構成される。いくつかの実施形態では、位置モジュール236が、オペレーティングシステムがアプリケーションプログラム232にそうするように指示するまで、位置検出機構215又はオペレーティングシステム216から位置データを収集せず、オペレーティングシステム216がアプリケーションプログラム232を停止させるときに位置データの収集を停止する。図4Dは、いくつかの実施形態による、AOI 410-2内を移動したときのモバイル装置102を示す。モバイル装置102は時刻t2における近傍416-2の位置402から、時刻t2aにおけるAOI 410-2の位置403、時刻t2bにおけるAOI 410-2の位置404、時刻t2cにおけるAOI 410-2の位置405、および時刻t3におけるAOI 410-2の外の位置406に移動するように示されている。いくつかの実施形態では地理データモジュール234が時刻t2aにおいてAOI 410-2内にあるモバイル装置102を検出することに応答して、第1の領域400および第1の組のAOI 410をオペレーティングシステム216に登録している。このためオペレーティングシステム216は位置更新を提供し始めるか、または位置検出機構215またはオペレーティングシステム216から位置更新を収集し始めるようにアプリケーションプログラム232に促す。したがって、位置モジュール236はモバイル装置102がAOI(たとえば、AOI 410-2)内にあることが検出される期間にわたる時間間隔に対応する位置を示す位置データを受信または収集することを時刻t2aで開始し、オペレーティングシステムがアプリケーションプログラム232に位置更新を提供することを停止するか、またはAOI(たとえば、AOI 410-2)を退出したモバイル装置を検出したことに応答して位置検出機構215から位置更新を収集することを停止するようにアプリケーションプログラム232に促すときに、時刻t3で位置データを受信または収集することを停止する。ある実施形態では、位置モジュール236が時間間隔に対応する位置の少なくとも一部をサーバ104に提供するように構成される。いくつかの実施形態では、モバイル装置102がAOI 410-2内に残る時間長に応じて、モバイル装置102がAOI 410-2内に残る期間の異なる部分の間に、異なる周期で位置データを位置モジュール236によって収集することができる。例えば、位置データは図6B〜図6Cに関連して以下でさらに詳細に説明されるように、位置モジュール236によって収集されてもよく、および/または、モバイル装置102がAOI内にとどまることが長いほど一層遅い速度でサーバ104に提供されてもよい。
【0032】
いくつかの実施形態では、モバイル装置102がAOI 410の近傍416にあるとき、モバイル装置102がAOI 410内にあるときよりも低い頻度で位置データが取得され、かつ/またはサーバ104に送信される。例えば、オペレーティングシステム216は、モバイル装置102がAOI 410の近傍416に進入したことに応答して、ただ1つまたはいくつかの位置更新を提供するように構成されてもよい。一方、位置データはモバイル装置102がPOI 410内にあるとき、一定の時間間隔で収集され、サーバ104に送信される。
【0033】
図5A〜5Dは、いくつかの実施形態による、動的ジオフェンスベースの位置データ収集のさらなる例を示す。図5Aは時刻t3と時刻t3aとの間に位置406から別の位置501に移動し、時刻t3aに近傍416-2を退出するモバイル装置102を示す。その後、モバイル装置102は、時刻t3aと時刻t3bとの間に位置501から別の位置502に移動し続け、時刻t3bに近傍416-3に進入する。それに応答して、オペレーティングシステム216は位置502を提供し又は位置502を取得するようアプリケーションプログラム232に促す。位置モジュール236は位置502を収集し、位置502をサーバ104に提供し、サーバ104にモバイル装置102が近傍416-2にあることを通知してよい。いくつかの実施形態では、位置モジュール236が、モバイル装置102がAOI410の集合または近傍416のいずれの中にもなく、この期間中に位置検出機構215によって生成された位置更新がサーバ104に送信されない、時刻t3aと時刻t3bとの間の期間中に、位置検出機構215またはオペレーティングシステム216から位置データを収集しない。
【0034】
時刻t3cにおいて、モバイル装置102はAOI 410-3内の位置503にあることが検出される。それに応じて、オペレーティングシステム116はアプリケーションプログラム232へ位置更新を提供するか、または位置データを収集するようにアプリケーションプログラム232または位置モジュール236に促す。いくつかの実施形態では位置モジュール236は、AOI 410-2内にモバイル装置102が残っている限り、オペレーティングシステム216または位置検出機構215から位置データを受信または収集する。位置モジュール236によって受信または収集された位置データの少なくともいくつかは、モバイル装置102がAOI410-3-2の地理的境界416-3内にとどまり、および/または移動する間、サーバ104に提供される。いくつかの実施形態では、電力を節約し、望ましくないバッググラウンド活動を低減するために、オペレーティングシステム216は、オペレーティングシステム216によってモバイル装置102がAOI 410-3を退出したことが検出されるとすぐに、位置データの提供を停止するか、位置データの収集を停止するようにアプリケーションプログラム232に促すように構成される。
【0035】
図5Aに示すように、モバイル装置102はAOI 410-3内の時刻t3cにおける位置503から、AOI 410-3の外側の時刻t3dにおける位置504へ移動し、そこから時刻t3eにおける第1の領域400の外側の位置505へ、そしてそこから時刻t4における第1の領域400の外側の位置506へ移動する。いくつかの実施形態では、第1の領域400をオペレーティングシステム216に登録した結果として、オペレーティングシステム216はモバイル装置102が最初に第1の領域400の外にあることが検出されたとき(例えば、時刻t3e)、その移動スピードなど、モバイル装置102の移動状態の追跡を始めるように構成される。図5Bは時刻t4における位置506から時刻t5における位置507へ、例えば、毎時5マイルよりも速い速度で移動するモバイル装置102を示す。いくつかの実施形態では時刻t4から時刻t5まで、オペレーティングシステム216はモバイル装置102の移動状態を監視し続ける。位置モジュール236はオペレーティングシステム216または位置検出機構215から位置データを受信または収集せず、その結果、サーバ104に位置データを送信しない。
【0036】
図5Cおよび5Dはいくつかの実施形態による、モバイル装置102が時刻t6において第2の位置508にあり、所定の移動状態(例えば、静止しているか、または所定の長さの時間(例えば、5分)にわたって、例えば、5マイル/時未満の移動速度で移動している)にあることが検出されたことを示す。それに応答して、オペレーティングシステムは位置508をアプリケーションプログラム232に提供するか、またはアプリケーションプログラム232に位置508を得るように促す。位置を受信すると、位置モジュール236はモバイル装置102の現在の位置(例えば位置508)を示す位置データをサーバ104に送信する。それに応じて、サーバ104は位置508が第1のAOIの組410または近傍416のいずれかの内部にあるか否かを判断し、そうでない場合、サーバ104は位置508を、別の地理データの組のための新しい基礎と見なす。したがって、図5Dに示すように、所定の動き状態の検出に応じて位置を提供した後、モバイル装置102は、サーバ104から第2の地理データを受信する。第2の地理データは、第2の位置508の周りの第2の領域500と、第2の領域500内の関心地域510の第2の組を定義するデータとを含む。いくつかの実施形態では、第2の地理データがAOI510の一部または全部の代わりに、またはそれに加えて、近傍512の定義を含むことができる。第2の地理データを受信すると、地理データモジュール234は、第2の地理データをオペレーティングシステム216に登録する。したがって、第2の地理データはオペレーティングシステム216において第1の地理データに取って代わる(たとえば、領域500、AOI510、および/または近傍512は、オペレーティングシステム216において以前に登録された領域400、AOI410、および/または近傍416に取って代わる)。
【0037】
いくつかの実施形態では、第2の位置508が第1の領域の内側または外側とすることができる。したがって、モバイル装置102は、第1の領域400を退出したことが検出された後、第1の領域400に再び進入することができる。しかし第2の位置508がAOI410の第1の組のいずれの中にもない限り、新しい領域500およびAOI510の新しい組が確立されることに基づいて、新しい位置として扱われる。
【0038】
図5Dは、いくつかの実施形態による、第2の領域500と、第2の領域500内の第2の関心地域の組510とを示す。いくつかの実施形態では、AOI510のそれぞれはそれぞれのエンティティ510に関連付けられた地理的境界513または511の内側の地理的領域510である。地理的境界511は例えば、それぞれのエンティティの物理的構造(例えば、建物または構内)の周囲、またはそれぞれのエンティティの物理的構造を囲むジオフェンスとすることができる。それぞれの近傍512は、提供される場合、関連エンティティ510の地理的境界511を囲むそれぞれの地理的境界513間の領域に対応する(例えば、近傍512-1は、地理的境界513-1と地理的境界511-1との間にあるAOI 510-1の周囲の地域に対応する)。
【0039】
いくつかの実施形態では、AOIの組510が位置501に最も近い所定数(例えば、50)のAOIを含む。第1の領域500はAOIの組および第2の位置508を含む領域(例えば、最小領域)とすることができる。例えば、図5Dに示されるように、第2の領域400は位置508を中心とし、第2の位置508と、位置508から第2の組のAOI510の最も遠い点との間の距離として決定される半径r2を有する。いくつかの実施形態では、半径r2が第2の位置508の近傍にあるもの(例えば、第2の位置508が商業地区または商業中心の近くにあるか、郊外にあるか等)に基づいてサーバ104によって定義される。第2の組のAOI510は第2の領域500内にあり、第2の位置508に最も近いAOIであり、所定の最大数(例えば、50)のAOIまでである。
【0040】
図6A〜6Dは、いくつかの実施形態による、位置モジュール236による位置データの受信、収集、および送信のタイミングを示すタイミング図である。
【0041】
図6Aはいくつかの実施形態による、図4A〜4Bに示されるような、時刻t0からt2までの期間610に対応するタイミング図である。いくつかの実施形態では、モバイル装置102の位置検出機構215が一連の時間間隔602のそれぞれの終わりに、または少なくとも予め設定された最短距離だけの位置の変化に応答して、またはオペレーティングシステム216および/またはモバイル装置102上の他のソフトウェアプログラムからの要求に応答して、位置更新を提供するように構成可能である。時刻t0において、モバイル装置102は、位置401を含むデータ612を提供する。その後まもなく、時刻t1において、モバイル装置102はサーバ104から、第1の領域400および第1の組の関心地域(AOI)410を受信する。いくつかの実施形態では、モバイル装置102がサーバ104から近傍416をさらに受け取る。それに応じて、アプリケーションプログラム232は、第1の領域400、第1の組の関心地域(AOI)410、および近傍416(提供される場合)にオペレーティングシステム216を登録する。いくつかの実施形態では、第1の領域400および第1の組の関心地域(AOI)410がオペレーティングシステム216に登録された結果として、オペレーティングシステム216は、モバイル装置102が第1の組のAOI410のいずれかの内部にあることが検出されたときに、位置検出機構215またはオペレーティングシステム216から位置データを収集するように位置更新またはプロンプトアプリケーションプログラム232を提供するように構成される。上述したように、位置モジュール236はモバイル装置がオンにされたとき、スリープモードまたは待機(スタンバイ)モードから解除されたとき、またはアプリケーションプログラム232がオペレーティングシステムによってそのようにするように促されたときなど、ある所定の条件下でのみ、位置検出機構215またはオペレーティングシステム216からの位置更新を要求するように構成される。したがって、時刻t1から時刻t2まで、アプリケーションプログラム232はオペレーティングシステム216または位置検出機構215から位置データを受信または収集しない。これはモバイル装置102がこの期間中、AOI410の第1の組のいずれの内部にも、または近傍416のいずれの内部にもないからである。そのため、位置モジュール236によって位置データは収集されず、期間610中にサーバ104に提供されない。
【0042】
図6Bおよび6Cは、いくつかの実施形態による、時刻t2と時刻t4との間の様々な期間を示すタイミング図である。図6Bおよび図6Cに示す時刻t2、t2a、t2b、t2c、t3、t3a、t3b、t3c、t3d、t3e、およびt4は、それぞれ、図4C、図4D、および図5Aに示す時刻t2、t2a、t2b、t2c、t3c、t3a、t3b、t3c、t3d、t3e、およびt4に対応する。図6Bに示すように、時刻t2において、モバイル装置102が近傍(例えば、AOI 410-2の近傍416-2)内にあることを検出することに応答して、オペレーティングシステム216はアプリケーションプログラム232に位置402を取得するように提供するか、または促す。これに応答して、位置モジュール236は位置402を取得し、位置402を含むデータ621をサーバ104に送信する。アプリケーションプログラム232はモバイル装置102が近傍416にあるとき、またはデータ621を送信した後に休止状態に戻るとき、時刻t2と時刻t2aとの間の期間615の間に他の機能を実行することができる。時刻t2aにおいて、モバイル装置102は、AOI 410-2内にあることが検出される。これに応じて、オペレーティングシステム216は、モバイル装置102がAOI 410-2の外部にあることが検出されるまで、位置データの収集を始めるようにアプリケーション232を促す。いくつかの実施形態では、オペレーティングシステム216がAOI 410-2内のモバイル装置102の最初の検出時にアプリケーションプログラム232に警告するように構成される。それに応答して、オペレーティングシステムは、モバイル装置102がもはやAOI内にないことをアプリケーションプログラム232に警告するまで、位置検出機構215またはオペレーティングシステム216を周期的または断続的に能動的にポーリングして、モバイル装置102の位置の更新を求める。いくつかの実施形態では、位置モジュール236が位置検出機構215またはオペレーティングシステム216から受信された位置データの少なくともいくつかを収集する。いくつかの実施形態では、位置検出機構215またはオペレーティングシステム216から受信されたすべての位置データが位置検出部236によって収集されるわけではない。例えば、位置検出機構215は、時間間隔602の各々においてモバイル装置102の位置の更新を生成することができる。位置モジュール236はモバイル装置102がAOI 410-2にとどまっている期間620中に、位置検出機構215によって生成されたモバイル装置102の位置更新のいくつかのすべてを収集することができる。モバイル装置102がAOI 410-2内にとどまり続けると、位置モジュール236は、位置更新が収集される周期を漸進的に低減することができる。いくつかの実施形態では、位置検出機構215またはオペレーティングシステム216がアプリケーションプログラム232に位置更新を提供する頻度を位置モジュール236が制御する。例えば、いくつかの実施形態では、オペレーティングシステム216がAOI 410-2内のモバイル装置102の検出時にアプリケーションプログラム232に警告するように構成される。それに応じて、オペレーティングシステムは、モバイル装置102がもはやAOI内にないことをアプリケーションプログラム232に警告するまで、モバイル装置102の位置に関する更新のために位置検出機構215又はオペレーティングシステム216を能動的にピンギングすることによって、位置データを位置モジュール236が収集する。
【0043】
例えば、図6Bおよび図6Cに示すように、位置モジュール236によって収集された位置データは、第1の期間620の第1の部分620-1にわたる第1の一連の時間間隔621にそれぞれ対応する第1の一連の位置(例えば、図4Dに示すように、時刻t2aの位置403から時刻t2bの位置404まで)を示す第1の位置データを含むことができる。位置データは期間620の第2の部分620-2にわたる第2の一連の時間間隔623に対応する第2の一連の位置(例えば、図4Dに示すように、時刻t2bの位置404から時刻t2cの位置405まで)を示す第2の位置データと、期間620の第3の部分620-3にわたる第3の一連の時間間隔625に対応する第3の一連の位置(例えば、図4Dに示すように、時刻t2cの位置405から時刻t3の位置406まで)を示す第3の位置データとをさらに含む。
【0044】
いくつかの実施形態では、モバイル装置102がより長くAOI 410-2にとどまるほど、位置データが収集されることに対応する時間間隔が漸進的により大きくなる(またはより疎になる)。例えば、図6Bに示すように、時間間隔623の各々は時間間隔621のいずれよりも長い。時間間隔625の各々は時間間隔623のいずれよりも長い。したがって、いくつかの実施形態では位置検出機構215が周期620内のそれぞれの時間間隔602についてモバイル装置102の位置の更新を生成し続けることができる。しかしモバイル装置102がより長くAOI 410-2内にとどまるほど、より低頻度で、位置検出モジュール236は位置検出機構215またはオペレーティングシステム216から位置データを収集する。
【0045】
いくつかの実施形態では、収集された位置データがパッケージ化され、一連の時間窓のそれぞれの終わりにサーバ104に送られる。いくつかの実施形態では、時間窓のサイズは可変である。例えば、時間窓のサイズは、モバイル装置102がより長くAOI内に残っているほど、より広くなることができる。例えば、図6Bに示すように、位置モジュール236は、各時間窓622の終わりに、期間620の第1の部分620-1にわたる第1の複数の時間窓622の各々に収集されたサーバ104に位置データに送信するように構成することができる。同様に、位置モジュール236は各時間窓624の終わりに、期間620の第2の部分620-2にわたる第2の複数の時間窓624の各々に集められた位置データをサーバ104に送信し、各時間窓626の終わりに、期間620の第3の部分620-3の少なくとも一部にわたる第3の複数の時間窓626の各々に集められた位置データをサーバ104に送信するように構成される。いくつかの実施形態では図6Bに示されるように、期間620の第1の部分620-1中の時間窓622のそれぞれは第1の数の時間間隔602にわたって広がる幅w1を有することができる。時間窓624のそれぞれは第2の数の時間間隔602にわたって広がる幅w2を有する。第2の数は第1の数よりも大きいので、第2の幅w2は幅w1よりも広い。同様に、時間窓626の各々は、w2よりも広い幅w3を有する。したがって、いくつかの実施形態では位置検出機構215が周期620において、それぞれの時間間隔602についてモバイル装置102の位置の更新を生成し続けることができる。しかしモバイル装置102がより長くAOI 410-2内にとどまるほど、より低い頻度で、位置モジュール236は収集された位置データをサーバ104に送信する。いくつかの実施形態では、位置データは、期間620の異なる部分の間に、異なる周期で位置モジュール236によって収集される。さらに、位置データは、モバイル装置102がより長くAOI内に残るほど、より遅い速度でサーバ104に提供されてもよい。
【0046】
いくつかの実施形態では、期間620の部分600-1および600-2の長さが等しい(例えば、5〜60分)。いくつかの実施形態では部分600-1および600-2は長さが等しい。しかし部分620-3は(図6Bに示されるように)、モバイル装置102がAOI 410-2の内側にあることが検出されなくなるとすぐに終了および/または短く切断される。いくつかの実施形態では、期間620の部分600-1および600-2もまた、時間的に長さが等しくない。
【0047】
図6Bに示されるように、時間3aにおいて、モバイル装置102は、もはやAOI 410-2のそれぞれの地理的境界416-2内にあることが検出されない。それに応答して、オペレーティングシステム216はアプリケーションプログラム232に通知する。位置モジュール236は位置更新の収集を停止する。モバイル装置102のオペレーティングシステム216は、位置検出機構215から受信された位置データを監視および/または追跡し続け、位置データを使用して、第1の領域400および/または第1の組の関心地域410のいずれかおよび/または近傍416のいずれの進入および/または退出を検出し続けてから、収集された位置データを含むデータ629を送信する。
【0048】
図6Cに示すように、時刻t3aにおいて、モバイル装置102は、位置501にて近傍416-2に存在することが検出される。それに応答して、オペレーティングシステム216は位置501を提供し、又はそれを取得するようにアプリケーションプログラム232に促す。位置モジュール236は、位置501を含むデータ632を取得し、サーバ104へ送信する。時刻t3bにおいて、モバイル装置102は、位置502において近傍416-3に進入することが検出される。それに応答して、オペレーティングシステム216は位置502を提供し、又はアプリケーションプログラム232に位置502を取得するように促す。位置モジュール236は、位置503を含むデータ634を取得し、サーバ104に送信する。時刻t3bにおいて、モバイル装置102は、AOI 410?3内にあることが検出される。それに応答して、オペレーティングシステム216からの指示のもとで、位置モジュール236はモバイル装置102がAOI 410-3の内側にあることが検出される限り、モバイル装置102の位置を示す位置データを収集するように構成される。いくつかの実施形態では、モバイル装置102が地理的境界416-3にとどまっている間、位置モジュール236は一連の時間間隔636のそれぞれに対応する一連の位置を収集し、位置データの少なくとも一部をサーバ104に提供する。ある実施形態では、位置モジュール236が時間窓の間に収集された位置データを、一組の連続した時間窓637の各々の端部で、サーバ104に提供するように構成される。図5Aに示されるように、時刻t3dにおいて、モバイル装置102はAOI 410-3の外部にあることが検出される。その時点で、位置モジュール236は図6Cに示されるように、位置データの収集を停止する。しかしながら、モバイル装置102のオペレーティングシステム216は、GPSのようなハードウェアから受信された位置データを監視及び/又は追跡し続け、位置データを使用して、領域400及び/又は関心地域410の組のいずれか及び/又は近傍416のいずれかの進入及び/又は退出を検出する。
【0049】
時刻t3eおよび再度時刻t4において、モバイル装置102は、それぞれ位置505および506において、第1の領域400の外にあることが検出される。いくつかの実施形態では、モバイル装置102が第1の領域400の外にあることが検出されると、オペレーティングシステム216はモバイル装置102の移動状態(例えば、モバイル装置数v>5 mph)を追跡および/または監視するように構成される。いくつかの実施形態では、モバイル装置102が第1の領域400の外にあることが検出されると、その移動状態は所定の移動状態(例えば、v<5 mph)が検出されるまで追跡される。いくつかの実施形態では、所定の移動状態が静止状態である。いくつかの実施形態では、所定の移動状態が所定の時間(例えば、所定の移動状態での時間>5分)にわたって検出されたことに応答して、アプリケーションプログラム232は時刻t6において警告される。それに応答して、図6Dおよび5Dに示されるように、それは、モバイル装置102に、モバイル装置102の第2の位置(例えば、508)を示す位置データ652をサーバ104に提供させる。したがって、図6Cおよび図6Dに示すように、時刻t3dとt6との間では、位置モジュール236は位置データを収集又は送信しない。なぜなら、モバイル装置102が第1の組のAOI410のいずれの中にもないか、または第1の領域400から外れている間に所定の移動状態以外の移動状態を有するためである。
【0050】
図7A〜7Cは、いくつかの実装形態による、動的に生成されたジオフェンスに基づく位置追跡のための方法700を示すフロー図である。方法700はモバイル装置(例えば、図1および図2のモバイル装置102)で実行される。図7A〜図7Cで実行される動作は、いくつかの実装形態によれば、コンピュータ記憶部(例えば、図2のモバイル装置102の記憶部212)に格納された命令に対応する。
【0051】
図7Aに示されるように、方法700は第1の時刻(例えば、時刻t0)におけるモバイル装置102の第1の位置(例えば、それぞれ図4Bおよび図6Aの401および612)を示す位置データを、ネットワーク内のサーバ(例えば、サーバ104)に提供すること(702)を含む。いくつかの実施形態では、モバイル装置102の位置の更新を定期的に取得するモバイル装置102のオペレーティングシステム(例えば、オペレーティングシステム216)は、モバイル装置102が待機モードオンまたはオフになったこと、または平均歩行速度よりも速い速度で動き回った後に停止または平均歩行速度(例えば、5マイル/時未満)まで減速したことに応答して、アプリケーションプログラム232に、モバイル装置102の第1の位置401を示す位置データを提供するか、またはアプリケーションプログラム232に位置検出機構215から位置データを取得するように指示することができる。これに応答して、位置モジュール236はモバイル装置102の第1の位置401を示す位置データをサーバ104に提供する。これは、第1の領域401と、第1の位置401の周囲の第1の領域400内の第1の関心地域410の第1の組とを含む第1の地理データを決定する。
【0052】
方法700はさらに、サーバ104から第1の地理データを受信すること(704)を含む。いくつかの実施形態では、第1の地理データが第1の位置401の周りの第1の領域(例えば、400;図4)と、第1の領域400内の第1の組の関心地域(例えば、410;図4)とを含む。いくつかの実施形態では第1の組の関心地域410の各々がそれぞれの地理的境界411を有し、第1の組の関心地域410の各々のそれぞれの地理的境界411はそれぞれのエンティティに関連付けられ(706)、それぞれのエンティティの位置および物理的な構造または地理的な大きさに基づく。
いくつかの実施形態では、AOIの組410が位置401に最も近い所定回数(例えば、50)のAOIを含み、第1の領域400はAOIの組および第1の位置401のすべてを含む領域(例えば、最小領域)とすることができる。例えば、図4Bを参照して上述したように、第1の領域は、第1の位置401の中心にあり(708)、第1の位置401から最も遠い第1の組の関心地域410の中の関心地域の位置によって、または第1の位置401から最も遠い近傍の位置416によって決定される半径r1を有する。いくつかの実施形態では、第1の組の関心地域510がそれぞれ、複数の別個のエンティティに関連付けられる(710)。いくつかの実施形態では、第1の組の関心地域410が少なくとも50の関心地域を含む(711)。いくつかの実施形態では、第1の地理データが、AOI410の第1の組の少なくともいくつかについての近傍416を定義するデータ(近傍416の外側境界417に関連するデータなど)をさらに含む(712)。
【0053】
方法700は、モバイル装置102において第1の地理データを受信することに応答して、第1の地理データをモバイル装置102のオペレーティングシステム216に登録すること(714)をさらに含む。その結果、オペレーティングシステム216は、上述したように、モバイル装置102が第1の関心地域410及び/又は第1の領域400に出入りするのに応答してアプリケーションプログラム232に通知するように、及び/又は、所定の動作を行うように設定される。いくつかの実装形態では、モバイル装置102が第1の組の関心地域410の関心地域(例えば、AOI 410-2)に進入したことを検出すると、オペレーティングシステム216はアプリケーションプログラム232に警告するように構成される。これに応答して、図7Bに示されるように、位置モジュール236は図4D〜図6Dに関連して上述したように、モバイル装置102が関心地域AOI 410-2内にとどまっている間に、モバイル装置102の位置を示す位置データを収集する(716)。
【0054】
いくつかの実施形態では、収集された位置データが(718-a)モバイル装置102がAOI 410-2内にとどまる期間620の第1の部分620-1(例えば、t2aからt2bまで)にわたる第1の一連の時間間隔621にそれぞれ対応する第1の一連の位置を示す第1の位置データを含む。位置データは(718-b)期間620の第1の部分620-1に続く、期間620の第2の部分620-2(例えば、t2bからt2cまで)にわたる第2の一連の時間間隔623にそれぞれ対応する第2の一連の位置を示す第2の位置データをさらに含むことができる。いくつかの実装形態では、第2の一連の時間間隔の各時間間隔623が、第1の一連の時間間隔621(718-c)のいずれよりも持続時間が長い。
【0055】
方法700は、収集された位置データの少なくとも一部を、サーバ104に提供すること(720)をさらに含む。いくつかの実施形態では収集された位置データが(722-a)一連の第1の時間窓のそれぞれの時間窓中に収集された位置データの第1の部分と、一連の第1の時間窓に続く一連の第2の時間窓のそれぞれの時間窓中に収集された位置データの第2の部分とを含む。一連の第2の時間窓のそれぞれは一連の第1の時間窓のいずれよりも広い。いくつかの実施形態では、(722-b)収集された位置データをサーバ104に提供することは、(722-c)第1の時間窓の第1の時間窓のそれぞれの終わりに、第1の時間窓のそれぞれで収集された位置データの第1の部分の少なくともいくつかをサーバ104に送信することと、(722-d)一連の第2の時間窓のそれぞれの第2の時間窓の終わりに、第2の時間窓のそれぞれで収集された位置データの第2の部分の少なくとも一部をサーバ104に送信することとを含む。いくつかの実施形態では一連の第1の時間窓のそれぞれは約1〜5分である。一連の第2の時間窓のそれぞれは約2〜10分(724)である。
【0056】
図7Cに示すように、方法700は、モバイル装置が第1の組のAOI410のうちの1つの近傍416に進入したことが検出されたことに応答して、モバイル装置の位置データを収集し(726)、また、任意選択で、モバイル装置の収集された位置データをサーバ104に送信することをさらに含み、モバイル装置が近傍416にある間に他の機能を実行すること(728)をさらに含むことができる。方法700はモバイル装置が第1の領域400をことが検出された後、モバイル装置102が所定の移動状態にあることが所定の時間検出されたことに応答して(736)、第2の時刻(例えば、図5Cおよび5Dのそれぞれでt6およびt7)にモバイル装置102の第2の位置(例えば、507)を示す位置データをサーバ104に提供することをさらに含む。いくつかの実施形態では、所定の移動状態は、モバイル装置102が静止している(例えば、0マイル/時)か、または5マイル/時未満の移動速度(例えば、3マイル/時などの平均歩行ペース)を有することを示す(738)。例えば、図5A〜図5Dに図示されるように、モバイル装置102が第1の領域400の外側であることが検出され、5マイル/時を超える移動速度を有した後、モバイル装置102は、時刻t6において、例えば5分を超える間、静止状態(0マイル/時)を有することが検出される。これに応答して、モバイル装置102の第2の位置(例えば、図5Dおよび図6Dのそれぞれ507および652)を示す位置データが第2の時刻(例えば、t6)にサーバ104に提供される。
【0057】
第2の時刻(例えば、t6)におけるモバイル装置102の第2の位置(例えば、507)を示す位置データを提供した後、方法700はサーバ104から、第2の位置(例えば、位置507)の周りの第2の領域(例えば、領域500)と、第2の領域内の関心地域の第2の組(例えば、AOI510)とを含む第2の地理データを受信すること(740)をさらに含み、関心地域の第2の組(例えば、510)の各々はそれぞれの地理的境界(例えば、512)を有する。いくつかの実施形態では、第2の領域が(741)第2の位置を中心とし、第2の位置から最も遠い第2の組の関心地域の中の関心地域の位置によって決定される半径を有する。いくつかの実施形態では、第2の地理データが関心地域510の第2の組のうちの少なくともいくつかの近傍512を定義するデータをさらに含むことができる(742)。方法700は、第2の地理データがオペレーティングシステム216で第1の地理データに取って代わるように、第2の地理データをモバイル装置102のオペレーティングシステム216に登録すること(750)をさらに含む。このようにして、オペレーティングシステムは、第2の領域500、第2の関心地域510の組、および任意選択で、AOI510の第2の組の近傍512のモバイル装置102の進入および/または退出を追跡および/または監視するように更新される。方法700は、第2の地理データなどに関して上述したステップ716および720を実行し続ける。
【0058】
図8はいくつかの実装形態による、モバイル装置(例えば、図1および図2のモバイル装置102)で実行される方法800を示すフロー図である。図8で実行される動作は、図4〜7Cで上述した方法に対応する。
【0059】
方法800では、ステップ802で、モバイル装置102が最初に始動しているか、またはスリープモードから外れているか、または所定の移動状態(例えば、所定の期間、1時間当たり5マイル未満の移動速度)にあったことを示す状態警告が受信される。ステップ804において、現在位置(例えば、位置401または508)の位置データが取得され、サーバ104に提供される。ステップ806において、地理データ(例えば、第1または第2の地理データ)がサーバ104から受信される。地理データは、位置の周りの領域(例えば、第1の領域400または第2の領域500)と、領域内の関心地域の組(例えば、関心地域の第1の組410または関心地域の第2の組510)とを含む。いくつかの実施形態では、地理データが関心地域の組のうちの少なくともいくつかの近傍を定義するデータをさらに含む。ステップ808において、地理データはオペレーティングシステム(例えば、216)に登録される。
地理データを登録することにより、オペレーティングシステム216は地理データに関してモバイル装置102を監視および/または追跡し、領域および関心地域の組の進入および/または退出を検出することができる。このようにして、モバイル装置102は位置データを連続的に収集および/またはサーバ104に送信しておらず、1つまたは複数の条件が満たされる(例えば、それぞれの地理的境界416内にある、所定の移動状態を有するなど)ときにのみ位置データを提供する。
【0060】
方法800は、モバイル装置102を監視および/または追跡して、地理データに関してモバイル装置102の位置を検出することを更に含む。ステップ810において、モバイル装置102が領域外にあるかどうかの判定が行われる。モバイル装置102が領域外にあると判定された場合、ステップ811で、モバイル装置102の移動状態が監視され、かつ/またはモバイル装置102が所定の移動状態に達するまで追跡される。ステップ812で、所定の移動状態が検出されたと判定された場合、方法800はステップ804に戻る。モバイル装置102の現在位置を示す位置データがサーバ104に提供される。
【0061】
ステップ810で、モバイル装置102がまだ領域内にあると判定された場合、方法800は、ステップ814で、モバイル装置102がそれぞれの関心地域内にあるかどうかを判定し続ける。ステップ814で、オペレーティングシステム216を介して、モバイル装置102がそれぞれの関心地域内にあることが検出されると、方法800はステップ816に進み、一連の位置が一連の時間間隔の各々で収集され、ステップ818に進み、モバイル装置102は収集された一連の位置をサーバ104に提供する。
【0062】
ステップ820において、方法800はモバイル装置102が最初にAOI内にあることが検出されてから一定の期間が経過した後に、モバイル装置102がまだそれぞれの関心地域(例えば、410-2)内にあるかどうかを判定する。ステップ820において、モバイル装置102がもはやそれぞれの関心地域内にないと判定された場合、方法800はステップ810に戻る。一方、ステップ820において、モバイル装置102が依然としてそれぞれの関心地域内にあると判定された場合、方法800は任意選択でステップ822に進み、図6B〜6Cに関連して上述したように、モバイル装置102の位置データが収集される頻度が低減される。いくつかの実施形態では、方法800は更にステップ824を含む。ここではモバイル装置102がAOI 410-2内に長期間とどまっていることが検出されたときに、位置データがサーバ104に提供される頻度が低減される。
【0063】
図9A〜図9Cはいくつかの実装形態による、サーバ(例えば、図1および図3のサーバ104)における位置収集のためのジオフェンスを動的に生成するための方法900を示すフロー図である。図9A〜9Cで実行される動作はコンピュータ記憶部(例えば、図3のサーバ105の記憶部306)に格納された命令に対応する。方法900は、図4A〜図8で上述したものと同様の機能を実行する。
【0064】
図9Aに示されるように、方法900はモバイル装置102から、第1の時刻(例えば、t0)におけるモバイル装置102の第1の位置(例えば、図4Bおよび図6Aの401および612)を示す位置データを受信すること(902)を含む。例えば、図4Aおよび図6Aに示すように、モバイル装置102が最初に起動するか、またはスリープモードから抜けると、位置データがサーバ104に提供される。
【0065】
方法900は第1の時刻(例えば、t0)におけるモバイル装置102の第1の位置401に基づいて、第1の地理データを決定すること(904)をさらに含む。いくつかの実施形態では第1の地理データが第1の位置401の周りの第1の領域400と、第1の領域400内の第1の組の関心地域410とを含む。第1の組の関心地域の各々はそれぞれの地理的境界411を有する。いくつかの実施形態では、第1の組の関心地域の各々のそれぞれの地理的境界411がそれぞれのエンティティに関連付けられ(906)、それぞれのエンティティの位置および物理的な構造または地理的な大きさに基づく。いくつかの実施形態において、サーバ104は様々な関心地域の地理的境界411を記憶する地理データデータベース322と、第1の位置401および/または第1の領域400に基づいて地理データデータベース322から関心地域410の第1の組を検索するように構成されたCPUとを含み、またはそれらへのアクセスを有する。いくつかの実施形態では、第1の地理データが上述のように、関心地域410の第1の組のうちの少なくともいくつかの近傍416を定義するデータをさらに含む(908)。いくつかの実施形態では、AOIの組410が、位置401に最も近い所定数(例えば、50)のAOIを含む。第1の領域400は上述のように、AOIの組および第1の位置401のすべてを含む領域(例えば、最小領域)とすることができる。例えば、第1の領域400は第1の位置401の中心に置くことができ(909)、上述のように、第1の位置401から最も遠い第1の組の関心地域410の位置によって、または第1の位置401から最も遠い近傍416の位置によって決定される半径r1を有する。方法900は、第1の地理データをモバイル装置102に提供すること(910)をさらに含む。
【0066】
図9Bに示すように、方法900は、モバイル装置102が関心地域(例えば、AOI 410-2)内にある間に、モバイル装置102の位置を示す収集された位置データをモバイル装置102から受信すること(912)をさらに含む。いくつかの実施形態では、収集された位置データが、(914-a)モバイル装置102がそれぞれの関心地域内にとどまる間の期間の第1の一部分(例えば、t2からt2a)にわたる第1の一連の時間間隔621にそれぞれ対応する第1の一連の位置を示す第1の位置データを含む。位置データは、(914-b)期間の第1の部分に後続する期間の第2の部分(例えば、t2bからt2c)にわたる第2の一連の時間間隔625にそれぞれ対応する第2の一連の位置を示す第2の位置データをさらに含むことができる。いくつかの実装形態では、第2の一連の時間間隔の各時間間隔625が、(914〜c)第1の一連の時間間隔621のいずれよりも持続時間において大きい。
【0067】
いくつかの実施形態では収集された位置データが、(916-a)一連の第1の時間窓のそれぞれの時間窓の間に収集された位置データの第1の部分と、一連の第1の時間窓に続く一連の第2の時間窓のそれぞれの時間窓の間に収集された位置データの第2の部分とを含む。一連の第2の時間窓のそれぞれは一連の第1の時間窓のいずれよりも大きい。いくつかの実施形態では、(916-b)収集された位置データをサーバ104で受信することは、(916-c)一連の第1の時間窓のそれぞれの第1時間窓の終わりにて、各第1の時間窓で収集された位置データの第1の部分の少なくともいくつかをサーバ104で受信することと、(916-d)一連の第2の時間窓のそれぞれの第2の時間窓の終わりにて、各第2の時間窓で収集された位置データの第2の部分の少なくともいくつかをサーバ104に受信することとを含む。
【0068】
いくつかの実施形態では収集された位置データが、(918-a)一定期間の一連の位置を含む。モバイル装置102から収集された位置データを受信した後、サーバ104は一連の位置に基づいて、モバイル装置102がそれぞれの関心地域にあることを検証する(918-b)。例えば、サーバ104は、モバイル装置102がそれぞれの関心地域410を通過しているかどうか、および/またはモバイル装置102がそれぞれの関心点410内にあるかどうかを判定する。いくつかの実施形態では、サーバ104が一連の時間間隔で一連の位置を利用して、モバイル装置102がそれぞれの関心地域内に所定の時間残っていることを検証する。いくつかの実施形態では、所定の時間が、期間(例えば、t2〜t3)の少なくとも第1の部分(例えば、t2〜t2a)を含む。任意選択で、いくつかの実施形態ではモバイル装置102がそれぞれの関心地域410にあるという検証に従って、サーバ104は検証された位置データを第三者に送信する。検証された位置データはモバイル装置102がそれぞれの関心地域410にあることを示す。いくつかの実施形態では、第三者が、関心地域に対応するそれぞれのエンティティに関連付けられる。
【0069】
方法900はモバイル装置102から、第2の時刻におけるモバイル装置102の第2の位置507を示す位置データを受信するステップ(920)をさらに含む。第2の位置は、AOI410の第1の組のそれぞれの外部にある。それに応答して、方法900は第2の時刻におけるモバイル装置102の第2の位置507に基づいて第2の地理データを決定すること(922)をさらに含む。第2の地理データは第2の位置507の周りの第2の領域500と、第2の領域500内の第2の関心地域510の組とを含む。第2の組の関心地域510の各々は、それぞれの地理的境界512を有する。いくつかの実施形態では、第2の地理データが関心地域の第2の組のうちの少なくともいくつかの近傍を定義するデータをさらに含む(923)。いくつかの実施形態では、第2の領域502が第2の位置507の中心にあり(924)、第2の位置507から最も遠い第2の組の関心地域510の位置によって、または第2の位置507から最も遠い近傍512の位置によって決定される半径r2を有する。方法900はさらに、モバイル装置102に、第2の領域500および第2の組の関心地域510を提供すること(926)を含む。方法900は、第2の領域500および第2の関心地域510の組に関して、ステップ914を実行し続ける。
【0070】
図10はいくつかの実装形態による、サーバ(例えば、図1および図3のサーバ104)で実行される方法1000を示すフロー図である。
【0071】
ステップ1002で、方法1000が開始され、その後、ステップ1004に進む。サーバ104はモバイル装置102から、モバイル装置102の第1の位置(例えば、位置401)を示す位置データを第1の時刻に受信する。
【0072】
ステップ1006で、サーバ104は第1の時刻でのモバイル装置102の第1の位置に基づいて地理データを判定する。地理データは、位置の周囲の領域(例えば、領域400または500)と、領域内の関心地域の組(例えば、関心地域410または510)とを含む。関心地域の組の各々は、それぞれの地理的境界を有する。いくつかの実施形態では、地理データが関心地域の組のうちの少なくともいくつかの近傍(例えば、近傍416または512)を定義するデータをさらに含む。ステップ1008において、サーバ104は、地理データをモバイル装置102に提供する。
【0073】
方法1000はステップ1010に進む。サーバ104はモバイル装置102が関心地域(例えば、AOI 410-2)内にあることを示す位置データを受信する。例えば、図4A〜図6Dで上述したように、モバイル装置102はそれぞれの関心地域(例えば、410)内にあるような多数のシナリオに対応する位置データをサーバ104に提供する。
【0074】
ステップ1012において、サーバ104はさらなる分析のために、受信された位置データを記憶する。ステップ1014において、サーバ104は、モバイル装置102が第1の組の関心地域域410の各々の外側および近傍の各々の外側の第2の位置(例えば、位置507)にあることを示す位置データを受信する。それに応答して、方法1000は、第2の位置に基づいてステップ1006〜1012を実行する。
【0075】
上記の記載は、説明のために、特定の実施形態に関連して記載されている。しかしながら、上記の例示的な議論は、網羅的であること、または実施形態を開示された厳密な形態に限定することを意図していない。上記の教示に鑑みて、多くの修正および変形が可能である。実施形態は、原理およびそれらの実用的な応用を最もよく説明するために選択され、説明される。それによって、他の当業者が、意図される特定の使用に適した様々な修正を伴う実施形態および様々な実施形態を最もよく利用することが可能である。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図7C】
【図8】
【図9A】
【図9B】
【図9C】
【図10】
【外国語明細書】
2021069122000001.pdf