位置データベースを用いた移動装置の位置の判定
位置データベースを用いて移動装置の位置を判定する方法、プログラム及びシステムを記載する。移動装置は、アクセスポイントに関連付けられた位置を記憶することができる位置データベースをホストする。位置は、地理的グリッドのセルのグループ内に分布しうる。移動装置が移動し、セルのグループから外れた位置に関連付けられたアクセスポイントに接続したとき、移動装置は位置データベースの更新を要求することができる。移動装置は、現在のアクセスポイントの識別子を用いて位置データベースのルックアップを実行することにより、移動装置の通信範囲内にある現在のアクセスポイントを用いて移動装置の現在位置を計算することができる。移動装置は、位置データベースにおける現在のアクセスポイントに対応する位置を用いて、現在位置を計算することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般には、移動装置の地理的位置を特定する技術に関する。
【背景技術】
【0002】
無線通信ネットワークは、装置が無線通信するために種々の技術を採用することができる。例えば無線ローカルエリアネットワーク(WLAN)は、ネットワークの複数のノード(例えば、複数の装置)間の通信のために、有線ではなく無線を使用するローカルエリアネットワーク(例えば、家、会社又は学校等の小規模な建物の集まり等の相対的に狭い物理的領域を範囲に含むコンピュータネットワーク)を含むことができる。WLAN技術のいくつかの例には、あらゆる米国電気電子学会(IEEE)802.11規格に基づくあらゆるWLAN製品を含むWiFiが含まれる。
【0003】
送信側と受信側との間の無線接続は、無線周波数(RF)技術、電波伝搬と関連付けられた電磁スペクトル内の周波数を採用することができる。WiFiにおいて使用される無線周波数は例えば、2.5ギガヘルツ(GHz)又は5GHzである。アンテナにRF電流が供給されると電磁場が生成される。電磁場は空間を伝播する。無線通信ネットワークの構成要素にアクセスポイント(AP)がある。アクセスポイントにより、無線移動装置は有線ネットワークと通信できる。アクセスポイントの1つの機能は、無線アダプタ又は無線移動装置を搭載したコンピュータが検出及び「同調」する無線信号をブロードキャストすることである。
【0004】
WiFiネットワークのアクセスポイントは、アクセスポイントにより送受信される信号の強度及び地理的エリア地理的エリアその地理的エリアの物理的特性により決定される地理的エリアをカバーすることができる。変化しうる数の移動装置がアクセスポイントの通信範囲内に位置しうる。移動装置は、同時に複数のアクセスポイントの通信範囲内に位置しうる。アクセスポイントの位置が既知である場合、移動装置は、アクセスポイントから受信した信号の強度に基づいて位置を三角法で測定することにより、移動装置が通信するアクセスポイントの位置を使用して位置を判定することもできる。
【発明の概要】
【0005】
ネットワークベースのポジショニングシステムの位置データベースを管理する方法、プログラム及びシステムを記載する。サーバコンピュータは、無線通信ネットワークのアクセスポイントの通信範囲内に配置された位置認識移動装置(例えば、GPS対応装置)から位置情報を受信することができる。サーバコンピュータは、アクセスポイント毎に受信した位置を使用して平均地理的位置を算出することができる。平均地理的位置に基づいて、サーバコンピュータは、アクセスポイントを地理グリッドのセルに割り当てることができる。サーバコンピュータは、アクセスポイント及び受信したデータのポピュラリティ、スタビリティ、ロンジェビティ、並びにフレッシュネスに基づいて、各セルにおけるアクセスポイントをフィルタリングすることができる。サーバコンピュータは、平均地理的位置と関連付けてアクセスポイントの識別子を位置データベースに格納することができる。
【0006】
移動装置は、移動装置が接続するアクセスポイントの位置を使用して位置を判定することができる。移動装置は、地理グリッド上のセルにおけるアクセスポイントに接続すると、アクセスポイントの位置情報、セルにおける他のアクセスポイントの位置及びセルに隣接するセルにおけるアクセスポイントの位置を要求して受信することができる。移動装置は、移動装置の通信範囲内でアクセスポイントに関連付けられた受信した情報から位置を識別することができる。移動装置は、識別した位置を使用して平均地理的位置を算出することができる。移動装置は、各位置と算出された平均地理的位置との間の距離を更に算出することができる。移動装置は、平均地理的位置から十分に離れた位置を除外することができる。移動装置は、平均地理的位置に対してある精度レベルが達成されるまで計算と除外を繰り返すことができる。移動装置は、移動装置の地図ディスプレイに情報を表示することができる。
【0007】
ネットワークベースのポジショニングシステムの位置データベースを管理する技術は、以下の例示的な利点を達成するように実現される。アクセスポイントの実際の位置が未知である場合、地理的エリアは、無線通信ネットワークのアクセスポイントに関連付けられる。地理的エリアは、アクセスポイントの実際の位置ではなく、アクセスポイントの通信範囲内に位置する実際の移動装置が位置する可能性が高い領域に対応する。地理的エリアは、頻繁に更新されるために最新の位置情報を提供する移動装置からの実際の時間データに基づいて推定される。アクセスポイントは、遠ざかっているかあるいは遮断される場合、不正な位置判定を回避するためにデータベースから削除される。地理的エリアは、一日の異なる時間において移動装置から受信したデータに基づいて算出されるよう、通勤時間、勤務時間又は夜間等の種々の使用パターンに対応する。
【0008】
地理的エリアに関連付けられたアクセスポイントは、アクセスポイントの通信範囲内に位置する非GPS対応移動装置の位置を判定するために使用される。移動装置とアクセスポイントとの間の通常の通信に対する干渉を回避するために、アクセスポイントと移動装置とのデータ伝送は、移動装置がアイドル状態の時に行われる。アクセスポイントの位置を使用して移動装置の位置を判定するシステムは、直接移動装置の通信範囲内にあるアクセスポイントの位置及び隣接領域におけるアクセスポイントの位置を伝送するため、移動装置の帯域幅の消費を自律的に制限することができる。従って、移動装置が移動する場合でも頻繁に更新及び再伝送する必要はない。各セルにおけるアクセスポイントのフィルタリング機構は、各伝送において移動装置に伝送されたデータの量を更に制限することができる。信号強度が種々の干渉により変動するため、移動装置は、例えば位置を推定するために信号強度を使用するより正確に位置を推定できる。例えばGPS信号が弱い(例えば、建物内部)場合、GPS対応移動装置は、無線アクセスポイントの位置を利用することが可能である。
【0009】
以下の添付の図面及び明細書において、ネットワークベースのポジショニングシステムの位置データベースを管理する1つ以上の実施例の詳細を説明する。位置データベース管理の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかとなるだろう。
【図面の簡単な説明】
【0010】
【図1A】位置データベースを管理する技術を示す概略図。
【図1B】3次元空間において位置データベースを管理する技術を示す図。
【図2A】、
【図2B】、
【図2C】移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を説明する図。
【図2D】3次元空間において移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を説明する図。
【図3A】、
【図3B】移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を示すフローチャート。
【図3C】位置データベースを管理する技術を実現する例示的なシステムを示すブロック図。
【図4A】ネットワークベースのポジショニングシステムにおいて位置データベースを使用して移動装置の位置を判定する技術を示す図。
【図4B】位置データベースを使用して移動装置の位置を判定する例示的な処理を示すフローチャート。
【図4C】移動装置の位置を判定する例示的な適応マルチパス処理を示すフローチャート。
【図5】無線アクセスポイントの位置を使用して移動装置の位置を判定する例示的なユーザインタフェースを示す図。
【図6】図1〜図5を参照して説明する機能及び動作を実現する例示的なシステムアーキテクチャを示すブロック図。
【図7】移動装置の例示的なアーキテクチャを示すブロック図。
【0011】
各図面において、同一の参照符号は同一の構成要素を示すものとする。
【発明を実施するための形態】
【0012】
<位置データベース管理の概要>
図1Aは、ネットワークベースのポジショニングシステム用位置データベースを管理する技術を示す概略図である。無線ローカルエリアネットワーク(WLAN)は、多くのアクセスポイント105を含む無線通信ネットワークである。アクセスポイント105は、無線装置が有線ネットワークに接続するための通信ハブとして動作するハードワイヤ装置又はコンピュータソフトウェアを含みうる。多数のアクセスポイント105が、領域(例えば、オフィスビル又は空港)内に配置されうる。
【0013】
アクセスポイント105は、種々の通信プロトコルを使用して無線装置(例えば、移動装置108及び110)と通信することができる。いくつかの実施例において、アクセスポイント105は、米国電気電子学会(IEEE)802.11ベースのプロトコル(例えば、IEEE802.11a)を実現するWiFi(登録商標)ネットワークのアクセスポイントである。いくつかの実施例において、アクセスポイント105は、IEEE802.16ベースのプロトコル(例えば、IEEE802.16−2004又はIEEE802.16e−2005)を実現するWiMAX(worldwide interoperability for microwave access)ネットワークのアクセスポイントである。アクセスポイント105は、アクセスポイント105の設定及び物理的な環境を含む要因に依存して、アクセスポイント105の位置から10メートル乃至数百メートル内のあらゆる場所に及ぶ通信範囲を有することができる。複数の移動装置108及び110がアクセスポイント105の通信範囲内にある場合、それら複数の移動装置108及び110はアクセスポイントに接続することができる。さらに、複数のアクセスポイント105が、接続のために単一の移動装置108又は110によって使用されることも可能である。移動装置108及び110は、自身が種々の要因に基づいて接続する特定のアクセスポイント105を選択することができる。例えば選択は、移動装置108がアクセスポイント105aに接続する許可を受けているか、あるいはアクセスポイント105aが無線接続に対して最強の信号を移動装置108に提供するかに基づく。
【0014】
システムは、アクセスポイント105に関連付けられる位置領域115を判定することができる。位置領域115は、アクセスポイント105の通信範囲内に配置された移動装置108が位置する可能性が高い場所を示すように算出される。システムは、アクセスポイント105の通信範囲内に位置する移動装置108から既知の位置に基づいて判定を行う。移動装置108は、グローバル・ポジショニング・システム(GPS)信号を受信し、GPS信号を使用して位置を判定する受信機に内蔵されているかあるいは受信機と結合されるGPS対応移動装置等の位置認識移動装置でありうる。位置認識移動装置108は、図1Aにおいて黒色の三角形として示される。位置認識移動装置108は、特定のアクセスポイント105(例えば、アクセスポイント105a)の通信範囲内に位置する場合、装置の位置をアクセスポイント105aに伝送する。アクセスポイント105aは、伝送及びアクセスポイント105aの識別子をシステムに中継する。システムは、アクセスポイント105aの通信範囲内に位置する移動装置108又は110のいずれかが位置する可能性が最も高い推定位置エリア115aを判定することができる。本明細書において、推定位置エリア115は存在エリア(presence area)と呼ばれ、移動装置108又は110が特定のアクセスポイント105の通信範囲内に位置する場合に存在する可能性が高いことを示す。
【0015】
システムは、存在エリア115を算出するために反復処理を適用することができる(例えば、マルチパス解析を実行することで)。反復処理は、円としてアクセスポイント(例えば、アクセスポイント105)と関連付けられる存在エリア(例えば、存在エリア115)を判定する。円の中心は、アクセスポイント105に接続された位置認識移動装置108の各位置に基づいて算出された平均地理的位置に対応する。円の半径は、例えば移動装置108の位置と平均地理的位置との間の距離等により判定される誤差範囲に対応する。図2及び図3を参照して、反復処理に関する更なる詳細を以下において説明する。反復処理は、一日の異なる時間の間の種々の無線アクセス使用パターン及び潜在的なアクセスポイント105の移動を入手するために定期的に(例えば、6時間毎に)実行される。
【0016】
受信移動装置が存在エリア115を使用して装置の推定位置を判定できるように、システムは、アクセスポイント105の通信範囲内に位置する非GPS対応移動装置(例えば、移動装置110)を含む移動装置に存在エリア115の情報を送出することができる。例えば、移動装置110がアクセスポイント105bの通信範囲内に位置する場合、移動装置110の位置は、アクセスポイント105bと関連付けられる存在エリア115bと一致するものと推定される。
【0017】
所定の領域(例えば、空港)においては、多くのアクセスポイント105が存在する場合がある。また、移動装置110はモバイルであるため、移動装置110が動きを追跡するために位置を使用できるように、即座に移動装置110の通信範囲内にはないが移動装置110に十分に近接するアクセスポイントの位置を送出することは理にかなっている。大量の位置データが移動装置110に送出されることを回避するため、システムは、世界に存在する全てのアクセスポイントの位置データではなく、限られた数のアクセスポイント(例えば、アクセスポイント105a)の位置データのみを伝送するように、アクセスポイント105及び位置領域115をフィルタリングすることができる。フィルタリングは、位置115及びアクセスポイント105のポピュラリティ(popularity)、スタビリティ(stability)、ロンジェビティ(longevity)、フレッシュネス(freshness)を含む種々の要因に基づくことができる。
【0018】
システムは、位置115及びアクセスポイント105をフィルタリングするために、セル102を含む地理グリッド100を作成することができる。セル102は、略矩形形状を有する多角形である。多角形は、地理的エリアの識別点(例えば、中心又は隅)の緯度及び経度、並びに大きさ(例えば、経度の尺度で測定された長さ及び緯度の尺度で測定された幅)により地理グリッド100上で識別可能な地理的エリアに対応する。各セル102は、ある特定の数の位置を含むコンテナとして使用される。例えばセル102は、長さが経線0.0005度(約56メートル)及び幅が緯度0.0005度(メートル単位の幅は緯度に依存して変動する)の矩形である。セル102は、アクセスポイント105に対応する数(例えば、3つ)の存在エリア115を保持するように構成される。いくつかの実施例において、存在エリア115の中心がセル102の境界内に配置される場合、セル102は存在エリア115を「保持する」。存在エリア115は、1つ以上の信頼性要因に基づいてセル102に配置される全ての存在エリア115から選択される。選択は、ポピュラリティ、スタビリティ、ロンジェビティ、フレッシュネス等の種々の基準に基づくことができる。
【0019】
特定のアクセスポイント(例えば、アクセスポイント105b)及びアクセスポイントに関連付けられた存在エリア(例えば、存在エリア115b)は、同一のセル102に配置される必要はない。例えば、アクセスポイント105bがセル102aの建物に配置され、アクセスポイント105bの通信範囲内に配置された殆どの移動装置108がセル102bの別の建物に位置する場合、このようなことが起こりうる。いくつかの実施例において、システムは、アクセスポイント105bの実際の位置を無視することができる。
【0020】
移動装置110は、アクセスポイント(例えば、関連付けられた存在エリア115aがセル102cに配置されるアクセスポイント105a)に接続するか、あるいは他の方法で(例えば、セルラネットワークを介して)システムに接続される場合、システムから位置更新を受信することができる。位置更新は、存在エリア115aが配置される同一のセル(例えば、セル102c)に配置される全ての存在エリア115を含むことができる。位置更新は、地理グリッド100上のセル102cに隣接する他のセル102(例えば、セル102a及びセル102b)に配置される存在エリア115を更に含むことができる。
【0021】
移動装置110は、アクセスポイント105aに接続する場合、使用可能な他のアクセスポイント105(例えば、アクセスポイント105b)を検出することができる。移動装置110は、使用可能なアクセスポイントに対する存在エリア(例えば、存在エリア115a及び115b)を識別することができる。移動装置110は、種々のアルゴリズムを使用して移動装置110の現在位置を算出することができる。例えば、1つの存在エリア115aのみが識別される場合、移動装置110は、存在エリア115aを移動装置110の現在位置として指定する。2つ以上の存在エリア115が識別される場合、移動装置110は、反復処理(例えば、マルチパス解析)を使用して現在位置を算出する。反復処理は、存在エリアの平均位置及び存在エリアと平均位置との間の距離を算出し、平均位置から最も遠く離れた存在エリアを除外する。移動装置110の位置を判定するために必要な精度が満たされるまで、移動装置110は反復処理を繰り返す。移動装置110は、平均位置を移動装置110の現在位置として指定し、地図表示装置に平均位置を表示する。
【0022】
いくつかの実施例において、存在エリア115aの周囲の十分に広い領域(例えば、1又は2平方キロメートル)をカバーできるよう、システムから移動装置110上で受信した位置更新には、多くの隣接するセルを含めることができる。広い領域をカバーする位置更新に基づいて、移動装置110は、自身が移動する場合に頻繁に更新を要求しなければならないことを回避することができる。移動装置110は、例えばアイドル状態であるかあるいは使用可能な通信帯域幅を有する場合、更新された存在エリア情報を受信する機会を有する。
【0023】
図1Bは、3次元空間において位置データベースを管理することを示す。いくつかの位置認識移動装置108(例えば、GPS対応装置)は、3次元空間において位置を識別することができる。位置は、緯度、経度及び高度により示される。例えば高度は、海面からメートル単位で測定された海抜として示される。移動装置の高度が移動装置を配置するために必要な場合、移動装置を3次元空間に配置することが望ましい。例えば高度は、移動装置が位置する高層ビルの階を判定するために使用される。3次元空間における移動装置108の位置は、注釈として海抜を含む2次元地図又は3次元地図に表示される。
【0024】
移動装置108はアクセスポイント126に接続することができる。移動装置108は、緯度座標、経度座標及び高度座標を含む位置をシステムに伝送する位置認識移動装置でありうる。システムは、移動装置108から受信した緯度座標、経度座標及び高度座標に基づいて平均位置を算出する。中心である平均位置を有し且つ半径である誤差範囲を有する3次元空間124が、アクセスポイント126と関連付けられる。空間124は、移動装置がアクセスポイント126の通信範囲内に位置する場合に位置する可能性が高い空間であることを表している。本明細書において、空間124を存在空間と呼ぶ。
【0025】
システムは、存在空間124に関する情報をアクセスポイント126の通信範囲内に位置する移動装置に送出することができる。情報を受信する移動装置は、地理的位置を判定するために情報を使用することができる。システムは、3次元地理空間を3次元グリッド120に分割することができる。3次元グリッド120は3次元セル122から構成される。各3次元セル122は、地理グリッド100のセル102に対応するベースを有する。各3次元セル122は、1つの次元として高さ(例えば、メートル単位で測定された)を有する。存在空間124の中心がセル122にある場合、存在空間124は、セル122に配置されているものとして示される。システムは、存在空間のポピュラリティ(例えば、存在空間における移動装置108からアクセスポイント126に接続された回数)、存在空間124のスタビリティ(例えば、存在空間124がどれだけ安定しているか)、アクセスポイント126のロンジェビティ(例えば、アクセスポイント126が存在している期間)、及び、存在空間124のフレッシュネス(例えば、アクセスポイント126の通信範囲内に位置する移動装置108から最新の位置伝送が受信された時)に基づいてセル122における存在空間の数を制限することができる。
【0026】
システムは、3次元グリッド120の3次元セル122に基づく存在空間124及び隣接する存在空間に関する情報をアクセスポイント126の通信範囲内に位置する移動装置(例えば、移動装置110)に伝送する。移動装置110は、3次元空間において移動装置110の現在位置を推定するために情報を使用し、推定された現在位置を3次元地図に表示する。
【0027】
<サーバ側処理及び位置データベースを管理するシステムの例>
図2A〜図2Cは、位置データベースを管理する処理の例を示す。便宜上、技術を実現するサーバを備えるネットワークベースのポジショニングシステムを参照して技術を説明する。
【0028】
図2Aは、アクセスポイント105と関連付けられた存在エリアを判定するために使用されるマルチパス解析の例示的な処理を示す。アクセスポイント105は、アクセスポイント105の送信機の信号強度及び他の要因(例えば、アクセスポイント105を取り囲む地理的エリアの物理的特性)により判定されるサービスエリア202を有する。サービスエリア202内に位置する移動装置108は、アクセスポイント105に無線接続する。アクセスポイント105により、移動装置108は、種々のゲートウェイを介して有線ネットワークに接続できる。有線ネットワークは、データネットワーク(例えば、インターネット)、公衆交換電話網(PSTN)、他のデジタルネットワーク又はアナログネットワーク、あるいはそれらの組合せを含む。
【0029】
移動装置108は、位置認識移動装置(例えば、GPS対応移動装置)を含みうる。各位置認識移動装置108(図2Aの黒色の三角形として示される)は、現在の地理的位置を検出することができる。現在の地理的位置は、移動装置108の緯度及び経度を含む地理座標により示される。移動装置108は、アクセスポイント105と通信する場合、アクセスポイント105を介して位置情報をシステムに伝送することができる。位置情報は、アクセスポイント105の識別子(例えば、アクセスポイント105のメディアアクセス制御(MAC)アドレス)に関連付けられる。システムは、複数の移動装置108から受信した位置情報を使用して、アクセスポイント105に関連付けられる存在エリアを判定することができる。存在エリアは、アクセスポイント100が実際に配置される位置を取り囲む必要はない。存在エリアは、サービスエリア202内に配置されないが、サービスエリア202の幾何学的な位置又は形状に対応する必要もない。
【0030】
サービスエリア202内で移動装置108を分布させることは、特定の時間(例えば、アクセスポイント105が配置されるタイムゾーンに対する現地時間午前8:30)における移動装置108のスナップショットに対応する。各移動装置108は、単一の位置に関連付けられる。サービスエリア202内で移動装置108を分布させることは、ある期間(例えば、午前4時〜午前10時の6時間)にわたる移動装置108の位置に更に対応する。各移動装置108は、複数の位置に関連付けられる(例えば、移動装置108が移動している場合)。図2Aにおいて複数の三角形で示されるように、複数の位置に関連付けられる単一の移動装置108は、システムにおいて複数の位置で示される。
【0031】
サーバは、移動装置108から受信した位置の集合の平均地理的位置を判定することができる。位置の集合は、特定の時間において又は特定の期間中に移動装置108から受信した位置を含む。平均地理的位置は、円204aが含む領域の中心205として指定される。円204aの中心は、アクセスポイント105の位置と一致する必要はない。サーバは、平均地理的位置と集合における各位置との間の距離を算出し、1つ以上の外れ値を識別することができる。外れ値は、平均地理的位置から最も遠くに配置される集合における位置である。中心までの距離が閾値を上回る外れ値(例えば、位置210)は、集合から除外される。外れ値が除外された後、円204aは、平均地理的位置と現在の集合における位置との間の最長の距離に対応する半径206を有する。
【0032】
図2Bは、図2Aの処理に後続するマルチパス解析の処理の例を示す。図2Aの平均地理的位置(円204aの中心205)までの距離が閾値を上回る位置は、集合から除外されている。閾値は、位置の割合(例えば、図2Aの位置の5%)が除外されるように構成される。新しい平均地理的位置は、集合に依然として存在するある割合(例えば、依然として存在する位置の95%)の位置に基づいて算出される。例えば、新しい平均地理的位置は円204bの中心215である。種々の実施例において、新しい平均地理的位置を算出することは、集合における残りの位置を平均化すること、集合における中間地理的位置を選択すること(例えば、中緯度又は中経度を選択することにより)、あるいは他のアルゴリズムを適用することを含む。平均地理的位置を算出するアルゴリズムは、マルチパス解析の各パスにおいて同一であるか、あるいは各パスにおいて互いに異なる。
【0033】
外れ値の位置が除外される場合、円204bに含まれた領域は、前のパスにおいて判定されたような円204aが含む領域より狭い。より狭い領域は、向上した計算の精度を反映する。円204bの中心215は、円204aの中心205と一致する必要はない。いくつかの実施例において、円204bの半径216は、円204bの中心225から最も遠く離れた移動装置108の残りの位置に対応する。半径216は、存在エリアが現在のパスにおいて算出した新しい推定位置の誤差範囲を示す。
【0034】
図2Cは、マルチパス解析の最終処理の例を示す。ある特定の終了条件を満たす場合、システムは、最終処理後に反復処理を終了する。最終処理は、移動装置108の位置のクラスタに対応する最終的な平均地理的位置を生成する。最終的な平均地理的位置は、円204cの中心235として示される。円204cは、最終的な平均地理的位置とクラスタの位置との間の距離に基づいて最終的な誤差範囲に対応する半径を有する。円204cは、アクセスポイント105と関連付けられた存在エリア及びアクセスポイント105の識別子(例えば、MACアドレス)として指定される。
【0035】
サーバは、種々の要因に基づいてアクセスポイント105の識別子及び関連付けられた存在エリアを位置データベースに含むかを判定することができる。例えばサーバは、地理グリッド100のセル102における存在エリアの数をカウントし、ポピュラリティ、スタビリティ及びロンジェビティに基づいて存在エリアの数を選択することができる。移動装置108がGPS対応装置であるかに関係なく、サーバは、位置データベースにおける存在エリア(存在エリア204cが選択される場合に存在エリア204cを含む)の情報を移動装置(例えば、移動装置108)に送出することができる。
【0036】
図2Dは、3次元空間において位置データベースを管理する例示的な処理を示す。図2Dにおいて、軸X、Y及びZは、3次元空間を示すために使用される。例えば、軸X、Y及びZは、それぞれ、経度、緯度及び高度を示す。便宜上、アクセスポイント126の位置は、図2DにおいてX軸、Y軸及びZ軸上で原点と一致するように示される。いくつかの実施例において、アクセスポイント126の実際の位置(例えば、緯度座標、経度座標及び高度座標)の計算は必須でない。
【0037】
図2Dの各三角形は、3次元空間に配置された移動装置の位置を示す。位置は、3次元空間において平面に投影(例えば、投影226)を有する。平面は、任意の緯度(例えば、アクセスポイント126の緯度)において規定される。例えば平面は、軸X及びYにより規定される。アクセスポイント126は、アクセスポイント126の信号強度及び他の制限要因(例えば、信号路における階、天井、建物)により判定されるサービスエリア空間222に対応する。
【0038】
マルチパス解析は、セル空間202に位置する位置認識移動装置108から受信した位置の集合に基づくWLANのアクセスポイント126と地理空間を関連付ける。マルチパス解析のパスにおいて、平均地理的位置(例えば、空間224の中心)は、例えば集合における位置の緯度座標、経度座標及び高度座標を平均化することで判定される。サービスエリア空間222における平均地理的位置と位置との間の距離が算出される。サービスエリア空間222内にあるが平均地理的位置から十分に遠く離れた位置は、集合及び更なる計算から除外される。空間224の半径は、例えば集合における残りの位置と平均地理的位置との間の最も遠い距離で判定される。
【0039】
システムは、集合における平均地理的位置を算出するステップ、平均地理的位置と集合における位置との間の距離を算出するステップ、及び算出された距離に基づいて集合から位置を除外するステップを繰り返す。終了条件が満たされるまで繰返しは継続する。平均地理的位置における中心及び平均地理的位置と集合における残りの位置との間の距離に基づく半径を有する空間は、アクセスポイント126と関連付けられる存在空間として指定される。
【0040】
図3Aは、位置データベースを管理する例示的な処理300を示すフローチャートである。処理300は、例えばWLANのアクセスポイントと関連付けられた存在エリア又は存在空間を判定するために使用される。存在エリア又は存在空間は、非GPS対応移動装置の位置を判定するために使用される。便宜上、処理300を実現するシステムを参照して処理300を説明する。
【0041】
システムは、アクセスポイント105の通信範囲内に位置する1つ以上の第1の移動装置108から位置の集合を受信する(302)。各位置は、地理座標(例えば、緯度、経度及び高度)の集合により示される。位置は、アクセスポイント105の識別子(例えば、MACアドレス)と関連付けられる。アクセスポイント105がシステムと通信する場合、アクセスポイントの識別子は、アクセスポイント105により自動的に供給される。種々の実施例において、位置の集合は、ある期間(例えば、6時間又はアクセスポイント105が配置されるタイムゾーンの午前6時〜午前10時)に対応する。
【0042】
いくつかの実施例において、ある期間は、一日の異なる時間における特定の使用パターンの特性を反映するように構成される。アクセスポイント105の通信範囲内に移動装置が位置する可能性が最も高い領域は、一日の間に変動し、特定の時間における種々の使用パターンを示す。例えばある期間は、「通勤時間」、「勤務時間」、「夜間」等に対応する。一日の時間の特性は、移動装置108の種々の使用パターンに対応する。例えば、アクセスポイント105と関連付けられた存在エリアは、通勤時間中は高速道路又はその周辺にあり、勤務時間中はオフィスビル又はその周辺にあり、夜間は特に集中点はなく拡散する。システムは、例えば午前4時〜午前10時に受信した位置に基づいて存在エリアを算出し、例えば午前10時〜午後4時に受信した位置に基づいて存在エリアを算出し直す。特徴的な期間の各々において受信した位置は、システムにおいて集合にグループ化される。位置は、サーバに結合された記憶装置上であらゆるデータ構造(例えば、リレーショナルデータベースにおける集合、リスト、アレイ、データレコード等)で格納される。
【0043】
システムは、受信した位置の集合の平均に基づいてアクセスポイント105と関連付けられた地理的位置を判定することができる(304)。地理的位置は、上述したような存在エリア又は存在空間を含む。存在エリア又は存在空間は、例えばアクセスポイント105のMACアドレスによりアクセスポイント105と関連付けられる。いくつかの実施例において、地理的位置を判定することは、各パスにおいて集合から少なくとも1つの位置を除外することを含む受信した位置の集合に対してマルチパスアルゴリズムを適用することを含む。地理的位置を判定することは、定期的にマルチパスアルゴリズムを適用することを含む。
【0044】
システムは、アクセスポイント105のポピュラリティ、地理的位置のスタビリティ及びアクセスポイント105のロンジェビティを含む種々の要因に基づいてアクセスポイント105及びアクセスポイント105と関連付けられた地理的位置を地理グリッド(例えば、地理グリッド100)上のセル(例えば、セル102)に割り当てることができる(306)。いくつかの実施例において、アクセスポイント105のポピュラリティによって、アクセスポイント105の通信範囲内に位置する移動装置108の数を測定することができる。アクセスポイントのポピュラリティは、例えばアクセスポイント105の通信範囲内に存在する移動装置108の位置がある期間においてシステムにより受信される数により測定される。
【0045】
存在エリアがアクセスポイント105の通信範囲内に配置された装置の位置を推定するために使用される場合、アクセスポイント105と関連付けられた存在エリアのスタビリティは、存在エリアの信頼性を反映する。アクセスポイント105と関連付けられた存在エリアのスタビリティは、例えば最後の2つの計算により算出された存在エリアを比較することで測定され、存在エリア間の重複の度合いを判定する。重複の度合いが高いほど、存在エリアはより安定する。
【0046】
アクセスポイント105のロンジェビティは、アクセスポイント105と関連付けられたデータの品質を反映する。例えば、より長い時間データベースにあるアクセスポイントは、最近追加されたアクセスポイントより信頼性が高い。アクセスポイント105のロンジェビティは、位置データベースにおけるデータの履歴により測定される。
【0047】
いくつかの実施例において、データのフレッシュネスは、アクセスポイント105と関連付けられた存在エリアが地理グリッド100のセル102に割り当てられるかを判定するために更に使用される。データのフレッシュネスは、システムがどれくらい前に移動装置108から最新の位置を受信したかにより測定される。
【0048】
システムは、ポピュラリティ、スタビリティ、ロンジェビティ及びフレッシュネスに基づいて地理グリッド100のセル102に配置された各存在エリアをランク付けすることができる。セル102に配置された全ての存在エリアのうちの少なくとも一部(例えば、アクセスポイント105と関連付けられる存在エリアを含む3つの存在エリア)は、セル102に割り当てられる。割り当てられたアクセスポイント及び存在エリアは、アクセスポイント105の通信範囲内に位置する移動装置(例えば、移動装置110)を配置するために使用される。割り当てられない存在エリアは、今後使用するために位置データベースに格納される。
【0049】
システムは、アクセスポイント105と関連付けられた地理的位置をアクセスポイント105の通信範囲内に位置する第2の移動装置(例えば、移動装置110)に提供することができる(308)。システムは、同一のセルに配置された他の地理的位置及び隣接するセルに割り当てられたアクセスポイントと関連付けられた地理的位置を第2の移動装置に更に提供することができる。位置は、種々のプッシュ又はブロードキャスト技術を要求あるいは使用することで、アクセスポイント105から第2の移動装置に伝送される。
【0050】
いくつかの実施例において、システムは、3次元位置情報を受信、処理及び伝送する。存在空間(例えば、存在空間124)は、3次元地理グリッド(例えば、3次元グリッド120)上の3次元セル(例えば、3次元セル122)に割り当てられる。位置は、種々のプッシュ又はブロードキャスト技術を要求又は使用することで、アクセスポイント126からアクセスポイント126の通信範囲内に位置する第2の移動装置に伝送される。
【0051】
図3Bは、位置の集合を使用して平均地理的位置を算出する例示的な処理304を示すフローチャートである。便宜上、処理304を実現するシステムを参照して処理304を説明する。
【0052】
システムは、集合における位置を使用して平均地理的位置を算出することができる(324)。平均地理的位置の算出は、集合における位置の緯度、経度及び高度の平均を算出すること、並びに算出された平均の緯度、経度及び高度における位置を平均地理的位置として指定することを含むことができる。いくつかの実施例において、平均地理的位置の算出は、集合における位置の中緯度、中経度及び中高度における位置を平均地理的位置として指定することを含むことができる。
【0053】
システムは、集合における位置と平均地理的位置との間の距離を算出することができる(326)。いくつかの実施例において、システムは、集合における各位置とユークリッド空間における平均地理的位置との間の直線距離を算出することができる。いくつかの実施例において、システムは、地球の曲率を考慮して集合における各位置と平均地理的位置との間の測地線距離を算出することができる。
【0054】
ステップ326で算出された距離は、中心と関連付けられた半径として指定される。円(例えば、円204a)の中心である中心は、ステップ324で算出された平均地理的位置である。円の半径は、位置の集合における位置と平均地理的位置との間の少なくとも1つの距離に基づいて判定される。いくつかの実施例において、半径は、平均地理的位置と集合に依然として存在する位置との間の最長距離に等しい。いくつかの実施例において、円106dが半径及び中心である平均地理的位置を使用して描画される場合、半径は、円が集合に依然として存在するある割合(例えば、80%)の位置を含む距離である。半径は誤差の範囲を示す。その誤差の範囲を超えると、非GPS対応移動装置の位置の推定値は、統計的に有意義である可能性が低い。
【0055】
システムは、平均位置と位置との間の距離に基づいて集合から少なくとも1つの位置を除外することができる(328)。いくつかの実施例において、システムは、平均地理的位置までの距離が閾値距離を上回る位置を除外する。マルチパス解析の各パスにおいて、システムは、位置の集中(例えば、クラスタ)から離れると考えられる位置を除外することにより、推定された平均地理的位置の精度を向上させることができる。位置のクラスタから離れた位置は、アクセスポイント105と関連付けられた存在エリアを推定するためにあまり有用ではなく、除外される。種々の実施例において、閾値距離は、1つのパスから次のパスに変動しうる。いくつかの実施例において、閾値距離は平均地理的位置までの距離である。閾値距離内において、集合のある割合(例えば、95%)の位置が設けられる。いくつかの実施例において、閾値距離は、パスに対応する距離の集合である(例えば、第1のパスに対して250メートル、第2のパスに対して150メートル等)。平均地理的位置と位置との間の距離が閾値距離を上回る場合、システムは、集合から少なくとも1つの位置を除外することができる。
【0056】
システムは、終了条件が満たされるまでステップ304におけるステップ324、326及び328を繰り返すことができる。システムは、繰返しを終了するための終了条件が満たされるかを判定することができる(330)。いくつかの実施例において、終了条件は、繰返しの回数が閾値回数(例えば、10回)に達したときに満たされる。閾値回数及び除外すべき位置の割合は、確実性(例えば、より広い存在エリアにより、セルにおける移動装置が実際に存在エリアに位置する信頼度が高くなる)と精度(例えば、より狭い存在エリアにより、移動装置のより正確な位置が得られる)とのバランスを微調整するように構成可能である。例えば、割合が95%に設定され、パスの数が10に設定される場合、最終的なパスは、全ての位置データ点の約60%を含む円を生成することができる。
【0057】
いくつかの実施例において、存在エリア又は存在空間が十分に狭い場合に、ステップ330における終了条件が満たされる。移動装置が非常に集中するセルにおいて、存在エリアは、更なるパスが精度を向上させる必要がないほど十分に狭い。円の半径が閾値半径を下回る場合、ステップ324、326及び328の繰返しは終了する。例えば閾値半径は、8〜10メートルである。閾値半径は、受信した集合における位置の分布パターン(例えば、受信した位置データ点の数、位置データ点の密度及びセルにおける集中領域)に基づいてアクセスポイント毎に異なる。
【0058】
システムは、中心である平均地理的位置及び少なくとも1つの算出された距離に基づく半径を有する円として地理的エリアを指定することができる(332)。地理的エリアは、アクセスポイント(例えば、アクセスポイント105)と関連付けられる。サーバは、移動装置の現在位置を算出するために地理的エリア(例えば、中心及び半径)を移動装置に提供することができる。中心は緯度及び経度で示される。距離が3次元空間において算出されるいくつかの実施例において、中心は高度で更に示される。
【0059】
図3Cは、位置データベースを管理する技術を実現する例示的なシステムを示すブロック図である。システムは、1つ以上のプロセッサ、命令を格納する1つ以上のメモリ素子及び他のハードウェアコンポーネント又はソフトウェアコンポーネントを含む。システムは、アクセスポイント(例えば、アクセスポイント105)と関連付けられる存在エリア又は存在空間を判定するために使用される位置特定エンジン350を備える。
【0060】
位置特定エンジン350は、種々のアクセスポイントを介して種々の移動装置からデータを受信するデータ収集モジュール352を備える。データは、1つ以上の位置認識移動装置(例えば、移動装置108)の位置及び移動装置108が接続されるアクセスポイントを示すアクセスポイントの識別子(例えば、アクセスポイント105のMACアドレス)を示す多数のデータ点を含む。いくつかの実施例において、データ点は、移動装置108が位置するタイムゾーンに関する情報を更に含む。データ収集モジュール352は、移動装置108から伝送されたデータを受信するデータ受信モジュール354及びデータ・インデクシング・モジュール356を備える。データ・インデクシング・モジュール356は、受信したデータ点に対して種々の処理を実行する。例えばデータ・インデクシング・モジュール356は、セルIDに基づいて緯度、経度及び高度をソートする。データ・インデクシング・モジュール356は、期間に基づいてデータを集合に更にグループ化する。例えば、受信した位置の新しい集合は、構成可能な期間(例えば、6時間)にわたり作成される。
【0061】
移動装置108の受信した位置の集合は、データ点データベース360に格納される。データ点データベース360は、種々の移動装置108の現在位置及び履歴位置を格納することができる。データ点データベース360は、アドホックデータベース、リレーショナルデータベース、オブジェクト指向データベースを含む。データ点データベース360は、位置特定エンジン350に関連してローカル又はリモートでホストされる。
【0062】
位置計算モジュール364は、データ点データベースにおいてデータ点の集合における平均地理的位置及び平均地理的位置と種々のデータ点の位置との間の距離を算出し、更なる計算のために集合から位置を除外するために利用される。終了条件が特定の集合(例えば、セルIDと関連付けられたデータ点の集合)に到達するまで、位置計算モジュール364は、特定の集合に対する計算を実行する。位置計算モジュール364は、アクセスポイント(例えば、アクセスポイント105)毎に存在エリア又は存在空間を判定する。
【0063】
いくつかの実施例において、位置計算モジュール364は、妥当性チェッカ366を使用して種々の基準及びデータ点の種々のデータに基づいて存在エリア又は存在空間に対する妥当性チェックを実行する。例えば、移動装置108から受信したデータ点は、国識別コード(MCC:Mobile Country Code)及びタイムゾーンの情報を含む。妥当性チェッカ366は、算出された存在エリア又は存在空間をMCCにより示された国に対応する多角形及びタイムゾーンに対応する多角形と比較する。算出された存在エリア又は存在空間が多角形の外側に配置される場合、妥当性チェッカ366は、異常を登録し、アクセスポイントを除外する。
【0064】
位置フィルタリングエンジン368は、存在エリア又は存在空間が現在アクセスポイントの通信範囲内に配置されている移動装置の位置を推定するために使用されるかを判定することができる。位置フィルタリングエンジン368は、地理領域を地理グリッド100のセル102又は3次元グリッド120の3次元セル122に分割することができる。位置フィルタリングエンジン368は、ポピュラリティ、スタビリティ、ロンジェビティ及びフレッシュネスに基づいて存在エリア又は存在空間をランク付けすることができる。位置フィルタリングエンジン368は、各セル102又は3次元セル122に配置されたトップレベルの存在エリア又は存在空間をセル102又は3次元セルに割り当てることができる。
【0065】
存在エリア及び存在空間は、位置の集合の平均の緯度座標、経度座標及び高度座標を有する中心により規定される。存在エリア及び存在空間は、位置の集合における位置から中心までの距離に基づいて判定された半径により更に規定される。存在エリア及び存在空間に対する中心の緯度座標、経度座標及び高度座標、並びに存在エリアの半径及び存在空間の半径は、位置データベース372に格納される。位置データベース372は、割り当てられた存在エリア及び存在空間、並びに割り当てられない存在エリア及び存在空間を全て格納する。割り当てられない存在エリア又は存在空間は、位置計算モジュール364による後続の計算に割り当てられる。位置データベース372は、位置計算モジュール364により定期的に更新される。
【0066】
位置データベース372のデータは、データ配信モジュール376を使用して移動装置に配信される。データ配信モジュール376は、ブロードキャストを介して要求されるか、あるいは移動装置から要求を受信せずに種々のプッシュ技術を使用して、アクセスポイントと関連付けられる割り当てられた存在エリア及び存在空間(例えば、中心座標及び半径)の情報を移動装置(例えば、非GPS対応移動装置110)に送出する。
【0067】
いくつかの実施例において、データ配信モジュール376は、1つの伝送セッションにおいて多数の存在エリア及び存在空間を移動装置に送出することができる。移動装置の通信帯域幅を消費する移動装置への位置伝送の回数を減少するために、データ配信モジュール376は、移動装置110が位置するセルに隣接するセルを配置するために隣接ロケータ380を使用することができる。例えば隣接するセルは、セル及び周囲のセルの全領域がある特定の地理的エリア(例えば、1又は2平方キロメートル)を範囲に含むように移動装置110が位置するセルを取り囲む多くのセルを含む。多数のセル(例えば、400個のセル)と関連付けられた存在エリア及び存在空間に関する情報を移動装置100に送出することにより、移動装置110がセルにわたって移動する場合の伝送の回数が減少する。そのような実施例において、データ配信モジュール376は、移動装置110が前に送出された全てのセルの外に出る場合に移動装置110に更新を送出するだけでよい。
【0068】
<位置データベースを用いて移動装置の位置を判定する処理の例>
図4Aは、無線アクセスポイントの位置を使用して移動装置の位置を判定する技術を示す。移動装置400は、位置を判定するために無線アクセスポイントの位置を使用する例示的な移動装置である。アクセスポイント404を含む通信ネットワークの例示的な部分を示す。
【0069】
移動装置400は、アクセスポイント404aの通信範囲内に位置しうる。移動装置400は、隣接するアクセスポイントの存在エリア又は存在空間(存在エリア406を含む)に関する情報を含むデータをアクセスポイント404aから受信する。移動装置400は、受信したデータを位置データベースに格納する。位置データベースは、移動装置400の記憶装置にホストされうる。格納されたデータは、定期的に、又は要求に応じて、更新されうる。
【0070】
示された例において、移動装置400は、アクセスポイント400aの通信範囲内に位置する。更に移動装置400は、アクセスポイント404b、404c及び404dに対する通信範囲内にある。移動装置400は、WLAN(例えば、IEEE802.11a)において使用された無線通信プロトコル下でアクセスポイント404a、404b、404c及び404dを識別する。アクセスポイント404a、404b、404c及び404dは、アクセスポイントのMACアドレス又は他の識別子(例えば、Bluetooth(登録商標)識別子)により識別される。
【0071】
移動装置400は、それぞれ、アクセスポイント404a〜404dと関連付けられる存在エリア406a、406b、406c及び406dを識別することができる。存在エリア406a〜406dを識別することは、移動装置400に結合されたメモリ素子から存在エリア406a〜406dに関する情報を検索することを含む。いくつかの実施例において、移動装置400は、アクセスポイント404a〜404dの識別子をサーバに送出することにより、サーバから存在エリア406a〜406dを要求することができる。
【0072】
存在エリア406a〜406dに基づいて、移動装置400は、存在エリア406a〜406dに対して反復処理(例えば、マルチパス解析)を実行することができる。反復処理によって、移動装置400の現在の地理的位置の推定位置である地理的エリア402を生成することができる。3次元位置情報が利用される場合、地理的エリア402は地理空間である。移動装置400は、表示装置(例えば、地図ディスプレイ)上に推定された現在位置を表示することができる。
【0073】
図4Bは、位置データベースを使用して移動装置の位置を判定する例示的な処理410を示すフローチャートである。便宜上、処理410を実現する移動装置400を参照して処理410を説明する。
【0074】
移動装置400は、移動装置400が位置する通信範囲内の現在のアクセスポイントを識別することができる(412)。移動装置400は、移動装置400にホストされる位置データベースの更新を要求すべきかを判定するために現在のアクセスポイントを使用することができる。移動装置400にホストされた位置データベースは、以前に移動装置400にダウンロードされたアクセスポイントの記録を含む。移動装置400にホストされた位置データベースにおける記録は、アクセスポイントの識別子(例えば、MACアドレス)及び対応する位置(例えば、緯度座標/経度座標)を含む。
【0075】
ステップ412において、移動装置400は、現在のアクセスポイントが位置データベースの記録に含まれるかを判定することができる。移動装置は、移動装置400が位置する通信範囲内の現在のアクセスポイントの識別子(例えば、MACアドレス)を使用して位置データベースの検索を実行することができる。現在のアクセスポイントが位置データベースの記録に含まれる場合、移動装置は、位置データベースが最新であると判定することができる。現在のアクセスポイントが位置データベースの記録に含まれない場合、移動装置400は、位置データベースの更新が必要であると判定することができる。
【0076】
移動装置400は、現在のアクセスポイントの識別子を使用して移動装置400の位置データベースの更新をサーバから要求することができる(414)。アクセスポイントの識別子及び位置を含む位置データベースにおける記録は、新しいアクセスポイントの新しい識別子及び位置を使用してリフレッシュされる。移動装置400は、現在のアクセスポイントの識別子をサーバに送出することができる。サーバは、地理グリッドにおいてセルを中心セルとして識別することができる。中心セルは、サーバに対して現在のアクセスポイントの識別子と関連付けられた位置を含むセルであり、セル及び隣接するセルにおける全てのアクセスポイント位置を移動装置400に送出することができる。サーバは、中心セルを、隣接セルの位置決めのための始点として使用することができる。中心セルは、その中心セル及びその隣接セルを含むセルのグループのアンカーとなりうるが、その中心セルが、セルのグループの正確な地理的な中心に位置している必要はない。例えば、中心セルが臨海地上のセルであり、隣接セルが全て当該中心セルの片側に配置されることもある。
【0077】
移動装置400は、第2のアクセスポイントと関連付けられた第2の位置の集合を受信することができる(416)。第2のアクセスポイントは、地理グリッド上の中心セル及び中心セルに隣接するセルに配置される。現在のアクセスポイント(例えば、円形領域の中心)と関連付けられた位置は、中心セルに配置される。隣接するセルは、地理グリッド上の中心セルに隣接又は近接して配置されるセルである。隣接するセルの数は、中心セル及び隣接するセルが所定の地理的エリア(例えば、1.5平方キロメートル)を範囲に含むような値を有する。アクセスポイントと関連付けられた位置が中心セル及び隣接するセルが範囲に含む地理的エリア内にある場合、アクセスポイントの識別子及びアクセスポイントと関連付けられた位置は、更新に含まれる。現在のアクセスポイントが位置データベースの記録に含まれない場合に移動装置400上で位置を更新する1つの例示的な利点は、移動装置400がセルからセルに移動する場合に移動装置400が単一のアクセスポイントのサービスエリアと比較して広い領域の外に出るまで更新が必要ないことである。従って、頻繁に更新することが回避され、移動装置400(例えば、帯域幅、CPUサイクル、電池電源)及びサーバ(例えば、移動装置が1つのストリートブロックから次のストリートブロックに移動する場合、サーバは、頻繁に起きる更新を多くの装置に送出する必要はない)双方に対するリソースを節約することができる。
【0078】
移動装置400は、受信したアクセスポイントの位置の集合及び識別子を使用して移動装置400にホストされた位置データベースを更新することができる(418)。更新により、中心セル及び隣接セルによってカバーされる地理的エリアにおいて移動装置400を「中心に置く」ことができる。移動装置400は、自身が中心セルから隣接するセルのうちの1つが範囲に含まないセルに移動するまで別の更新を要求する必要はない。例えば、各セルが約50メートル×50メートルであり、所定の地理的エリアが1.5平方キロメートルである場合、各更新は、約600個のセルを移動装置400の位置データベースに注入する。移動装置が600個のセルが範囲に含む領域の外に出ない限り、移動装置400は別の更新を要求する必要はない。
【0079】
移動装置400は、移動装置400にホストされる位置データベースを使用して移動装置400の現在位置を算出する(420)。計算は、移動装置400により実行された適応マルチパス処理を使用して実行される。図4Cに関連して、マルチパス処理の更なる詳細を以下において説明する。他の要因(例えば、種々のアクセスポイントからの信号強度)が現在位置の計算を支援してよいが、これらの要因は計算には必要ない。
【0080】
移動装置400は、必要に応じて移動装置400の地図表示装置に移動装置400の現在位置を表示することができる(422)。図5に関連して、現在位置の表示例を以下において更に詳細に説明する。
【0081】
図4Cは、移動装置の位置を判定する例示的な適応マルチパス処理430を示すフローチャートである。便宜上、処理430を実現する移動装置400を参照して処理430を説明する。
【0082】
移動装置400は、無線通信ネットワーク(例えば、WLAN)のアクセスポイント(例えば、アクセスポイント404)の識別子を受信することができる(432)。アクセスポイントは、移動装置400の通信範囲内に配置される。識別子は、移動装置400が接続されるかあるいは接続するアクセスポイントと関連付けられる必要はない。例えば、特定の位置において、移動装置400は、3個〜20個のアクセスポイントの通信範囲内にある。移動装置400は、アクセスポイントのうちの2つに接続できるだけでもよい(例えば、アクセスポイント及び移動装置400のセキュリティ設定のために)。移動装置400は、2つのアクセスポイントのうちの一方のみに能動的に接続されるか、又はいずれのアクセスポイントにも接続されない。しかし、移動装置400が受信したアクセスポイントの全ての識別子は、計算に使用される。
【0083】
移動装置400は、移動装置400の位置データベースからアクセスポイントと関連付けられた位置の集合を識別することができる(433)。位置の集合は、アクセスポイントと関連付けられた存在エリア406又は存在空間に対応する。各位置は、地理座標(例えば、緯度、経度及び高度)により示される。各位置は、アクセスポイント404の識別子(例えば、MACアドレス)と関連付けられる。移動装置400は、データベース検索を使用して位置を識別することができる。
【0084】
移動装置400は、集合における位置を使用して平均地理的位置を算出することができる(434)。平均地理的位置の算出は、集合における位置の緯度、経度及び高度の平均を算出すること、並びに算出された平均の緯度、経度及び高度における位置を平均地理的位置として指定することを含みうる。いくつかの実施例においては、平均地理的位置の算出は、集合における位置の中緯度、中経度及び中高度における位置を平均地理的位置として指定することを含む。
【0085】
移動装置400は、集合における位置と平均地理的位置との間の距離を算出することができる(436)。いくつかの実施例において、システムは、集合における各位置とユークリッド空間における平均地理的位置との間の直線距離を算出することができる。いくつかの実施例において、システムは、地球の曲率を考慮して集合における各位置と平均地理的位置との間の測地線距離を算出することができる。
【0086】
ステップ436で算出された距離は、中心と関連付けられた半径として指定される。円(例えば、地理的エリア402を取り囲む円)の中心である中心は、ステップ434で算出された平均地理的位置である。円の半径は、位置の集合における位置と平均地理的位置との間の少なくとも1つの距離に基づいて判定される。いくつかの実施例において、半径は、平均地理的位置と集合に依然として存在する位置との間の最長距離に等しい。いくつかの実施例において、円が半径及び中心である平均地理的位置を使用して描画される場合、半径は、円が集合に依然として存在するある割合(例えば、80%)の位置を含む距離である。半径は誤差の範囲を示す。その誤差の範囲を超えると、非GPS対応移動装置の位置の推定値は、統計的に有意義である可能性が低い。
【0087】
移動装置400は、平均位置と位置との間の距離に基づいて集合から少なくとも1つの位置を除外することができる(438)。いくつかの実施例において、システムは、平均地理的位置までの距離が閾値距離を上回る位置を除外することができる。マルチパス解析の各パスにおいて、システムは、位置の集中(例えば、クラスタ)から離れると考えられる位置を除外することにより、推定された平均地理的位置の精度を向上させることができる。位置のクラスタから離れた位置は、移動装置400の現在位置を推定するためにあまり有用ではなく、除外される。種々の実施例において、閾値距離は、1つのパスから次のパスに変動しうる。例えば閾値距離は、パスに対応する距離の集合である(例えば、第1のパスに対して50メートル、第2のパスに対して30メートル等)。平均地理的位置と位置との間の距離が閾値距離を上回る場合、システムは、集合から少なくとも1つの位置を除外することができる。
【0088】
いくつかの実施例において、移動装置400は、除外される位置の閾値割合を決定することができる。閾値割合は、予め指定された値(例えば、5%)を有することができる。各パスにおいて、移動装置400は、平均地理的位置から遠くにある位置から、閾値割合の位置を除外することができる。
【0089】
移動装置400は、終了条件が満たされるまで処理430のステップ434、436及び438を繰り返すことができる。システムは、繰返しを終了するために終了条件が満たされるかを判定することができる(440)。いくつかの実施例において、終了条件は、繰返しの回数が閾値回数(例えば、5回)に達したときに満たされる。閾値回数は、元々受信した集合における多くの位置に関連する。閾値回数及び除外すべき位置の割合は、確実性(例えば、より広い存在エリアにより、セルにおける移動装置が実際に存在エリアに位置する信頼度が高くなる)と精度(例えば、より狭い存在エリアにより、移動装置のより正確な位置が得られる)とのバランスを微調整するように構成可能である。例えば、割合が95%に設定され、パスの数が10に設定される場合、最終的なパスは、全ての位置データ点の約60%を含む円を生成することができる。
【0090】
いくつかの実施例において、存在エリア又は存在空間が十分に狭い場合、ステップ330の終了条件は満たされる。アクセスポイント404が非常に集中する領域において、推定された現在位置は、更なるパスが精度を向上させる必要がないほど十分に狭い。円の半径が閾値半径を下回る場合、ステップ434、436及び438の繰返しは終了する。例えば閾値半径は、8メートル〜10メートルである。閾値半径は、存在エリア406の半径に基づく。いくつかの実施例において、存在エリア406のいくつかの半径が十分に小さい場合、閾値半径は小さく、推定値に対する信頼度を反映する。
【0091】
移動装置400は、中心である平均地理的位置及び少なくとも1つの算出された距離に基づく半径を有する円を使用して移動装置400の現在位置を指定することができる(442)。中心は緯度及び経度で示される。距離が3次元空間において算出されるいくつかの実施例において、中心は高度で更に示される。いくつかの実施例において、移動装置は、地図ユーザインタフェース上の表示装置に現在位置を更に表示することができる。図5を参照して、例示的な地図ユーザインタフェースを以下において説明する。
【0092】
<移動装置の位置を判定するためのユーザインタフェースの例>
図5は、無線アクセスポイントの位置を使用して移動装置の位置を判定するための例示的なユーザインタフェースを示す。図5において、地理的エリアの例示的な地図502が移動装置500に表示される。いくつかの実施例において、移動装置500は、移動装置500のタッチセンシティブディスプレイ530に地図502を表示することができる。地図502は、ユーザがマッピング及び位置を用いたサービスを表示するために地図オブジェクトを選択する場合に表示される。いくつかの実施例において、地図オブジェクト等のオブジェクトは、音声起動により選択される。検索バー504及びブックマークリストオブジェクト506は、地図502の上部に表示される。検索オブジェクト508、経路オブジェクト510、地図表示オブジェクト512及び現在位置オブジェクト514等の1つ以上の表示オブジェクトが地図の下部の下に表示される。
【0093】
検索バー504は、地図上の住所又は他の位置を見つけるために使用される。例えば、ユーザが検索バー504に自宅の住所を入力すると、住所を含む領域が地図502に表示される。例えばブックマークリストオブジェクト506は、ユーザの自宅の住所等の頻繁に訪問する住所を含むブックマークリストを画面に表示させる。例えばブックマークリストは、現在位置(例えば、移動装置500の現在位置)等の特殊なブックマークを更に含むことができる。
【0094】
検索オブジェクト508は、検索バー504及び他の地図に関連した検索メニューを表示するために使用される。例えば経路オブジェクト510は、ユーザが出発地及び目的地を入力できるようにするメニューインタフェースを画面に表示させる。次にインタフェースは、情報(例えば、出発地から目的地までの経路の方向及び移動時間)を表示する。地図表示オブジェクト512は、ユーザが地図502に対する表示オプションを選択できるようにするメニューを画面に表示させる。例えば、地図502は白黒からカラーに変更され、地図の背景が変更され、あるいは、ユーザは地図の輝度を変更することができる。
【0095】
現在位置オブジェクト514により、ユーザは、移動装置500が現在配置されている場所を示す地図502上の地理的エリア516を確認できる。地理的エリア516は、中心が移動装置500の通信範囲内にあるアクセスポイントと関連付けられたデータ点の平均地理的位置である推定地理的エリア(例えば、地理的エリア402)に対応する。地理的エリアの半径は、平均地理的位置とアクセスポイントと関連付けられた1つ以上の位置との間の距離に基づいて判定される。特殊な現在位置のブックマークは、現在位置オブジェクト514が選択される際にブックマークリストに置かれる。特殊な現在位置のブックマークが事前にブックマークリストに設定された場合、例えば古いブックマーク情報は、新しい現在位置情報で置換される。いくつかの実施例において、特殊な現在位置のブックマークは、地理的エリア516の重心と結び付けられる。すなわち、特殊な現在位置のブックマークは、地理的エリア516の重心に対する座標を含む。地理的エリア516は、移動装置500のメモリ素子に格納された位置命令を使用して判定又は推定された位置データに基づく。例えば地理的エリア516は、円、長方形、正方形、六角形又は丸十字、あるいは地理的エリア516と地図502とを区別する他の何らかの特徴的な要素で示される。
【0096】
いくつかの実施例において、地理的エリア516は、移動装置500が位置すると判定又は推定される領域を含み、移動装置500の実際の現在位置上の中心に置かれる必要はない。この例において、移動装置500は、地理的エリア内で中心から外れて位置する。別の例において、地理的エリア516は、移動装置500の推定された現在位置上の中心に置かれる。
【0097】
現在位置オブジェクト514がタップ又は別の方法で選択される場合、例えば移動装置500は、地理的エリア516上で地図表示を中心に置く。いくつかの実施例において、地図のズームレベルは、位置データの正確度又は精度、あるいは位置データを提供した技術、システム又はサービスに基づいて調整される。例えば、移動装置500がより低い正確度のためにGPS信号を受信できず、位置を判定するためにアクセスポイントデータを使用する場合、地図は縮小される。移動装置500が現在位置を判定するためにGPS位置データを使用できる場合、より高い正確度のために地図は拡大される。いくつかの実施例において、ズームレベルは、移動装置500の速さに基づく(例えば地図は、より速い速さで縮小され、移動装置500が移動していない場合に拡大される)。正確度又は精度と速さとの組合せが更に使用される。
【0098】
位置情報データを検索する全ての方法が失敗し(例えば、移動装置500があらゆるアクセスポイントの通信範囲内にない場合又は移動装置500が接続されるあらゆるアクセスポイントと存在エリアが関連付けられないことを妥当性チェッカ366が判定する場合)、移動装置500の現在位置を判定又は推定するために使用可能な他のシステム又はサービスがない場合、ユーザに対してエラーが表示され、地理的エリアが地図502に表示されない。例えばエラーは、失敗及び考えられる1つ又は複数の失敗の理由を通知するユーザに対するメッセージを含むことができる。
【0099】
例えば現在位置オブジェクト514は、地図502上で地理的エリア516を推定及び表示することを起動するか、推定された現在位置(すなわち、地理的エリア516の重心)に対する経路を取得するか、移動装置500の推定された現在位置を友人に送出するか(例えば、友人が同一の位置に行けるように)、あるいは推定された現在位置に対するブックマークを作成するために選択される。
【0100】
<システムアーキテクチャの例>
図6は、図1〜図5を参照して説明する機能及び動作を実現する例示的なシステムアーキテクチャ600を示すブロック図である。より多くの構成要素又はより少ない構成要素を有するアーキテクチャを含む他のアーキテクチャが可能である。いくつかの実施例において、アーキテクチャ600は、1つ以上のプロセッサ602(例えば、デュアルコアインテルXeonプロセッサ)、1つ以上の出力装置604(例えば、LCD)、1つ以上のネットワークインタフェース606、1つ以上の入力装置608(例えば、マウス、キーボード、タッチセンシティブディスプレイ)及び1つ以上のコンピュータ可読媒体612(例えば、RAM、ROM、SDRAM、ハードディスク、光ディスク、フラッシュメモリ等)を備える。これらの構成要素は、データの転送及び構成要素間の信号の制御を容易にするために種々のハードウェア及びソフトウェアを利用する1つ以上の通信チャネル610(例えば、バス)を介して通信及びデータを交換する。
【0101】
「コンピュータ可読媒体」という用語は、実行するために命令をプロセッサ602に提供することに関係する不揮発性媒体(例えば、光ディスク又は磁気ディスク)、揮発性媒体(例えば、メモリ)及び伝送媒体を含むがそれらに限定されないあらゆる媒体を示す。伝送媒体は、同軸ケーブル、銅線及び光ファイバを含むがそれらに限定されない。
【0102】
図1〜図5を参照して説明したように、コンピュータ可読媒体612は、オペレーティングシステム614(例えば、Mac OS(登録商標)サーバ、Windows(登録商標)NTサーバ)、ネットワーク通信モジュール616、データベースインタフェース620、データ収集モジュール630、データ配信モジュール640及び位置計算モジュール650を更に備える。オペレーティングシステム614は、マルチユーザ、マルチプロセシング、マルチタスキング、マルチリーディング、リアルタイム等である。オペレーティングシステム614は、装置606、608からの入力を認識し、出力を装置606、608に提供すること、コンピュータ可読媒体612(例えば、メモリ又は記憶装置)上でファイル及び経路を追跡し、管理すること、周辺装置を制御すること、並びに1つ以上の通信チャネル610上のトラフィックを管理することを含むがそれらに限定されない基本タスクを実行する。ネットワーク通信モジュール616は、ネットワーク接続を確立及び維持する種々の構成要素(例えば、TCP/IP、HTTP等の通信プロトコルを実現するソフトウェア)を含む。データベースインタフェース620は、ファイルシステムに1つ以上のデータベース(例えば、データ点データベース360及び位置データベース372)に対するインタフェースを含む。データベースは、階層フォルダ構造下で編成される。フォルダは、ファイルシステムにおいて経路にマッピングする。データ収集モジュール630は、アクセスポイント又は他の通信チャネル(例えば、セルラネットワーク)を介してシステム600に無線接続された多数の移動装置からデータを収集する構成要素を含む。データ配信モジュール640は、無線通信ネットワークのアクセスポイントと関連付けられた位置データを移動装置108及び110を含むコンピューティング装置に伝送する種々の機能を実行する。位置計算モジュール650は、移動装置108から受信した位置に対してマルチパス解析を実行する1つ以上の構成要素を含む。
【0103】
アーキテクチャ600は、データベースアプリケーションプログラムをホストできるあらゆる装置に含まれる。アーキテクチャ600は、並行処理又はピアツーピアインフラストラクチャにおいて、あるいは1つ以上のプロセッサを備える単一の装置上で実現される。ソフトウェアは、多数のソフトウェアコンポーネントを含むか、あるいはコードの単一のボディーである。
【0104】
説明した機能は、データ記憶システムに対してデータ及び命令を送受信するように結合された少なくとも1つのプログラム可能なプロセッサ、少なくとも1つの入力装置、並びに少なくとも1つの出力装置を備えるプログラム可能なシステム上で実行可能な1つ以上のコンピュータプログラムにおいて有利に実現される。コンピュータプログラムは、ある特定の動作を実行するかあるいはある特定の結果をもたらすためにコンピュータにおいて直接又は間接的に使用される命令の集合である。コンピュータプログラムは、コンパイル又は解釈された言語を含むあらゆる形態のプログラミング言語(例えば、オブジェクティブC、Java(登録商標))で書かれ、スタンドアロンプログラム、あるいはモジュール、構成要素、サブルーチン、ブラウザベースのウェブアプリケーション又はコンピューティング環境において使用するのに適した他のユニットのようなものを含むあらゆる形態で展開される。
【0105】
命令のプログラムを実行するのに適したプロセッサは、例として、あらゆる種類のコンピュータの汎用マイクロプロセッサと専用マイクロプロセッサの双方及び単独のプロセッサ、あるいは多数のプロセッサ又はコアのうちの1つを備える。一般にプロセッサは、読み出し専用メモリ又はランダムアクセスメモリ、あるいはそれら双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサ、並びに命令及びデータを格納する1つ以上のメモリである。一般にコンピュータは、データファイルを格納する1つ以上の大容量記憶装置を更に備えるか、あるいはそのような装置と通信するように動作可能に結合される。そのような装置は、内部のハードディスク及び取り外し可能ディスク等の磁気ディスク、光磁気ディスク、並びに光ディスクを含む。コンピュータプログラムの命令及びデータを明白に具体化するのに適した記憶装置は、例としてEPROM素子、EEPROM素子及びフラッシュメモリ素子等の半導体メモリ素子、内部のハードディスク及び取り外し可能ディスク等の磁気ディスク、光磁気ディスク、並びにCD−ROMディスク及びDVD−ROMディスクを含む全ての形態の不揮発性メモリを含む。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)により補足されるか、あるいはASICに組み込まれる。
【0106】
ユーザとの対話を提供するために、機能は、ユーザに対して情報を表示するCRT(ブラウン管)モニタ又はLCD(液晶ディスプレイ)モニタ等の表示装置、並びにユーザがコンピュータに入力を提供するキーボード及びマウス又はトラックボール等のポインティング装置を有するコンピュータ上で実現される。
【0107】
機能は、データサーバ等のバックエンドコンポーネントを備えるコンピュータシステム、あるいはアプリケーションサーバ又はインターネットサーバ等のミドルウェアコンポーネントを備えるコンピュータシステム、あるいはグラフィカルユーザインタフェース又はインターネットブラウザを有するクライアントコンピュータ等のフロントエンドコンポーネントを備えるコンピュータシステム、あるいはそれらのあらゆる組合せにおいて実現される。システムのコンポーネントは、通信ネットワーク等のあらゆる形態又は媒体のデジタルデータ通信により接続される。通信ネットワークの例には、LAN、WAN、並びにインターネットを形成するコンピュータ及びネットワーク等が含まれる。
【0108】
コンピュータシステムは、クライアント及びサーバを含む。クライアント及びサーバは、一般に、互いに離れ、ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行し且つ互いにクライアント−サーバ関係を有するコンピュータプログラムにより生じる。
【0109】
<移動装置のアーキテクチャの例>
図7は、移動装置の例示的なアーキテクチャ700を示すブロック図である。例えば移動装置は、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント、携帯電話、電子タブレット、ネットワーク機器、カメラ、スマートフォン、EGPRS(enhanced general packet radio service)移動電話、ネットワーク基地局、メディアプレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、あるいはこれらのデータ処理装置又は他のデータ処理装置のうちのいずれか2つ以上の組合せである。
【0110】
移動装置は、メモリインタフェース702、1つ以上のデータプロセッサ、画像プロセッサ及び/又は中央処理装置704、並びに周辺インタフェース706を備える。メモリインタフェース702、1つ以上のプロセッサ704及び/又は周辺インタフェース706は、別個の構成要素であるか、あるいは1つ以上の集積回路に内蔵される。移動装置の種々の構成要素は、1つ以上の通信バス又は信号線で結合される。
【0111】
センサ、装置及びサブシステムは、周辺インタフェース706に結合され、多数の機能性を容易にする。例えば、モーションセンサ710、光センサ712及び近接センサ714は、周辺インタフェース706に結合され、移動装置の姿勢機能、照明機能及び近接機能を容易にする。位置特定プロセッサ715(例えば、GPS受信機)は、周辺インタフェース706に接続され、無線位置測定を実行する。電磁力計716(例えば、集積回路チップ)は、周辺インタフェース706に更に接続され、磁北の方向を判定するために使用されるデータを提供する。
【0112】
カメラサブシステム720、並びに電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサ等の光学センサ722は、例えば写真及びビデオクリップを記録するカメラ機能を容易にするために利用される。
【0113】
通信機能は、無線周波数送受信機及び/又は光(例えば、赤外線)送受信機を備える1つ以上の通信サブシステム724により容易になる。通信サブシステム724の特定の設計及び実施例は、通信ネットワークに依存する。移動装置は、通信ネットワークを介して動作することを意図する。例えば移動装置は、GSM(登録商標)ネットワーク、GPRSネットワーク、EDGEネットワーク、WiFiネットワーク又はWiMaxネットワーク及びBluetoothネットワークを介して動作するように設計された通信サブシステム724を含む。特に、無線通信サブシステム724は、装置が他の無線装置に対する基地局として構成されるようにホスティングプロトコルを含む。
【0114】
オーディオサブシステム726は、スピーカ728及びマイク730に結合され、音声認識機能、音声複製機能、デジタル記録機能及び電話機能等の音声機能を容易にする。
【0115】
I/Oサブシステム740は、タッチスクリーンコントローラ742及び/又は他の入力コントローラ744を備える。タッチスクリーンコントローラ742は、タッチスクリーン746又はタッチパッドに結合される。例えば、タッチスクリーン746及びタッチスクリーンコントローラ742は、容量性、抵抗性、赤外線及び表面弾性波の技術を含むがそれらに限定されない複数のタッチセンシティブ技術のうちのいずれか、並びにタッチスクリーン746との1つ以上の接触点を判定する他の近接センサアレイ又は他の要素を使用してそれらの接触及び動き又は中止を検出する。
【0116】
他の入力コントローラ744は、他の入力/制御装置748、例えば1つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、USBポート及び/又はスタイラス等のポインタ装置に結合される。1つ以上のボタン(不図示)は、スピーカ728及び/又はマイク730の音量調節のためのアップ/ダウンボタンを含む。
【0117】
一実施例において、第1の期間中ボタンを押下することでタッチスクリーン746のロックを解除し、第1の期間より長い第2の期間中ボタンを押下することで移動装置の電源をon又はoffする。ユーザは、1つ以上のボタンの機能性をカスタマイズできる。例えばタッチスクリーン746は、仮想ボタン又はソフトボタン、並びに/あるいはキーボードを実現するために更に使用される。
【0118】
いくつかの実施例において、移動装置は、MP3ファイル、AACファイル及びMPEGファイル等の記録されたオーディオファイル及び/又はビデオファイルを提示する。いくつかの実施例において、移動装置は、iPod(登録商標)等のMP3プレーヤの機能性を含む。従って、移動装置は、iPodと互換性のあるピンコネクタを含む。他の入出力装置及び制御装置も使用できる。
【0119】
メモリインタフェース702はメモリ750に結合される。メモリ750は、1つ以上の磁気ディスク記憶装置、1つ以上の光記憶装置及び/又はフラッシュメモリ(例えば、NAND、NOR)等の高速ランダムアクセスメモリ及び/又は不揮発性メモリを含む。メモリ750は、Darwin、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X、WINDOWS(登録商標)等のオペレーティングシステム752又はVxWorks等の組み込みオペレーティングシステムを格納する。オペレーティングシステム752は、基本システムサービスを処理する命令及びハードウェア依存タスクを実行する命令を含む。いくつかの実施例において、オペレーティングシステム752はカーネル(例えば、UNIXカーネル)を含む。
【0120】
メモリ750は、通信命令754を更に格納し、1つ以上の追加装置、1つ以上のコンピュータ及び/又は1つ以上のサーバとの通信を容易にする。メモリ750は、グラフィックユーザインタフェース処理を容易にするためのグラフィカルユーザインタフェース命令756、センサに関連する処理及び機能を容易にするためのセンサ処理命令758、電話に関連する処理及び機能を容易にするための電話命令760、電子メッセージングに関連する処理及び機能を容易にするための電子メッセージング命令762、ウェブ閲覧に関連する処理及び機能を容易にするためのウェブ閲覧命令764、メディア処理に関連する処理及び機能を容易にするためのメディア処理命令766、GPS及びナビゲーションに関連する処理及び機能を容易にするためのGPS/ナビゲーション命令768、カメラに関連する処理及び機能を容易にするためのカメラ命令770、磁力計の校正を容易にするための磁力計データ772及び校正命令774を含む。メモリ750は、現在位置をアクセスポイントに伝送し、移動装置が通信範囲内にあるアクセスポイントと関連付けられた位置データに基づいて推定された現在位置を判定するために使用される位置命令776を含む。メモリ750は、セキュリティ命令等の他のソフトウェア命令(不図示)、ウェブビデオに関連する処理及び機能を容易にするためのウェブビデオ命令、並びに/あるいはウェブショッピングに関連する処理及び機能を容易にするためのウェブショッピング命令を更に格納する。いくつかの実施例において、メディア処理命令766は、それぞれ、オーディオ処理に関連する処理及び機能を容易にするためのオーディ処理命令、並びにビデオ処理に関連する処理及び機能を容易にするためのビデオ処理命令に分類される。活性化レコード及び国際移動体装置識別番号(IMEI)等のハードウェア識別子は、メモリ750に更に格納される。
【0121】
先に識別された命令及びアプリケーションの各々は、上述の1つ以上の機能を実行する命令の集合に対応する。これらの命令は、別個のソフトウェアのプログラム、手順又はモジュールとして実現される必要はない。メモリ750は、更なる命令又はより少ない命令を含む。また、移動装置の種々の機能は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含むハードウェア及び/又はソフトウェアで実現される。
【0122】
本発明の種々の実施例を説明したが、本発明の主旨の範囲から逸脱することなしに種々の変形を行うことができることは理解されよう。例えば、位置認識装置はGPS対応と呼ばれる。また、位置認識移動装置は、三角法又は他の技術に基づくことができる。図面においては、セルは略矩形形状で示されたが、セルの実際の形状は変動しうる。位置は「円」で示されたが、本明細書において使用された「円」という用語は、完全に円形である必要はなく、閉じられているかあるいはエンクロージャの外形を有するあらゆる幾何学的形状(例えば、楕円、正方形、凸多角形又は凹多角形、あるいは自由型形状)を含む。完全に円形ではない幾何学的形状の半径は、幾何学的形状の境界上の種々の点と幾何学的形状の中心との間の平均距離を含む。WiFi、WiMaxネットワークは、例として使用したものであり、他の無線技術(例えば、セルラネットワーク)を使用してもよい。従って、他の実施例も、以下の特許請求の範囲の範疇に含まれる。
【技術分野】
【0001】
本発明は、一般には、移動装置の地理的位置を特定する技術に関する。
【背景技術】
【0002】
無線通信ネットワークは、装置が無線通信するために種々の技術を採用することができる。例えば無線ローカルエリアネットワーク(WLAN)は、ネットワークの複数のノード(例えば、複数の装置)間の通信のために、有線ではなく無線を使用するローカルエリアネットワーク(例えば、家、会社又は学校等の小規模な建物の集まり等の相対的に狭い物理的領域を範囲に含むコンピュータネットワーク)を含むことができる。WLAN技術のいくつかの例には、あらゆる米国電気電子学会(IEEE)802.11規格に基づくあらゆるWLAN製品を含むWiFiが含まれる。
【0003】
送信側と受信側との間の無線接続は、無線周波数(RF)技術、電波伝搬と関連付けられた電磁スペクトル内の周波数を採用することができる。WiFiにおいて使用される無線周波数は例えば、2.5ギガヘルツ(GHz)又は5GHzである。アンテナにRF電流が供給されると電磁場が生成される。電磁場は空間を伝播する。無線通信ネットワークの構成要素にアクセスポイント(AP)がある。アクセスポイントにより、無線移動装置は有線ネットワークと通信できる。アクセスポイントの1つの機能は、無線アダプタ又は無線移動装置を搭載したコンピュータが検出及び「同調」する無線信号をブロードキャストすることである。
【0004】
WiFiネットワークのアクセスポイントは、アクセスポイントにより送受信される信号の強度及び地理的エリア地理的エリアその地理的エリアの物理的特性により決定される地理的エリアをカバーすることができる。変化しうる数の移動装置がアクセスポイントの通信範囲内に位置しうる。移動装置は、同時に複数のアクセスポイントの通信範囲内に位置しうる。アクセスポイントの位置が既知である場合、移動装置は、アクセスポイントから受信した信号の強度に基づいて位置を三角法で測定することにより、移動装置が通信するアクセスポイントの位置を使用して位置を判定することもできる。
【発明の概要】
【0005】
ネットワークベースのポジショニングシステムの位置データベースを管理する方法、プログラム及びシステムを記載する。サーバコンピュータは、無線通信ネットワークのアクセスポイントの通信範囲内に配置された位置認識移動装置(例えば、GPS対応装置)から位置情報を受信することができる。サーバコンピュータは、アクセスポイント毎に受信した位置を使用して平均地理的位置を算出することができる。平均地理的位置に基づいて、サーバコンピュータは、アクセスポイントを地理グリッドのセルに割り当てることができる。サーバコンピュータは、アクセスポイント及び受信したデータのポピュラリティ、スタビリティ、ロンジェビティ、並びにフレッシュネスに基づいて、各セルにおけるアクセスポイントをフィルタリングすることができる。サーバコンピュータは、平均地理的位置と関連付けてアクセスポイントの識別子を位置データベースに格納することができる。
【0006】
移動装置は、移動装置が接続するアクセスポイントの位置を使用して位置を判定することができる。移動装置は、地理グリッド上のセルにおけるアクセスポイントに接続すると、アクセスポイントの位置情報、セルにおける他のアクセスポイントの位置及びセルに隣接するセルにおけるアクセスポイントの位置を要求して受信することができる。移動装置は、移動装置の通信範囲内でアクセスポイントに関連付けられた受信した情報から位置を識別することができる。移動装置は、識別した位置を使用して平均地理的位置を算出することができる。移動装置は、各位置と算出された平均地理的位置との間の距離を更に算出することができる。移動装置は、平均地理的位置から十分に離れた位置を除外することができる。移動装置は、平均地理的位置に対してある精度レベルが達成されるまで計算と除外を繰り返すことができる。移動装置は、移動装置の地図ディスプレイに情報を表示することができる。
【0007】
ネットワークベースのポジショニングシステムの位置データベースを管理する技術は、以下の例示的な利点を達成するように実現される。アクセスポイントの実際の位置が未知である場合、地理的エリアは、無線通信ネットワークのアクセスポイントに関連付けられる。地理的エリアは、アクセスポイントの実際の位置ではなく、アクセスポイントの通信範囲内に位置する実際の移動装置が位置する可能性が高い領域に対応する。地理的エリアは、頻繁に更新されるために最新の位置情報を提供する移動装置からの実際の時間データに基づいて推定される。アクセスポイントは、遠ざかっているかあるいは遮断される場合、不正な位置判定を回避するためにデータベースから削除される。地理的エリアは、一日の異なる時間において移動装置から受信したデータに基づいて算出されるよう、通勤時間、勤務時間又は夜間等の種々の使用パターンに対応する。
【0008】
地理的エリアに関連付けられたアクセスポイントは、アクセスポイントの通信範囲内に位置する非GPS対応移動装置の位置を判定するために使用される。移動装置とアクセスポイントとの間の通常の通信に対する干渉を回避するために、アクセスポイントと移動装置とのデータ伝送は、移動装置がアイドル状態の時に行われる。アクセスポイントの位置を使用して移動装置の位置を判定するシステムは、直接移動装置の通信範囲内にあるアクセスポイントの位置及び隣接領域におけるアクセスポイントの位置を伝送するため、移動装置の帯域幅の消費を自律的に制限することができる。従って、移動装置が移動する場合でも頻繁に更新及び再伝送する必要はない。各セルにおけるアクセスポイントのフィルタリング機構は、各伝送において移動装置に伝送されたデータの量を更に制限することができる。信号強度が種々の干渉により変動するため、移動装置は、例えば位置を推定するために信号強度を使用するより正確に位置を推定できる。例えばGPS信号が弱い(例えば、建物内部)場合、GPS対応移動装置は、無線アクセスポイントの位置を利用することが可能である。
【0009】
以下の添付の図面及び明細書において、ネットワークベースのポジショニングシステムの位置データベースを管理する1つ以上の実施例の詳細を説明する。位置データベース管理の他の特徴、態様及び利点は、明細書、図面及び特許請求の範囲から明らかとなるだろう。
【図面の簡単な説明】
【0010】
【図1A】位置データベースを管理する技術を示す概略図。
【図1B】3次元空間において位置データベースを管理する技術を示す図。
【図2A】、
【図2B】、
【図2C】移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を説明する図。
【図2D】3次元空間において移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を説明する図。
【図3A】、
【図3B】移動装置を使用してWLANのアクセスポイントと関連付けられた位置を判定する処理の例を示すフローチャート。
【図3C】位置データベースを管理する技術を実現する例示的なシステムを示すブロック図。
【図4A】ネットワークベースのポジショニングシステムにおいて位置データベースを使用して移動装置の位置を判定する技術を示す図。
【図4B】位置データベースを使用して移動装置の位置を判定する例示的な処理を示すフローチャート。
【図4C】移動装置の位置を判定する例示的な適応マルチパス処理を示すフローチャート。
【図5】無線アクセスポイントの位置を使用して移動装置の位置を判定する例示的なユーザインタフェースを示す図。
【図6】図1〜図5を参照して説明する機能及び動作を実現する例示的なシステムアーキテクチャを示すブロック図。
【図7】移動装置の例示的なアーキテクチャを示すブロック図。
【0011】
各図面において、同一の参照符号は同一の構成要素を示すものとする。
【発明を実施するための形態】
【0012】
<位置データベース管理の概要>
図1Aは、ネットワークベースのポジショニングシステム用位置データベースを管理する技術を示す概略図である。無線ローカルエリアネットワーク(WLAN)は、多くのアクセスポイント105を含む無線通信ネットワークである。アクセスポイント105は、無線装置が有線ネットワークに接続するための通信ハブとして動作するハードワイヤ装置又はコンピュータソフトウェアを含みうる。多数のアクセスポイント105が、領域(例えば、オフィスビル又は空港)内に配置されうる。
【0013】
アクセスポイント105は、種々の通信プロトコルを使用して無線装置(例えば、移動装置108及び110)と通信することができる。いくつかの実施例において、アクセスポイント105は、米国電気電子学会(IEEE)802.11ベースのプロトコル(例えば、IEEE802.11a)を実現するWiFi(登録商標)ネットワークのアクセスポイントである。いくつかの実施例において、アクセスポイント105は、IEEE802.16ベースのプロトコル(例えば、IEEE802.16−2004又はIEEE802.16e−2005)を実現するWiMAX(worldwide interoperability for microwave access)ネットワークのアクセスポイントである。アクセスポイント105は、アクセスポイント105の設定及び物理的な環境を含む要因に依存して、アクセスポイント105の位置から10メートル乃至数百メートル内のあらゆる場所に及ぶ通信範囲を有することができる。複数の移動装置108及び110がアクセスポイント105の通信範囲内にある場合、それら複数の移動装置108及び110はアクセスポイントに接続することができる。さらに、複数のアクセスポイント105が、接続のために単一の移動装置108又は110によって使用されることも可能である。移動装置108及び110は、自身が種々の要因に基づいて接続する特定のアクセスポイント105を選択することができる。例えば選択は、移動装置108がアクセスポイント105aに接続する許可を受けているか、あるいはアクセスポイント105aが無線接続に対して最強の信号を移動装置108に提供するかに基づく。
【0014】
システムは、アクセスポイント105に関連付けられる位置領域115を判定することができる。位置領域115は、アクセスポイント105の通信範囲内に配置された移動装置108が位置する可能性が高い場所を示すように算出される。システムは、アクセスポイント105の通信範囲内に位置する移動装置108から既知の位置に基づいて判定を行う。移動装置108は、グローバル・ポジショニング・システム(GPS)信号を受信し、GPS信号を使用して位置を判定する受信機に内蔵されているかあるいは受信機と結合されるGPS対応移動装置等の位置認識移動装置でありうる。位置認識移動装置108は、図1Aにおいて黒色の三角形として示される。位置認識移動装置108は、特定のアクセスポイント105(例えば、アクセスポイント105a)の通信範囲内に位置する場合、装置の位置をアクセスポイント105aに伝送する。アクセスポイント105aは、伝送及びアクセスポイント105aの識別子をシステムに中継する。システムは、アクセスポイント105aの通信範囲内に位置する移動装置108又は110のいずれかが位置する可能性が最も高い推定位置エリア115aを判定することができる。本明細書において、推定位置エリア115は存在エリア(presence area)と呼ばれ、移動装置108又は110が特定のアクセスポイント105の通信範囲内に位置する場合に存在する可能性が高いことを示す。
【0015】
システムは、存在エリア115を算出するために反復処理を適用することができる(例えば、マルチパス解析を実行することで)。反復処理は、円としてアクセスポイント(例えば、アクセスポイント105)と関連付けられる存在エリア(例えば、存在エリア115)を判定する。円の中心は、アクセスポイント105に接続された位置認識移動装置108の各位置に基づいて算出された平均地理的位置に対応する。円の半径は、例えば移動装置108の位置と平均地理的位置との間の距離等により判定される誤差範囲に対応する。図2及び図3を参照して、反復処理に関する更なる詳細を以下において説明する。反復処理は、一日の異なる時間の間の種々の無線アクセス使用パターン及び潜在的なアクセスポイント105の移動を入手するために定期的に(例えば、6時間毎に)実行される。
【0016】
受信移動装置が存在エリア115を使用して装置の推定位置を判定できるように、システムは、アクセスポイント105の通信範囲内に位置する非GPS対応移動装置(例えば、移動装置110)を含む移動装置に存在エリア115の情報を送出することができる。例えば、移動装置110がアクセスポイント105bの通信範囲内に位置する場合、移動装置110の位置は、アクセスポイント105bと関連付けられる存在エリア115bと一致するものと推定される。
【0017】
所定の領域(例えば、空港)においては、多くのアクセスポイント105が存在する場合がある。また、移動装置110はモバイルであるため、移動装置110が動きを追跡するために位置を使用できるように、即座に移動装置110の通信範囲内にはないが移動装置110に十分に近接するアクセスポイントの位置を送出することは理にかなっている。大量の位置データが移動装置110に送出されることを回避するため、システムは、世界に存在する全てのアクセスポイントの位置データではなく、限られた数のアクセスポイント(例えば、アクセスポイント105a)の位置データのみを伝送するように、アクセスポイント105及び位置領域115をフィルタリングすることができる。フィルタリングは、位置115及びアクセスポイント105のポピュラリティ(popularity)、スタビリティ(stability)、ロンジェビティ(longevity)、フレッシュネス(freshness)を含む種々の要因に基づくことができる。
【0018】
システムは、位置115及びアクセスポイント105をフィルタリングするために、セル102を含む地理グリッド100を作成することができる。セル102は、略矩形形状を有する多角形である。多角形は、地理的エリアの識別点(例えば、中心又は隅)の緯度及び経度、並びに大きさ(例えば、経度の尺度で測定された長さ及び緯度の尺度で測定された幅)により地理グリッド100上で識別可能な地理的エリアに対応する。各セル102は、ある特定の数の位置を含むコンテナとして使用される。例えばセル102は、長さが経線0.0005度(約56メートル)及び幅が緯度0.0005度(メートル単位の幅は緯度に依存して変動する)の矩形である。セル102は、アクセスポイント105に対応する数(例えば、3つ)の存在エリア115を保持するように構成される。いくつかの実施例において、存在エリア115の中心がセル102の境界内に配置される場合、セル102は存在エリア115を「保持する」。存在エリア115は、1つ以上の信頼性要因に基づいてセル102に配置される全ての存在エリア115から選択される。選択は、ポピュラリティ、スタビリティ、ロンジェビティ、フレッシュネス等の種々の基準に基づくことができる。
【0019】
特定のアクセスポイント(例えば、アクセスポイント105b)及びアクセスポイントに関連付けられた存在エリア(例えば、存在エリア115b)は、同一のセル102に配置される必要はない。例えば、アクセスポイント105bがセル102aの建物に配置され、アクセスポイント105bの通信範囲内に配置された殆どの移動装置108がセル102bの別の建物に位置する場合、このようなことが起こりうる。いくつかの実施例において、システムは、アクセスポイント105bの実際の位置を無視することができる。
【0020】
移動装置110は、アクセスポイント(例えば、関連付けられた存在エリア115aがセル102cに配置されるアクセスポイント105a)に接続するか、あるいは他の方法で(例えば、セルラネットワークを介して)システムに接続される場合、システムから位置更新を受信することができる。位置更新は、存在エリア115aが配置される同一のセル(例えば、セル102c)に配置される全ての存在エリア115を含むことができる。位置更新は、地理グリッド100上のセル102cに隣接する他のセル102(例えば、セル102a及びセル102b)に配置される存在エリア115を更に含むことができる。
【0021】
移動装置110は、アクセスポイント105aに接続する場合、使用可能な他のアクセスポイント105(例えば、アクセスポイント105b)を検出することができる。移動装置110は、使用可能なアクセスポイントに対する存在エリア(例えば、存在エリア115a及び115b)を識別することができる。移動装置110は、種々のアルゴリズムを使用して移動装置110の現在位置を算出することができる。例えば、1つの存在エリア115aのみが識別される場合、移動装置110は、存在エリア115aを移動装置110の現在位置として指定する。2つ以上の存在エリア115が識別される場合、移動装置110は、反復処理(例えば、マルチパス解析)を使用して現在位置を算出する。反復処理は、存在エリアの平均位置及び存在エリアと平均位置との間の距離を算出し、平均位置から最も遠く離れた存在エリアを除外する。移動装置110の位置を判定するために必要な精度が満たされるまで、移動装置110は反復処理を繰り返す。移動装置110は、平均位置を移動装置110の現在位置として指定し、地図表示装置に平均位置を表示する。
【0022】
いくつかの実施例において、存在エリア115aの周囲の十分に広い領域(例えば、1又は2平方キロメートル)をカバーできるよう、システムから移動装置110上で受信した位置更新には、多くの隣接するセルを含めることができる。広い領域をカバーする位置更新に基づいて、移動装置110は、自身が移動する場合に頻繁に更新を要求しなければならないことを回避することができる。移動装置110は、例えばアイドル状態であるかあるいは使用可能な通信帯域幅を有する場合、更新された存在エリア情報を受信する機会を有する。
【0023】
図1Bは、3次元空間において位置データベースを管理することを示す。いくつかの位置認識移動装置108(例えば、GPS対応装置)は、3次元空間において位置を識別することができる。位置は、緯度、経度及び高度により示される。例えば高度は、海面からメートル単位で測定された海抜として示される。移動装置の高度が移動装置を配置するために必要な場合、移動装置を3次元空間に配置することが望ましい。例えば高度は、移動装置が位置する高層ビルの階を判定するために使用される。3次元空間における移動装置108の位置は、注釈として海抜を含む2次元地図又は3次元地図に表示される。
【0024】
移動装置108はアクセスポイント126に接続することができる。移動装置108は、緯度座標、経度座標及び高度座標を含む位置をシステムに伝送する位置認識移動装置でありうる。システムは、移動装置108から受信した緯度座標、経度座標及び高度座標に基づいて平均位置を算出する。中心である平均位置を有し且つ半径である誤差範囲を有する3次元空間124が、アクセスポイント126と関連付けられる。空間124は、移動装置がアクセスポイント126の通信範囲内に位置する場合に位置する可能性が高い空間であることを表している。本明細書において、空間124を存在空間と呼ぶ。
【0025】
システムは、存在空間124に関する情報をアクセスポイント126の通信範囲内に位置する移動装置に送出することができる。情報を受信する移動装置は、地理的位置を判定するために情報を使用することができる。システムは、3次元地理空間を3次元グリッド120に分割することができる。3次元グリッド120は3次元セル122から構成される。各3次元セル122は、地理グリッド100のセル102に対応するベースを有する。各3次元セル122は、1つの次元として高さ(例えば、メートル単位で測定された)を有する。存在空間124の中心がセル122にある場合、存在空間124は、セル122に配置されているものとして示される。システムは、存在空間のポピュラリティ(例えば、存在空間における移動装置108からアクセスポイント126に接続された回数)、存在空間124のスタビリティ(例えば、存在空間124がどれだけ安定しているか)、アクセスポイント126のロンジェビティ(例えば、アクセスポイント126が存在している期間)、及び、存在空間124のフレッシュネス(例えば、アクセスポイント126の通信範囲内に位置する移動装置108から最新の位置伝送が受信された時)に基づいてセル122における存在空間の数を制限することができる。
【0026】
システムは、3次元グリッド120の3次元セル122に基づく存在空間124及び隣接する存在空間に関する情報をアクセスポイント126の通信範囲内に位置する移動装置(例えば、移動装置110)に伝送する。移動装置110は、3次元空間において移動装置110の現在位置を推定するために情報を使用し、推定された現在位置を3次元地図に表示する。
【0027】
<サーバ側処理及び位置データベースを管理するシステムの例>
図2A〜図2Cは、位置データベースを管理する処理の例を示す。便宜上、技術を実現するサーバを備えるネットワークベースのポジショニングシステムを参照して技術を説明する。
【0028】
図2Aは、アクセスポイント105と関連付けられた存在エリアを判定するために使用されるマルチパス解析の例示的な処理を示す。アクセスポイント105は、アクセスポイント105の送信機の信号強度及び他の要因(例えば、アクセスポイント105を取り囲む地理的エリアの物理的特性)により判定されるサービスエリア202を有する。サービスエリア202内に位置する移動装置108は、アクセスポイント105に無線接続する。アクセスポイント105により、移動装置108は、種々のゲートウェイを介して有線ネットワークに接続できる。有線ネットワークは、データネットワーク(例えば、インターネット)、公衆交換電話網(PSTN)、他のデジタルネットワーク又はアナログネットワーク、あるいはそれらの組合せを含む。
【0029】
移動装置108は、位置認識移動装置(例えば、GPS対応移動装置)を含みうる。各位置認識移動装置108(図2Aの黒色の三角形として示される)は、現在の地理的位置を検出することができる。現在の地理的位置は、移動装置108の緯度及び経度を含む地理座標により示される。移動装置108は、アクセスポイント105と通信する場合、アクセスポイント105を介して位置情報をシステムに伝送することができる。位置情報は、アクセスポイント105の識別子(例えば、アクセスポイント105のメディアアクセス制御(MAC)アドレス)に関連付けられる。システムは、複数の移動装置108から受信した位置情報を使用して、アクセスポイント105に関連付けられる存在エリアを判定することができる。存在エリアは、アクセスポイント100が実際に配置される位置を取り囲む必要はない。存在エリアは、サービスエリア202内に配置されないが、サービスエリア202の幾何学的な位置又は形状に対応する必要もない。
【0030】
サービスエリア202内で移動装置108を分布させることは、特定の時間(例えば、アクセスポイント105が配置されるタイムゾーンに対する現地時間午前8:30)における移動装置108のスナップショットに対応する。各移動装置108は、単一の位置に関連付けられる。サービスエリア202内で移動装置108を分布させることは、ある期間(例えば、午前4時〜午前10時の6時間)にわたる移動装置108の位置に更に対応する。各移動装置108は、複数の位置に関連付けられる(例えば、移動装置108が移動している場合)。図2Aにおいて複数の三角形で示されるように、複数の位置に関連付けられる単一の移動装置108は、システムにおいて複数の位置で示される。
【0031】
サーバは、移動装置108から受信した位置の集合の平均地理的位置を判定することができる。位置の集合は、特定の時間において又は特定の期間中に移動装置108から受信した位置を含む。平均地理的位置は、円204aが含む領域の中心205として指定される。円204aの中心は、アクセスポイント105の位置と一致する必要はない。サーバは、平均地理的位置と集合における各位置との間の距離を算出し、1つ以上の外れ値を識別することができる。外れ値は、平均地理的位置から最も遠くに配置される集合における位置である。中心までの距離が閾値を上回る外れ値(例えば、位置210)は、集合から除外される。外れ値が除外された後、円204aは、平均地理的位置と現在の集合における位置との間の最長の距離に対応する半径206を有する。
【0032】
図2Bは、図2Aの処理に後続するマルチパス解析の処理の例を示す。図2Aの平均地理的位置(円204aの中心205)までの距離が閾値を上回る位置は、集合から除外されている。閾値は、位置の割合(例えば、図2Aの位置の5%)が除外されるように構成される。新しい平均地理的位置は、集合に依然として存在するある割合(例えば、依然として存在する位置の95%)の位置に基づいて算出される。例えば、新しい平均地理的位置は円204bの中心215である。種々の実施例において、新しい平均地理的位置を算出することは、集合における残りの位置を平均化すること、集合における中間地理的位置を選択すること(例えば、中緯度又は中経度を選択することにより)、あるいは他のアルゴリズムを適用することを含む。平均地理的位置を算出するアルゴリズムは、マルチパス解析の各パスにおいて同一であるか、あるいは各パスにおいて互いに異なる。
【0033】
外れ値の位置が除外される場合、円204bに含まれた領域は、前のパスにおいて判定されたような円204aが含む領域より狭い。より狭い領域は、向上した計算の精度を反映する。円204bの中心215は、円204aの中心205と一致する必要はない。いくつかの実施例において、円204bの半径216は、円204bの中心225から最も遠く離れた移動装置108の残りの位置に対応する。半径216は、存在エリアが現在のパスにおいて算出した新しい推定位置の誤差範囲を示す。
【0034】
図2Cは、マルチパス解析の最終処理の例を示す。ある特定の終了条件を満たす場合、システムは、最終処理後に反復処理を終了する。最終処理は、移動装置108の位置のクラスタに対応する最終的な平均地理的位置を生成する。最終的な平均地理的位置は、円204cの中心235として示される。円204cは、最終的な平均地理的位置とクラスタの位置との間の距離に基づいて最終的な誤差範囲に対応する半径を有する。円204cは、アクセスポイント105と関連付けられた存在エリア及びアクセスポイント105の識別子(例えば、MACアドレス)として指定される。
【0035】
サーバは、種々の要因に基づいてアクセスポイント105の識別子及び関連付けられた存在エリアを位置データベースに含むかを判定することができる。例えばサーバは、地理グリッド100のセル102における存在エリアの数をカウントし、ポピュラリティ、スタビリティ及びロンジェビティに基づいて存在エリアの数を選択することができる。移動装置108がGPS対応装置であるかに関係なく、サーバは、位置データベースにおける存在エリア(存在エリア204cが選択される場合に存在エリア204cを含む)の情報を移動装置(例えば、移動装置108)に送出することができる。
【0036】
図2Dは、3次元空間において位置データベースを管理する例示的な処理を示す。図2Dにおいて、軸X、Y及びZは、3次元空間を示すために使用される。例えば、軸X、Y及びZは、それぞれ、経度、緯度及び高度を示す。便宜上、アクセスポイント126の位置は、図2DにおいてX軸、Y軸及びZ軸上で原点と一致するように示される。いくつかの実施例において、アクセスポイント126の実際の位置(例えば、緯度座標、経度座標及び高度座標)の計算は必須でない。
【0037】
図2Dの各三角形は、3次元空間に配置された移動装置の位置を示す。位置は、3次元空間において平面に投影(例えば、投影226)を有する。平面は、任意の緯度(例えば、アクセスポイント126の緯度)において規定される。例えば平面は、軸X及びYにより規定される。アクセスポイント126は、アクセスポイント126の信号強度及び他の制限要因(例えば、信号路における階、天井、建物)により判定されるサービスエリア空間222に対応する。
【0038】
マルチパス解析は、セル空間202に位置する位置認識移動装置108から受信した位置の集合に基づくWLANのアクセスポイント126と地理空間を関連付ける。マルチパス解析のパスにおいて、平均地理的位置(例えば、空間224の中心)は、例えば集合における位置の緯度座標、経度座標及び高度座標を平均化することで判定される。サービスエリア空間222における平均地理的位置と位置との間の距離が算出される。サービスエリア空間222内にあるが平均地理的位置から十分に遠く離れた位置は、集合及び更なる計算から除外される。空間224の半径は、例えば集合における残りの位置と平均地理的位置との間の最も遠い距離で判定される。
【0039】
システムは、集合における平均地理的位置を算出するステップ、平均地理的位置と集合における位置との間の距離を算出するステップ、及び算出された距離に基づいて集合から位置を除外するステップを繰り返す。終了条件が満たされるまで繰返しは継続する。平均地理的位置における中心及び平均地理的位置と集合における残りの位置との間の距離に基づく半径を有する空間は、アクセスポイント126と関連付けられる存在空間として指定される。
【0040】
図3Aは、位置データベースを管理する例示的な処理300を示すフローチャートである。処理300は、例えばWLANのアクセスポイントと関連付けられた存在エリア又は存在空間を判定するために使用される。存在エリア又は存在空間は、非GPS対応移動装置の位置を判定するために使用される。便宜上、処理300を実現するシステムを参照して処理300を説明する。
【0041】
システムは、アクセスポイント105の通信範囲内に位置する1つ以上の第1の移動装置108から位置の集合を受信する(302)。各位置は、地理座標(例えば、緯度、経度及び高度)の集合により示される。位置は、アクセスポイント105の識別子(例えば、MACアドレス)と関連付けられる。アクセスポイント105がシステムと通信する場合、アクセスポイントの識別子は、アクセスポイント105により自動的に供給される。種々の実施例において、位置の集合は、ある期間(例えば、6時間又はアクセスポイント105が配置されるタイムゾーンの午前6時〜午前10時)に対応する。
【0042】
いくつかの実施例において、ある期間は、一日の異なる時間における特定の使用パターンの特性を反映するように構成される。アクセスポイント105の通信範囲内に移動装置が位置する可能性が最も高い領域は、一日の間に変動し、特定の時間における種々の使用パターンを示す。例えばある期間は、「通勤時間」、「勤務時間」、「夜間」等に対応する。一日の時間の特性は、移動装置108の種々の使用パターンに対応する。例えば、アクセスポイント105と関連付けられた存在エリアは、通勤時間中は高速道路又はその周辺にあり、勤務時間中はオフィスビル又はその周辺にあり、夜間は特に集中点はなく拡散する。システムは、例えば午前4時〜午前10時に受信した位置に基づいて存在エリアを算出し、例えば午前10時〜午後4時に受信した位置に基づいて存在エリアを算出し直す。特徴的な期間の各々において受信した位置は、システムにおいて集合にグループ化される。位置は、サーバに結合された記憶装置上であらゆるデータ構造(例えば、リレーショナルデータベースにおける集合、リスト、アレイ、データレコード等)で格納される。
【0043】
システムは、受信した位置の集合の平均に基づいてアクセスポイント105と関連付けられた地理的位置を判定することができる(304)。地理的位置は、上述したような存在エリア又は存在空間を含む。存在エリア又は存在空間は、例えばアクセスポイント105のMACアドレスによりアクセスポイント105と関連付けられる。いくつかの実施例において、地理的位置を判定することは、各パスにおいて集合から少なくとも1つの位置を除外することを含む受信した位置の集合に対してマルチパスアルゴリズムを適用することを含む。地理的位置を判定することは、定期的にマルチパスアルゴリズムを適用することを含む。
【0044】
システムは、アクセスポイント105のポピュラリティ、地理的位置のスタビリティ及びアクセスポイント105のロンジェビティを含む種々の要因に基づいてアクセスポイント105及びアクセスポイント105と関連付けられた地理的位置を地理グリッド(例えば、地理グリッド100)上のセル(例えば、セル102)に割り当てることができる(306)。いくつかの実施例において、アクセスポイント105のポピュラリティによって、アクセスポイント105の通信範囲内に位置する移動装置108の数を測定することができる。アクセスポイントのポピュラリティは、例えばアクセスポイント105の通信範囲内に存在する移動装置108の位置がある期間においてシステムにより受信される数により測定される。
【0045】
存在エリアがアクセスポイント105の通信範囲内に配置された装置の位置を推定するために使用される場合、アクセスポイント105と関連付けられた存在エリアのスタビリティは、存在エリアの信頼性を反映する。アクセスポイント105と関連付けられた存在エリアのスタビリティは、例えば最後の2つの計算により算出された存在エリアを比較することで測定され、存在エリア間の重複の度合いを判定する。重複の度合いが高いほど、存在エリアはより安定する。
【0046】
アクセスポイント105のロンジェビティは、アクセスポイント105と関連付けられたデータの品質を反映する。例えば、より長い時間データベースにあるアクセスポイントは、最近追加されたアクセスポイントより信頼性が高い。アクセスポイント105のロンジェビティは、位置データベースにおけるデータの履歴により測定される。
【0047】
いくつかの実施例において、データのフレッシュネスは、アクセスポイント105と関連付けられた存在エリアが地理グリッド100のセル102に割り当てられるかを判定するために更に使用される。データのフレッシュネスは、システムがどれくらい前に移動装置108から最新の位置を受信したかにより測定される。
【0048】
システムは、ポピュラリティ、スタビリティ、ロンジェビティ及びフレッシュネスに基づいて地理グリッド100のセル102に配置された各存在エリアをランク付けすることができる。セル102に配置された全ての存在エリアのうちの少なくとも一部(例えば、アクセスポイント105と関連付けられる存在エリアを含む3つの存在エリア)は、セル102に割り当てられる。割り当てられたアクセスポイント及び存在エリアは、アクセスポイント105の通信範囲内に位置する移動装置(例えば、移動装置110)を配置するために使用される。割り当てられない存在エリアは、今後使用するために位置データベースに格納される。
【0049】
システムは、アクセスポイント105と関連付けられた地理的位置をアクセスポイント105の通信範囲内に位置する第2の移動装置(例えば、移動装置110)に提供することができる(308)。システムは、同一のセルに配置された他の地理的位置及び隣接するセルに割り当てられたアクセスポイントと関連付けられた地理的位置を第2の移動装置に更に提供することができる。位置は、種々のプッシュ又はブロードキャスト技術を要求あるいは使用することで、アクセスポイント105から第2の移動装置に伝送される。
【0050】
いくつかの実施例において、システムは、3次元位置情報を受信、処理及び伝送する。存在空間(例えば、存在空間124)は、3次元地理グリッド(例えば、3次元グリッド120)上の3次元セル(例えば、3次元セル122)に割り当てられる。位置は、種々のプッシュ又はブロードキャスト技術を要求又は使用することで、アクセスポイント126からアクセスポイント126の通信範囲内に位置する第2の移動装置に伝送される。
【0051】
図3Bは、位置の集合を使用して平均地理的位置を算出する例示的な処理304を示すフローチャートである。便宜上、処理304を実現するシステムを参照して処理304を説明する。
【0052】
システムは、集合における位置を使用して平均地理的位置を算出することができる(324)。平均地理的位置の算出は、集合における位置の緯度、経度及び高度の平均を算出すること、並びに算出された平均の緯度、経度及び高度における位置を平均地理的位置として指定することを含むことができる。いくつかの実施例において、平均地理的位置の算出は、集合における位置の中緯度、中経度及び中高度における位置を平均地理的位置として指定することを含むことができる。
【0053】
システムは、集合における位置と平均地理的位置との間の距離を算出することができる(326)。いくつかの実施例において、システムは、集合における各位置とユークリッド空間における平均地理的位置との間の直線距離を算出することができる。いくつかの実施例において、システムは、地球の曲率を考慮して集合における各位置と平均地理的位置との間の測地線距離を算出することができる。
【0054】
ステップ326で算出された距離は、中心と関連付けられた半径として指定される。円(例えば、円204a)の中心である中心は、ステップ324で算出された平均地理的位置である。円の半径は、位置の集合における位置と平均地理的位置との間の少なくとも1つの距離に基づいて判定される。いくつかの実施例において、半径は、平均地理的位置と集合に依然として存在する位置との間の最長距離に等しい。いくつかの実施例において、円106dが半径及び中心である平均地理的位置を使用して描画される場合、半径は、円が集合に依然として存在するある割合(例えば、80%)の位置を含む距離である。半径は誤差の範囲を示す。その誤差の範囲を超えると、非GPS対応移動装置の位置の推定値は、統計的に有意義である可能性が低い。
【0055】
システムは、平均位置と位置との間の距離に基づいて集合から少なくとも1つの位置を除外することができる(328)。いくつかの実施例において、システムは、平均地理的位置までの距離が閾値距離を上回る位置を除外する。マルチパス解析の各パスにおいて、システムは、位置の集中(例えば、クラスタ)から離れると考えられる位置を除外することにより、推定された平均地理的位置の精度を向上させることができる。位置のクラスタから離れた位置は、アクセスポイント105と関連付けられた存在エリアを推定するためにあまり有用ではなく、除外される。種々の実施例において、閾値距離は、1つのパスから次のパスに変動しうる。いくつかの実施例において、閾値距離は平均地理的位置までの距離である。閾値距離内において、集合のある割合(例えば、95%)の位置が設けられる。いくつかの実施例において、閾値距離は、パスに対応する距離の集合である(例えば、第1のパスに対して250メートル、第2のパスに対して150メートル等)。平均地理的位置と位置との間の距離が閾値距離を上回る場合、システムは、集合から少なくとも1つの位置を除外することができる。
【0056】
システムは、終了条件が満たされるまでステップ304におけるステップ324、326及び328を繰り返すことができる。システムは、繰返しを終了するための終了条件が満たされるかを判定することができる(330)。いくつかの実施例において、終了条件は、繰返しの回数が閾値回数(例えば、10回)に達したときに満たされる。閾値回数及び除外すべき位置の割合は、確実性(例えば、より広い存在エリアにより、セルにおける移動装置が実際に存在エリアに位置する信頼度が高くなる)と精度(例えば、より狭い存在エリアにより、移動装置のより正確な位置が得られる)とのバランスを微調整するように構成可能である。例えば、割合が95%に設定され、パスの数が10に設定される場合、最終的なパスは、全ての位置データ点の約60%を含む円を生成することができる。
【0057】
いくつかの実施例において、存在エリア又は存在空間が十分に狭い場合に、ステップ330における終了条件が満たされる。移動装置が非常に集中するセルにおいて、存在エリアは、更なるパスが精度を向上させる必要がないほど十分に狭い。円の半径が閾値半径を下回る場合、ステップ324、326及び328の繰返しは終了する。例えば閾値半径は、8〜10メートルである。閾値半径は、受信した集合における位置の分布パターン(例えば、受信した位置データ点の数、位置データ点の密度及びセルにおける集中領域)に基づいてアクセスポイント毎に異なる。
【0058】
システムは、中心である平均地理的位置及び少なくとも1つの算出された距離に基づく半径を有する円として地理的エリアを指定することができる(332)。地理的エリアは、アクセスポイント(例えば、アクセスポイント105)と関連付けられる。サーバは、移動装置の現在位置を算出するために地理的エリア(例えば、中心及び半径)を移動装置に提供することができる。中心は緯度及び経度で示される。距離が3次元空間において算出されるいくつかの実施例において、中心は高度で更に示される。
【0059】
図3Cは、位置データベースを管理する技術を実現する例示的なシステムを示すブロック図である。システムは、1つ以上のプロセッサ、命令を格納する1つ以上のメモリ素子及び他のハードウェアコンポーネント又はソフトウェアコンポーネントを含む。システムは、アクセスポイント(例えば、アクセスポイント105)と関連付けられる存在エリア又は存在空間を判定するために使用される位置特定エンジン350を備える。
【0060】
位置特定エンジン350は、種々のアクセスポイントを介して種々の移動装置からデータを受信するデータ収集モジュール352を備える。データは、1つ以上の位置認識移動装置(例えば、移動装置108)の位置及び移動装置108が接続されるアクセスポイントを示すアクセスポイントの識別子(例えば、アクセスポイント105のMACアドレス)を示す多数のデータ点を含む。いくつかの実施例において、データ点は、移動装置108が位置するタイムゾーンに関する情報を更に含む。データ収集モジュール352は、移動装置108から伝送されたデータを受信するデータ受信モジュール354及びデータ・インデクシング・モジュール356を備える。データ・インデクシング・モジュール356は、受信したデータ点に対して種々の処理を実行する。例えばデータ・インデクシング・モジュール356は、セルIDに基づいて緯度、経度及び高度をソートする。データ・インデクシング・モジュール356は、期間に基づいてデータを集合に更にグループ化する。例えば、受信した位置の新しい集合は、構成可能な期間(例えば、6時間)にわたり作成される。
【0061】
移動装置108の受信した位置の集合は、データ点データベース360に格納される。データ点データベース360は、種々の移動装置108の現在位置及び履歴位置を格納することができる。データ点データベース360は、アドホックデータベース、リレーショナルデータベース、オブジェクト指向データベースを含む。データ点データベース360は、位置特定エンジン350に関連してローカル又はリモートでホストされる。
【0062】
位置計算モジュール364は、データ点データベースにおいてデータ点の集合における平均地理的位置及び平均地理的位置と種々のデータ点の位置との間の距離を算出し、更なる計算のために集合から位置を除外するために利用される。終了条件が特定の集合(例えば、セルIDと関連付けられたデータ点の集合)に到達するまで、位置計算モジュール364は、特定の集合に対する計算を実行する。位置計算モジュール364は、アクセスポイント(例えば、アクセスポイント105)毎に存在エリア又は存在空間を判定する。
【0063】
いくつかの実施例において、位置計算モジュール364は、妥当性チェッカ366を使用して種々の基準及びデータ点の種々のデータに基づいて存在エリア又は存在空間に対する妥当性チェックを実行する。例えば、移動装置108から受信したデータ点は、国識別コード(MCC:Mobile Country Code)及びタイムゾーンの情報を含む。妥当性チェッカ366は、算出された存在エリア又は存在空間をMCCにより示された国に対応する多角形及びタイムゾーンに対応する多角形と比較する。算出された存在エリア又は存在空間が多角形の外側に配置される場合、妥当性チェッカ366は、異常を登録し、アクセスポイントを除外する。
【0064】
位置フィルタリングエンジン368は、存在エリア又は存在空間が現在アクセスポイントの通信範囲内に配置されている移動装置の位置を推定するために使用されるかを判定することができる。位置フィルタリングエンジン368は、地理領域を地理グリッド100のセル102又は3次元グリッド120の3次元セル122に分割することができる。位置フィルタリングエンジン368は、ポピュラリティ、スタビリティ、ロンジェビティ及びフレッシュネスに基づいて存在エリア又は存在空間をランク付けすることができる。位置フィルタリングエンジン368は、各セル102又は3次元セル122に配置されたトップレベルの存在エリア又は存在空間をセル102又は3次元セルに割り当てることができる。
【0065】
存在エリア及び存在空間は、位置の集合の平均の緯度座標、経度座標及び高度座標を有する中心により規定される。存在エリア及び存在空間は、位置の集合における位置から中心までの距離に基づいて判定された半径により更に規定される。存在エリア及び存在空間に対する中心の緯度座標、経度座標及び高度座標、並びに存在エリアの半径及び存在空間の半径は、位置データベース372に格納される。位置データベース372は、割り当てられた存在エリア及び存在空間、並びに割り当てられない存在エリア及び存在空間を全て格納する。割り当てられない存在エリア又は存在空間は、位置計算モジュール364による後続の計算に割り当てられる。位置データベース372は、位置計算モジュール364により定期的に更新される。
【0066】
位置データベース372のデータは、データ配信モジュール376を使用して移動装置に配信される。データ配信モジュール376は、ブロードキャストを介して要求されるか、あるいは移動装置から要求を受信せずに種々のプッシュ技術を使用して、アクセスポイントと関連付けられる割り当てられた存在エリア及び存在空間(例えば、中心座標及び半径)の情報を移動装置(例えば、非GPS対応移動装置110)に送出する。
【0067】
いくつかの実施例において、データ配信モジュール376は、1つの伝送セッションにおいて多数の存在エリア及び存在空間を移動装置に送出することができる。移動装置の通信帯域幅を消費する移動装置への位置伝送の回数を減少するために、データ配信モジュール376は、移動装置110が位置するセルに隣接するセルを配置するために隣接ロケータ380を使用することができる。例えば隣接するセルは、セル及び周囲のセルの全領域がある特定の地理的エリア(例えば、1又は2平方キロメートル)を範囲に含むように移動装置110が位置するセルを取り囲む多くのセルを含む。多数のセル(例えば、400個のセル)と関連付けられた存在エリア及び存在空間に関する情報を移動装置100に送出することにより、移動装置110がセルにわたって移動する場合の伝送の回数が減少する。そのような実施例において、データ配信モジュール376は、移動装置110が前に送出された全てのセルの外に出る場合に移動装置110に更新を送出するだけでよい。
【0068】
<位置データベースを用いて移動装置の位置を判定する処理の例>
図4Aは、無線アクセスポイントの位置を使用して移動装置の位置を判定する技術を示す。移動装置400は、位置を判定するために無線アクセスポイントの位置を使用する例示的な移動装置である。アクセスポイント404を含む通信ネットワークの例示的な部分を示す。
【0069】
移動装置400は、アクセスポイント404aの通信範囲内に位置しうる。移動装置400は、隣接するアクセスポイントの存在エリア又は存在空間(存在エリア406を含む)に関する情報を含むデータをアクセスポイント404aから受信する。移動装置400は、受信したデータを位置データベースに格納する。位置データベースは、移動装置400の記憶装置にホストされうる。格納されたデータは、定期的に、又は要求に応じて、更新されうる。
【0070】
示された例において、移動装置400は、アクセスポイント400aの通信範囲内に位置する。更に移動装置400は、アクセスポイント404b、404c及び404dに対する通信範囲内にある。移動装置400は、WLAN(例えば、IEEE802.11a)において使用された無線通信プロトコル下でアクセスポイント404a、404b、404c及び404dを識別する。アクセスポイント404a、404b、404c及び404dは、アクセスポイントのMACアドレス又は他の識別子(例えば、Bluetooth(登録商標)識別子)により識別される。
【0071】
移動装置400は、それぞれ、アクセスポイント404a〜404dと関連付けられる存在エリア406a、406b、406c及び406dを識別することができる。存在エリア406a〜406dを識別することは、移動装置400に結合されたメモリ素子から存在エリア406a〜406dに関する情報を検索することを含む。いくつかの実施例において、移動装置400は、アクセスポイント404a〜404dの識別子をサーバに送出することにより、サーバから存在エリア406a〜406dを要求することができる。
【0072】
存在エリア406a〜406dに基づいて、移動装置400は、存在エリア406a〜406dに対して反復処理(例えば、マルチパス解析)を実行することができる。反復処理によって、移動装置400の現在の地理的位置の推定位置である地理的エリア402を生成することができる。3次元位置情報が利用される場合、地理的エリア402は地理空間である。移動装置400は、表示装置(例えば、地図ディスプレイ)上に推定された現在位置を表示することができる。
【0073】
図4Bは、位置データベースを使用して移動装置の位置を判定する例示的な処理410を示すフローチャートである。便宜上、処理410を実現する移動装置400を参照して処理410を説明する。
【0074】
移動装置400は、移動装置400が位置する通信範囲内の現在のアクセスポイントを識別することができる(412)。移動装置400は、移動装置400にホストされる位置データベースの更新を要求すべきかを判定するために現在のアクセスポイントを使用することができる。移動装置400にホストされた位置データベースは、以前に移動装置400にダウンロードされたアクセスポイントの記録を含む。移動装置400にホストされた位置データベースにおける記録は、アクセスポイントの識別子(例えば、MACアドレス)及び対応する位置(例えば、緯度座標/経度座標)を含む。
【0075】
ステップ412において、移動装置400は、現在のアクセスポイントが位置データベースの記録に含まれるかを判定することができる。移動装置は、移動装置400が位置する通信範囲内の現在のアクセスポイントの識別子(例えば、MACアドレス)を使用して位置データベースの検索を実行することができる。現在のアクセスポイントが位置データベースの記録に含まれる場合、移動装置は、位置データベースが最新であると判定することができる。現在のアクセスポイントが位置データベースの記録に含まれない場合、移動装置400は、位置データベースの更新が必要であると判定することができる。
【0076】
移動装置400は、現在のアクセスポイントの識別子を使用して移動装置400の位置データベースの更新をサーバから要求することができる(414)。アクセスポイントの識別子及び位置を含む位置データベースにおける記録は、新しいアクセスポイントの新しい識別子及び位置を使用してリフレッシュされる。移動装置400は、現在のアクセスポイントの識別子をサーバに送出することができる。サーバは、地理グリッドにおいてセルを中心セルとして識別することができる。中心セルは、サーバに対して現在のアクセスポイントの識別子と関連付けられた位置を含むセルであり、セル及び隣接するセルにおける全てのアクセスポイント位置を移動装置400に送出することができる。サーバは、中心セルを、隣接セルの位置決めのための始点として使用することができる。中心セルは、その中心セル及びその隣接セルを含むセルのグループのアンカーとなりうるが、その中心セルが、セルのグループの正確な地理的な中心に位置している必要はない。例えば、中心セルが臨海地上のセルであり、隣接セルが全て当該中心セルの片側に配置されることもある。
【0077】
移動装置400は、第2のアクセスポイントと関連付けられた第2の位置の集合を受信することができる(416)。第2のアクセスポイントは、地理グリッド上の中心セル及び中心セルに隣接するセルに配置される。現在のアクセスポイント(例えば、円形領域の中心)と関連付けられた位置は、中心セルに配置される。隣接するセルは、地理グリッド上の中心セルに隣接又は近接して配置されるセルである。隣接するセルの数は、中心セル及び隣接するセルが所定の地理的エリア(例えば、1.5平方キロメートル)を範囲に含むような値を有する。アクセスポイントと関連付けられた位置が中心セル及び隣接するセルが範囲に含む地理的エリア内にある場合、アクセスポイントの識別子及びアクセスポイントと関連付けられた位置は、更新に含まれる。現在のアクセスポイントが位置データベースの記録に含まれない場合に移動装置400上で位置を更新する1つの例示的な利点は、移動装置400がセルからセルに移動する場合に移動装置400が単一のアクセスポイントのサービスエリアと比較して広い領域の外に出るまで更新が必要ないことである。従って、頻繁に更新することが回避され、移動装置400(例えば、帯域幅、CPUサイクル、電池電源)及びサーバ(例えば、移動装置が1つのストリートブロックから次のストリートブロックに移動する場合、サーバは、頻繁に起きる更新を多くの装置に送出する必要はない)双方に対するリソースを節約することができる。
【0078】
移動装置400は、受信したアクセスポイントの位置の集合及び識別子を使用して移動装置400にホストされた位置データベースを更新することができる(418)。更新により、中心セル及び隣接セルによってカバーされる地理的エリアにおいて移動装置400を「中心に置く」ことができる。移動装置400は、自身が中心セルから隣接するセルのうちの1つが範囲に含まないセルに移動するまで別の更新を要求する必要はない。例えば、各セルが約50メートル×50メートルであり、所定の地理的エリアが1.5平方キロメートルである場合、各更新は、約600個のセルを移動装置400の位置データベースに注入する。移動装置が600個のセルが範囲に含む領域の外に出ない限り、移動装置400は別の更新を要求する必要はない。
【0079】
移動装置400は、移動装置400にホストされる位置データベースを使用して移動装置400の現在位置を算出する(420)。計算は、移動装置400により実行された適応マルチパス処理を使用して実行される。図4Cに関連して、マルチパス処理の更なる詳細を以下において説明する。他の要因(例えば、種々のアクセスポイントからの信号強度)が現在位置の計算を支援してよいが、これらの要因は計算には必要ない。
【0080】
移動装置400は、必要に応じて移動装置400の地図表示装置に移動装置400の現在位置を表示することができる(422)。図5に関連して、現在位置の表示例を以下において更に詳細に説明する。
【0081】
図4Cは、移動装置の位置を判定する例示的な適応マルチパス処理430を示すフローチャートである。便宜上、処理430を実現する移動装置400を参照して処理430を説明する。
【0082】
移動装置400は、無線通信ネットワーク(例えば、WLAN)のアクセスポイント(例えば、アクセスポイント404)の識別子を受信することができる(432)。アクセスポイントは、移動装置400の通信範囲内に配置される。識別子は、移動装置400が接続されるかあるいは接続するアクセスポイントと関連付けられる必要はない。例えば、特定の位置において、移動装置400は、3個〜20個のアクセスポイントの通信範囲内にある。移動装置400は、アクセスポイントのうちの2つに接続できるだけでもよい(例えば、アクセスポイント及び移動装置400のセキュリティ設定のために)。移動装置400は、2つのアクセスポイントのうちの一方のみに能動的に接続されるか、又はいずれのアクセスポイントにも接続されない。しかし、移動装置400が受信したアクセスポイントの全ての識別子は、計算に使用される。
【0083】
移動装置400は、移動装置400の位置データベースからアクセスポイントと関連付けられた位置の集合を識別することができる(433)。位置の集合は、アクセスポイントと関連付けられた存在エリア406又は存在空間に対応する。各位置は、地理座標(例えば、緯度、経度及び高度)により示される。各位置は、アクセスポイント404の識別子(例えば、MACアドレス)と関連付けられる。移動装置400は、データベース検索を使用して位置を識別することができる。
【0084】
移動装置400は、集合における位置を使用して平均地理的位置を算出することができる(434)。平均地理的位置の算出は、集合における位置の緯度、経度及び高度の平均を算出すること、並びに算出された平均の緯度、経度及び高度における位置を平均地理的位置として指定することを含みうる。いくつかの実施例においては、平均地理的位置の算出は、集合における位置の中緯度、中経度及び中高度における位置を平均地理的位置として指定することを含む。
【0085】
移動装置400は、集合における位置と平均地理的位置との間の距離を算出することができる(436)。いくつかの実施例において、システムは、集合における各位置とユークリッド空間における平均地理的位置との間の直線距離を算出することができる。いくつかの実施例において、システムは、地球の曲率を考慮して集合における各位置と平均地理的位置との間の測地線距離を算出することができる。
【0086】
ステップ436で算出された距離は、中心と関連付けられた半径として指定される。円(例えば、地理的エリア402を取り囲む円)の中心である中心は、ステップ434で算出された平均地理的位置である。円の半径は、位置の集合における位置と平均地理的位置との間の少なくとも1つの距離に基づいて判定される。いくつかの実施例において、半径は、平均地理的位置と集合に依然として存在する位置との間の最長距離に等しい。いくつかの実施例において、円が半径及び中心である平均地理的位置を使用して描画される場合、半径は、円が集合に依然として存在するある割合(例えば、80%)の位置を含む距離である。半径は誤差の範囲を示す。その誤差の範囲を超えると、非GPS対応移動装置の位置の推定値は、統計的に有意義である可能性が低い。
【0087】
移動装置400は、平均位置と位置との間の距離に基づいて集合から少なくとも1つの位置を除外することができる(438)。いくつかの実施例において、システムは、平均地理的位置までの距離が閾値距離を上回る位置を除外することができる。マルチパス解析の各パスにおいて、システムは、位置の集中(例えば、クラスタ)から離れると考えられる位置を除外することにより、推定された平均地理的位置の精度を向上させることができる。位置のクラスタから離れた位置は、移動装置400の現在位置を推定するためにあまり有用ではなく、除外される。種々の実施例において、閾値距離は、1つのパスから次のパスに変動しうる。例えば閾値距離は、パスに対応する距離の集合である(例えば、第1のパスに対して50メートル、第2のパスに対して30メートル等)。平均地理的位置と位置との間の距離が閾値距離を上回る場合、システムは、集合から少なくとも1つの位置を除外することができる。
【0088】
いくつかの実施例において、移動装置400は、除外される位置の閾値割合を決定することができる。閾値割合は、予め指定された値(例えば、5%)を有することができる。各パスにおいて、移動装置400は、平均地理的位置から遠くにある位置から、閾値割合の位置を除外することができる。
【0089】
移動装置400は、終了条件が満たされるまで処理430のステップ434、436及び438を繰り返すことができる。システムは、繰返しを終了するために終了条件が満たされるかを判定することができる(440)。いくつかの実施例において、終了条件は、繰返しの回数が閾値回数(例えば、5回)に達したときに満たされる。閾値回数は、元々受信した集合における多くの位置に関連する。閾値回数及び除外すべき位置の割合は、確実性(例えば、より広い存在エリアにより、セルにおける移動装置が実際に存在エリアに位置する信頼度が高くなる)と精度(例えば、より狭い存在エリアにより、移動装置のより正確な位置が得られる)とのバランスを微調整するように構成可能である。例えば、割合が95%に設定され、パスの数が10に設定される場合、最終的なパスは、全ての位置データ点の約60%を含む円を生成することができる。
【0090】
いくつかの実施例において、存在エリア又は存在空間が十分に狭い場合、ステップ330の終了条件は満たされる。アクセスポイント404が非常に集中する領域において、推定された現在位置は、更なるパスが精度を向上させる必要がないほど十分に狭い。円の半径が閾値半径を下回る場合、ステップ434、436及び438の繰返しは終了する。例えば閾値半径は、8メートル〜10メートルである。閾値半径は、存在エリア406の半径に基づく。いくつかの実施例において、存在エリア406のいくつかの半径が十分に小さい場合、閾値半径は小さく、推定値に対する信頼度を反映する。
【0091】
移動装置400は、中心である平均地理的位置及び少なくとも1つの算出された距離に基づく半径を有する円を使用して移動装置400の現在位置を指定することができる(442)。中心は緯度及び経度で示される。距離が3次元空間において算出されるいくつかの実施例において、中心は高度で更に示される。いくつかの実施例において、移動装置は、地図ユーザインタフェース上の表示装置に現在位置を更に表示することができる。図5を参照して、例示的な地図ユーザインタフェースを以下において説明する。
【0092】
<移動装置の位置を判定するためのユーザインタフェースの例>
図5は、無線アクセスポイントの位置を使用して移動装置の位置を判定するための例示的なユーザインタフェースを示す。図5において、地理的エリアの例示的な地図502が移動装置500に表示される。いくつかの実施例において、移動装置500は、移動装置500のタッチセンシティブディスプレイ530に地図502を表示することができる。地図502は、ユーザがマッピング及び位置を用いたサービスを表示するために地図オブジェクトを選択する場合に表示される。いくつかの実施例において、地図オブジェクト等のオブジェクトは、音声起動により選択される。検索バー504及びブックマークリストオブジェクト506は、地図502の上部に表示される。検索オブジェクト508、経路オブジェクト510、地図表示オブジェクト512及び現在位置オブジェクト514等の1つ以上の表示オブジェクトが地図の下部の下に表示される。
【0093】
検索バー504は、地図上の住所又は他の位置を見つけるために使用される。例えば、ユーザが検索バー504に自宅の住所を入力すると、住所を含む領域が地図502に表示される。例えばブックマークリストオブジェクト506は、ユーザの自宅の住所等の頻繁に訪問する住所を含むブックマークリストを画面に表示させる。例えばブックマークリストは、現在位置(例えば、移動装置500の現在位置)等の特殊なブックマークを更に含むことができる。
【0094】
検索オブジェクト508は、検索バー504及び他の地図に関連した検索メニューを表示するために使用される。例えば経路オブジェクト510は、ユーザが出発地及び目的地を入力できるようにするメニューインタフェースを画面に表示させる。次にインタフェースは、情報(例えば、出発地から目的地までの経路の方向及び移動時間)を表示する。地図表示オブジェクト512は、ユーザが地図502に対する表示オプションを選択できるようにするメニューを画面に表示させる。例えば、地図502は白黒からカラーに変更され、地図の背景が変更され、あるいは、ユーザは地図の輝度を変更することができる。
【0095】
現在位置オブジェクト514により、ユーザは、移動装置500が現在配置されている場所を示す地図502上の地理的エリア516を確認できる。地理的エリア516は、中心が移動装置500の通信範囲内にあるアクセスポイントと関連付けられたデータ点の平均地理的位置である推定地理的エリア(例えば、地理的エリア402)に対応する。地理的エリアの半径は、平均地理的位置とアクセスポイントと関連付けられた1つ以上の位置との間の距離に基づいて判定される。特殊な現在位置のブックマークは、現在位置オブジェクト514が選択される際にブックマークリストに置かれる。特殊な現在位置のブックマークが事前にブックマークリストに設定された場合、例えば古いブックマーク情報は、新しい現在位置情報で置換される。いくつかの実施例において、特殊な現在位置のブックマークは、地理的エリア516の重心と結び付けられる。すなわち、特殊な現在位置のブックマークは、地理的エリア516の重心に対する座標を含む。地理的エリア516は、移動装置500のメモリ素子に格納された位置命令を使用して判定又は推定された位置データに基づく。例えば地理的エリア516は、円、長方形、正方形、六角形又は丸十字、あるいは地理的エリア516と地図502とを区別する他の何らかの特徴的な要素で示される。
【0096】
いくつかの実施例において、地理的エリア516は、移動装置500が位置すると判定又は推定される領域を含み、移動装置500の実際の現在位置上の中心に置かれる必要はない。この例において、移動装置500は、地理的エリア内で中心から外れて位置する。別の例において、地理的エリア516は、移動装置500の推定された現在位置上の中心に置かれる。
【0097】
現在位置オブジェクト514がタップ又は別の方法で選択される場合、例えば移動装置500は、地理的エリア516上で地図表示を中心に置く。いくつかの実施例において、地図のズームレベルは、位置データの正確度又は精度、あるいは位置データを提供した技術、システム又はサービスに基づいて調整される。例えば、移動装置500がより低い正確度のためにGPS信号を受信できず、位置を判定するためにアクセスポイントデータを使用する場合、地図は縮小される。移動装置500が現在位置を判定するためにGPS位置データを使用できる場合、より高い正確度のために地図は拡大される。いくつかの実施例において、ズームレベルは、移動装置500の速さに基づく(例えば地図は、より速い速さで縮小され、移動装置500が移動していない場合に拡大される)。正確度又は精度と速さとの組合せが更に使用される。
【0098】
位置情報データを検索する全ての方法が失敗し(例えば、移動装置500があらゆるアクセスポイントの通信範囲内にない場合又は移動装置500が接続されるあらゆるアクセスポイントと存在エリアが関連付けられないことを妥当性チェッカ366が判定する場合)、移動装置500の現在位置を判定又は推定するために使用可能な他のシステム又はサービスがない場合、ユーザに対してエラーが表示され、地理的エリアが地図502に表示されない。例えばエラーは、失敗及び考えられる1つ又は複数の失敗の理由を通知するユーザに対するメッセージを含むことができる。
【0099】
例えば現在位置オブジェクト514は、地図502上で地理的エリア516を推定及び表示することを起動するか、推定された現在位置(すなわち、地理的エリア516の重心)に対する経路を取得するか、移動装置500の推定された現在位置を友人に送出するか(例えば、友人が同一の位置に行けるように)、あるいは推定された現在位置に対するブックマークを作成するために選択される。
【0100】
<システムアーキテクチャの例>
図6は、図1〜図5を参照して説明する機能及び動作を実現する例示的なシステムアーキテクチャ600を示すブロック図である。より多くの構成要素又はより少ない構成要素を有するアーキテクチャを含む他のアーキテクチャが可能である。いくつかの実施例において、アーキテクチャ600は、1つ以上のプロセッサ602(例えば、デュアルコアインテルXeonプロセッサ)、1つ以上の出力装置604(例えば、LCD)、1つ以上のネットワークインタフェース606、1つ以上の入力装置608(例えば、マウス、キーボード、タッチセンシティブディスプレイ)及び1つ以上のコンピュータ可読媒体612(例えば、RAM、ROM、SDRAM、ハードディスク、光ディスク、フラッシュメモリ等)を備える。これらの構成要素は、データの転送及び構成要素間の信号の制御を容易にするために種々のハードウェア及びソフトウェアを利用する1つ以上の通信チャネル610(例えば、バス)を介して通信及びデータを交換する。
【0101】
「コンピュータ可読媒体」という用語は、実行するために命令をプロセッサ602に提供することに関係する不揮発性媒体(例えば、光ディスク又は磁気ディスク)、揮発性媒体(例えば、メモリ)及び伝送媒体を含むがそれらに限定されないあらゆる媒体を示す。伝送媒体は、同軸ケーブル、銅線及び光ファイバを含むがそれらに限定されない。
【0102】
図1〜図5を参照して説明したように、コンピュータ可読媒体612は、オペレーティングシステム614(例えば、Mac OS(登録商標)サーバ、Windows(登録商標)NTサーバ)、ネットワーク通信モジュール616、データベースインタフェース620、データ収集モジュール630、データ配信モジュール640及び位置計算モジュール650を更に備える。オペレーティングシステム614は、マルチユーザ、マルチプロセシング、マルチタスキング、マルチリーディング、リアルタイム等である。オペレーティングシステム614は、装置606、608からの入力を認識し、出力を装置606、608に提供すること、コンピュータ可読媒体612(例えば、メモリ又は記憶装置)上でファイル及び経路を追跡し、管理すること、周辺装置を制御すること、並びに1つ以上の通信チャネル610上のトラフィックを管理することを含むがそれらに限定されない基本タスクを実行する。ネットワーク通信モジュール616は、ネットワーク接続を確立及び維持する種々の構成要素(例えば、TCP/IP、HTTP等の通信プロトコルを実現するソフトウェア)を含む。データベースインタフェース620は、ファイルシステムに1つ以上のデータベース(例えば、データ点データベース360及び位置データベース372)に対するインタフェースを含む。データベースは、階層フォルダ構造下で編成される。フォルダは、ファイルシステムにおいて経路にマッピングする。データ収集モジュール630は、アクセスポイント又は他の通信チャネル(例えば、セルラネットワーク)を介してシステム600に無線接続された多数の移動装置からデータを収集する構成要素を含む。データ配信モジュール640は、無線通信ネットワークのアクセスポイントと関連付けられた位置データを移動装置108及び110を含むコンピューティング装置に伝送する種々の機能を実行する。位置計算モジュール650は、移動装置108から受信した位置に対してマルチパス解析を実行する1つ以上の構成要素を含む。
【0103】
アーキテクチャ600は、データベースアプリケーションプログラムをホストできるあらゆる装置に含まれる。アーキテクチャ600は、並行処理又はピアツーピアインフラストラクチャにおいて、あるいは1つ以上のプロセッサを備える単一の装置上で実現される。ソフトウェアは、多数のソフトウェアコンポーネントを含むか、あるいはコードの単一のボディーである。
【0104】
説明した機能は、データ記憶システムに対してデータ及び命令を送受信するように結合された少なくとも1つのプログラム可能なプロセッサ、少なくとも1つの入力装置、並びに少なくとも1つの出力装置を備えるプログラム可能なシステム上で実行可能な1つ以上のコンピュータプログラムにおいて有利に実現される。コンピュータプログラムは、ある特定の動作を実行するかあるいはある特定の結果をもたらすためにコンピュータにおいて直接又は間接的に使用される命令の集合である。コンピュータプログラムは、コンパイル又は解釈された言語を含むあらゆる形態のプログラミング言語(例えば、オブジェクティブC、Java(登録商標))で書かれ、スタンドアロンプログラム、あるいはモジュール、構成要素、サブルーチン、ブラウザベースのウェブアプリケーション又はコンピューティング環境において使用するのに適した他のユニットのようなものを含むあらゆる形態で展開される。
【0105】
命令のプログラムを実行するのに適したプロセッサは、例として、あらゆる種類のコンピュータの汎用マイクロプロセッサと専用マイクロプロセッサの双方及び単独のプロセッサ、あるいは多数のプロセッサ又はコアのうちの1つを備える。一般にプロセッサは、読み出し専用メモリ又はランダムアクセスメモリ、あるいはそれら双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサ、並びに命令及びデータを格納する1つ以上のメモリである。一般にコンピュータは、データファイルを格納する1つ以上の大容量記憶装置を更に備えるか、あるいはそのような装置と通信するように動作可能に結合される。そのような装置は、内部のハードディスク及び取り外し可能ディスク等の磁気ディスク、光磁気ディスク、並びに光ディスクを含む。コンピュータプログラムの命令及びデータを明白に具体化するのに適した記憶装置は、例としてEPROM素子、EEPROM素子及びフラッシュメモリ素子等の半導体メモリ素子、内部のハードディスク及び取り外し可能ディスク等の磁気ディスク、光磁気ディスク、並びにCD−ROMディスク及びDVD−ROMディスクを含む全ての形態の不揮発性メモリを含む。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)により補足されるか、あるいはASICに組み込まれる。
【0106】
ユーザとの対話を提供するために、機能は、ユーザに対して情報を表示するCRT(ブラウン管)モニタ又はLCD(液晶ディスプレイ)モニタ等の表示装置、並びにユーザがコンピュータに入力を提供するキーボード及びマウス又はトラックボール等のポインティング装置を有するコンピュータ上で実現される。
【0107】
機能は、データサーバ等のバックエンドコンポーネントを備えるコンピュータシステム、あるいはアプリケーションサーバ又はインターネットサーバ等のミドルウェアコンポーネントを備えるコンピュータシステム、あるいはグラフィカルユーザインタフェース又はインターネットブラウザを有するクライアントコンピュータ等のフロントエンドコンポーネントを備えるコンピュータシステム、あるいはそれらのあらゆる組合せにおいて実現される。システムのコンポーネントは、通信ネットワーク等のあらゆる形態又は媒体のデジタルデータ通信により接続される。通信ネットワークの例には、LAN、WAN、並びにインターネットを形成するコンピュータ及びネットワーク等が含まれる。
【0108】
コンピュータシステムは、クライアント及びサーバを含む。クライアント及びサーバは、一般に、互いに離れ、ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行し且つ互いにクライアント−サーバ関係を有するコンピュータプログラムにより生じる。
【0109】
<移動装置のアーキテクチャの例>
図7は、移動装置の例示的なアーキテクチャ700を示すブロック図である。例えば移動装置は、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント、携帯電話、電子タブレット、ネットワーク機器、カメラ、スマートフォン、EGPRS(enhanced general packet radio service)移動電話、ネットワーク基地局、メディアプレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、あるいはこれらのデータ処理装置又は他のデータ処理装置のうちのいずれか2つ以上の組合せである。
【0110】
移動装置は、メモリインタフェース702、1つ以上のデータプロセッサ、画像プロセッサ及び/又は中央処理装置704、並びに周辺インタフェース706を備える。メモリインタフェース702、1つ以上のプロセッサ704及び/又は周辺インタフェース706は、別個の構成要素であるか、あるいは1つ以上の集積回路に内蔵される。移動装置の種々の構成要素は、1つ以上の通信バス又は信号線で結合される。
【0111】
センサ、装置及びサブシステムは、周辺インタフェース706に結合され、多数の機能性を容易にする。例えば、モーションセンサ710、光センサ712及び近接センサ714は、周辺インタフェース706に結合され、移動装置の姿勢機能、照明機能及び近接機能を容易にする。位置特定プロセッサ715(例えば、GPS受信機)は、周辺インタフェース706に接続され、無線位置測定を実行する。電磁力計716(例えば、集積回路チップ)は、周辺インタフェース706に更に接続され、磁北の方向を判定するために使用されるデータを提供する。
【0112】
カメラサブシステム720、並びに電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサ等の光学センサ722は、例えば写真及びビデオクリップを記録するカメラ機能を容易にするために利用される。
【0113】
通信機能は、無線周波数送受信機及び/又は光(例えば、赤外線)送受信機を備える1つ以上の通信サブシステム724により容易になる。通信サブシステム724の特定の設計及び実施例は、通信ネットワークに依存する。移動装置は、通信ネットワークを介して動作することを意図する。例えば移動装置は、GSM(登録商標)ネットワーク、GPRSネットワーク、EDGEネットワーク、WiFiネットワーク又はWiMaxネットワーク及びBluetoothネットワークを介して動作するように設計された通信サブシステム724を含む。特に、無線通信サブシステム724は、装置が他の無線装置に対する基地局として構成されるようにホスティングプロトコルを含む。
【0114】
オーディオサブシステム726は、スピーカ728及びマイク730に結合され、音声認識機能、音声複製機能、デジタル記録機能及び電話機能等の音声機能を容易にする。
【0115】
I/Oサブシステム740は、タッチスクリーンコントローラ742及び/又は他の入力コントローラ744を備える。タッチスクリーンコントローラ742は、タッチスクリーン746又はタッチパッドに結合される。例えば、タッチスクリーン746及びタッチスクリーンコントローラ742は、容量性、抵抗性、赤外線及び表面弾性波の技術を含むがそれらに限定されない複数のタッチセンシティブ技術のうちのいずれか、並びにタッチスクリーン746との1つ以上の接触点を判定する他の近接センサアレイ又は他の要素を使用してそれらの接触及び動き又は中止を検出する。
【0116】
他の入力コントローラ744は、他の入力/制御装置748、例えば1つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、USBポート及び/又はスタイラス等のポインタ装置に結合される。1つ以上のボタン(不図示)は、スピーカ728及び/又はマイク730の音量調節のためのアップ/ダウンボタンを含む。
【0117】
一実施例において、第1の期間中ボタンを押下することでタッチスクリーン746のロックを解除し、第1の期間より長い第2の期間中ボタンを押下することで移動装置の電源をon又はoffする。ユーザは、1つ以上のボタンの機能性をカスタマイズできる。例えばタッチスクリーン746は、仮想ボタン又はソフトボタン、並びに/あるいはキーボードを実現するために更に使用される。
【0118】
いくつかの実施例において、移動装置は、MP3ファイル、AACファイル及びMPEGファイル等の記録されたオーディオファイル及び/又はビデオファイルを提示する。いくつかの実施例において、移動装置は、iPod(登録商標)等のMP3プレーヤの機能性を含む。従って、移動装置は、iPodと互換性のあるピンコネクタを含む。他の入出力装置及び制御装置も使用できる。
【0119】
メモリインタフェース702はメモリ750に結合される。メモリ750は、1つ以上の磁気ディスク記憶装置、1つ以上の光記憶装置及び/又はフラッシュメモリ(例えば、NAND、NOR)等の高速ランダムアクセスメモリ及び/又は不揮発性メモリを含む。メモリ750は、Darwin、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X、WINDOWS(登録商標)等のオペレーティングシステム752又はVxWorks等の組み込みオペレーティングシステムを格納する。オペレーティングシステム752は、基本システムサービスを処理する命令及びハードウェア依存タスクを実行する命令を含む。いくつかの実施例において、オペレーティングシステム752はカーネル(例えば、UNIXカーネル)を含む。
【0120】
メモリ750は、通信命令754を更に格納し、1つ以上の追加装置、1つ以上のコンピュータ及び/又は1つ以上のサーバとの通信を容易にする。メモリ750は、グラフィックユーザインタフェース処理を容易にするためのグラフィカルユーザインタフェース命令756、センサに関連する処理及び機能を容易にするためのセンサ処理命令758、電話に関連する処理及び機能を容易にするための電話命令760、電子メッセージングに関連する処理及び機能を容易にするための電子メッセージング命令762、ウェブ閲覧に関連する処理及び機能を容易にするためのウェブ閲覧命令764、メディア処理に関連する処理及び機能を容易にするためのメディア処理命令766、GPS及びナビゲーションに関連する処理及び機能を容易にするためのGPS/ナビゲーション命令768、カメラに関連する処理及び機能を容易にするためのカメラ命令770、磁力計の校正を容易にするための磁力計データ772及び校正命令774を含む。メモリ750は、現在位置をアクセスポイントに伝送し、移動装置が通信範囲内にあるアクセスポイントと関連付けられた位置データに基づいて推定された現在位置を判定するために使用される位置命令776を含む。メモリ750は、セキュリティ命令等の他のソフトウェア命令(不図示)、ウェブビデオに関連する処理及び機能を容易にするためのウェブビデオ命令、並びに/あるいはウェブショッピングに関連する処理及び機能を容易にするためのウェブショッピング命令を更に格納する。いくつかの実施例において、メディア処理命令766は、それぞれ、オーディオ処理に関連する処理及び機能を容易にするためのオーディ処理命令、並びにビデオ処理に関連する処理及び機能を容易にするためのビデオ処理命令に分類される。活性化レコード及び国際移動体装置識別番号(IMEI)等のハードウェア識別子は、メモリ750に更に格納される。
【0121】
先に識別された命令及びアプリケーションの各々は、上述の1つ以上の機能を実行する命令の集合に対応する。これらの命令は、別個のソフトウェアのプログラム、手順又はモジュールとして実現される必要はない。メモリ750は、更なる命令又はより少ない命令を含む。また、移動装置の種々の機能は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含むハードウェア及び/又はソフトウェアで実現される。
【0122】
本発明の種々の実施例を説明したが、本発明の主旨の範囲から逸脱することなしに種々の変形を行うことができることは理解されよう。例えば、位置認識装置はGPS対応と呼ばれる。また、位置認識移動装置は、三角法又は他の技術に基づくことができる。図面においては、セルは略矩形形状で示されたが、セルの実際の形状は変動しうる。位置は「円」で示されたが、本明細書において使用された「円」という用語は、完全に円形である必要はなく、閉じられているかあるいはエンクロージャの外形を有するあらゆる幾何学的形状(例えば、楕円、正方形、凸多角形又は凹多角形、あるいは自由型形状)を含む。完全に円形ではない幾何学的形状の半径は、幾何学的形状の境界上の種々の点と幾何学的形状の中心との間の平均距離を含む。WiFi、WiMaxネットワークは、例として使用したものであり、他の無線技術(例えば、セルラネットワーク)を使用してもよい。従って、他の実施例も、以下の特許請求の範囲の範疇に含まれる。
【特許請求の範囲】
【請求項1】
移動装置によって実行される方法であって、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、を有し、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記方法は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を有することを特徴とする方法。
【請求項2】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項2に記載の方法。
【請求項5】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項2に記載の方法。
【請求項6】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項2に記載の方法。
【請求項7】
前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に有することを特徴とする請求項1に記載の方法。
【請求項8】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項1に記載の方法。
【請求項9】
移動装置を含むシステムであって、
前記移動装置は、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、含む処理を実行するように構成され、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記移動装置は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を含む処理を実行するように構成されることを特徴とするシステム。
【請求項10】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項9に記載のシステム。
【請求項11】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項10に記載のシステム。
【請求項12】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項10に記載のシステム。
【請求項13】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項10に記載のシステム。
【請求項14】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項10に記載のシステム。
【請求項15】
前記処理は、前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に含むことを特徴とする請求項9に記載のシステム。
【請求項16】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項9に記載のシステム。
【請求項17】
移動装置に方法を実行させるためのプログラムであって、前記方法は、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、を含み、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記方法は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を有することを特徴とするプログラム。
【請求項18】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項17に記載のプログラム。
【請求項19】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項18に記載のプログラム。
【請求項20】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項18に記載のプログラム。
【請求項21】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項18に記載のプログラム。
【請求項22】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項18に記載のプログラム。
【請求項23】
前記方法は、前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に有することを特徴とする請求項17に記載のプログラム。
【請求項24】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項17に記載のプログラム。
【請求項1】
移動装置によって実行される方法であって、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、を有し、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記方法は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を有することを特徴とする方法。
【請求項2】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項2に記載の方法。
【請求項5】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項2に記載の方法。
【請求項6】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項2に記載の方法。
【請求項7】
前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に有することを特徴とする請求項1に記載の方法。
【請求項8】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項1に記載の方法。
【請求項9】
移動装置を含むシステムであって、
前記移動装置は、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、含む処理を実行するように構成され、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記移動装置は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を含む処理を実行するように構成されることを特徴とするシステム。
【請求項10】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項9に記載のシステム。
【請求項11】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項10に記載のシステム。
【請求項12】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項10に記載のシステム。
【請求項13】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項10に記載のシステム。
【請求項14】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項10に記載のシステム。
【請求項15】
前記処理は、前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に含むことを特徴とする請求項9に記載のシステム。
【請求項16】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項9に記載のシステム。
【請求項17】
移動装置に方法を実行させるためのプログラムであって、前記方法は、
前記移動装置が位置する通信範囲内の現在のアクセスポイントを識別するステップと、
サーバから、前記移動装置の位置データベースであって第1のアクセスポイントに関連付けられた第1の位置を記憶する位置データベースの更新を、前記現在のアクセスポイントの識別子を用いて要求するステップと、
第2のアクセスポイントに関連付けられた第2の位置の集合を受信するステップと、を含み、前記第2の位置は、地理的グリッドの中心セル及び該地理的グリッドの該中心セルに隣接するセルに分布し、前記現在のアクセスポイントは、前記中心セル内の位置に対応し、前記中心セル及び該中心セルに隣接するセルは所定の地理的エリアをカバーしており、
前記方法は更に、
前記受信した位置の集合を用いて前記位置データベースを更新するステップと、
前記位置データベースを用いて前記移動装置の現在位置を計算するステップと、
を有することを特徴とするプログラム。
【請求項18】
前記位置データベースを用いて前記移動装置の現在位置を計算するステップは、
(a)前記移動装置の通信範囲内にあるアクセスポイントの識別子を受信するステップと、
(b)前記移動装置の前記位置データベースから、前記アクセスポイントに関連付けられた第3の位置の集合を識別するステップと、
(c)前記第3の位置の集合を用いて平均地理的位置を計算するステップと、
(d)前記平均地理的位置と前記第3の位置の集合における各位置との間の距離を計算するステップと、
(e)前記平均地理的位置と前記第3の位置のうちの少なくとも1つとの間の距離に基づいて、前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップと、
(f)終了条件が満たされるまで、ステップ(c)、(d)、(e)を繰り返すステップと、
(g)前記平均地理的位置を中心とし、少なくとも1つの前記算出された距離に基づく半径に有する円を用いて、前記移動装置の前記現在位置を指定するステップと、
を含むことを特徴とする請求項17に記載のプログラム。
【請求項19】
前記第3の位置のうちの当該少なくとも1つを前記第3の位置の集合から除外するステップは、
前記第3の位置の集合から除外する閾値割合を決定するステップと、
前記平均地理的位置から遠くに位置するものから、前記閾値割合の前記第3の位置を除外するステップと、
を含むことを特徴とする請求項18に記載のプログラム。
【請求項20】
前記終了条件は、前記繰返しの回数が閾値回数に達したときに満たされることを特徴とする請求項18に記載のプログラム。
【請求項21】
前記終了条件は、前記円の前記半径が閾値半径を下回ったときに満たされることを特徴とする請求項18に記載のプログラム。
【請求項22】
前記第3の位置の集合における各第3の位置は、緯度、経度、高度を含むことを特徴とする請求項18に記載のプログラム。
【請求項23】
前記方法は、前記移動装置の前記現在位置を、前記移動装置の地図表示装置に表示するステップを更に有することを特徴とする請求項17に記載のプログラム。
【請求項24】
前記アクセスポイントの前記識別子は、当該アクセスポイントのメディアアクセス制御(MAC)アドレスを含むことを特徴とする請求項17に記載のプログラム。
【図1A】
【図1B】
【図2A】
【図2B】
【図2C】
【図2D】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【図1B】
【図2A】
【図2B】
【図2C】
【図2D】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図5】
【図6】
【図7】
【公表番号】特表2013−517697(P2013−517697A)
【公表日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2012−549086(P2012−549086)
【出願日】平成23年1月13日(2011.1.13)
【国際出願番号】PCT/US2011/021172
【国際公開番号】WO2011/088233
【国際公開日】平成23年7月21日(2011.7.21)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公表日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願日】平成23年1月13日(2011.1.13)
【国際出願番号】PCT/US2011/021172
【国際公開番号】WO2011/088233
【国際公開日】平成23年7月21日(2011.7.21)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]