GPS on iPhone 3G

iPhoneのGPS機能について。

iPhoneはGPSアンテナとチップ(メーカー不明)を内蔵していて、マップ、カメラ、メールなどで位置情報を扱う事ができます。
昔、GPSをベースに地図/カメラ/メールを組み合わせたハード/サービスをやっていた身としては気になる気になる。

当時のGPSは意図的にランダムな誤差が加えられていて、正確な位置取得をできるのが米軍だけという状況でした。まだ東西冷戦が完全には終わっておらず、仮想敵国に正確な位置情報取得機能を渡してなるものかということですね。
そこでその誤差を打ち消す為の技術としてD-GPS(ディファレンスGPS)というものが考案されました。正確な位置が判っている場所で測定したGPSデータと、GPS装置が受信したGPSデータを突き合わせることで、誤差を帳消しにし正確な位置を算出しようというものです。

が、それも冷戦の終結と共に、クリントン大統領令(当時)が出され、意図的な誤差を付加することは廃止されました。そのためわざわざD-GPSを使わなくとも一般的な使用に関しては十分な精度が出るようになったんですね。

ただそれでも問題として残ったのがTTFFの問題。
GPS受信装置が初めて衛星からのGPSデータを受信する場合、前回の位置測定時から長い時間が経過した場合などはGPS受信装置は天空のどこにGPS衛星がいるのか判らないため全天空を走査しなければなりません。
(GPS衛星といっても一つだけの衛星ではなく、常時25〜30機のGPS衛星が地球軌道を回っていて(←米国のGPSの場合)、そのうち最低でも3つ、普通は4つの衛星を捕捉しないと位置情報は算出できません)
そのため最初の時だけは位置測定に非常に長い時間がかかり、その測位時間のことをTTFF(Time To First Fix)と呼びます。

iPhoneではA-GPS(アシステッドGPS)という技術が使われています。
これは携帯電話の基地局や無線LANの基地局からの電波とその基地局の位置情報をもとに、ある程度の誤差(数十〜数百m)を含んだ現在位置を算出し、そのおおよその現在位置と現在の時刻を基にGPS衛星のおおよその位置を算出することで、最初の全天走査を不要にしGPSの位置取得を短縮することを可能にするものです。
携帯電話は基地局とは定期的に通信していますし、通常複数の基地局からの電波を受信しています。
電波は距離が離れればある割合によって減衰していきますから、複数の基地局の電波を受信しその減衰量をみればおおよその距離が判り、後は三角測量の原理で現在位置が取得できるワケです。

さて、うちのiPhone。買って来てまっさきにしたのがGPSをオフにすること。知らぬまに測位されていたら困るから。あ、普通は困りませんね。ボクの場合は後でやりたいことがあったのでオフにしました。

今日の夕方、友人と飯を食いながらiPhoneを見せびらかそうと六本木まで行ったのですが、その前にまずは近所の芝公園で最初の測位。
設定画面から位置情報をオンにし、メイン画面に戻ってマップを呼び出し、位置検出を始めると・・・
おおおっっ!! 速い!
以前のように数分以上なんてことはないだろうけど、でも1分近くはかかるだろうと思ったのですが、ほぼ瞬時に現在地付近の地図がダウンロードされ位置範囲を示す丸い円がどんどん絞り込まれていく!
最終的にFixするまで10秒くらい(あまりに予想外の出来事で正確な時間は計れなかった)

その後、首都高沿いに六本木までてくてく歩きながら測位し続けたんですが、ほぼ追従してきましたね。ちゃんと道のこっち側にいるのかあっち側なのか判別できていましたし。(これ、大事。特に都会では道の反対側とこっち側ではまるで違う。タクシー呼ぶ時だってどっち側にいるか教えないといけないし)

新一の橋で高速のジャンクション下に入り天空が見えなくなると途端に精度が劣化。あぁ、GPSだなぁと実感する瞬間ですね。

いやぁもうヒューマンナビとして充分使えるレベルですね、これは。予想以上に素晴らしい実装でした。

ただ位置情報を活用したアプリを作るのはいろいろ障害がありそうですね。位置情報というのは相当にセンシティブな個人情報ですので、アップルとしてもiPhoneの位置情報機能を第三者が悪用する事のないようにいろんな制限を加えているだろうと思いますし。
このエントリーをはてなブックマークに追加