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