はじめに
近ごろではGPSレシーバを搭載したモバイル機器をあちこちで見かけるようになっています。GPSレシーバを使用すると、地球を周回している多数の人工衛星によって自分の正確な現在位置を簡単に知ることができます。ただし、GPSレシーバが正しく働くためには、GPS信号の受信可能範囲にいることが必要です。そのため、GPSレシーバは正しく動作しない場合もありますし、屋内ではまったく機能しません。
自分の位置を知るもう1つの効果的な方法として、携帯電話のアンテナ塔による三角測量があります。待ち受け状態になっている携帯電話は、範囲内にある基地局とずっと連絡をとり続けています。それらのアンテナ塔のIDが分かれば、アンテナ塔のIDと正確な地理的位置が記録されている種々のデータベースを使って携帯電話の物理的な位置を割り出すことができます。GPSとは異なり、アンテナ塔三角測量は衛星を使わないので、室内でも有効です。ただし、この方法で割り出した位置の精度は、自分がいるエリア内のアンテナ塔どうしの間隔に左右されるので、GPSほど正確ではありません。この方法はアンテナ塔が密に配置されているエリアで最もうまく働きます。
第1世代のiPhoneにはGPSレシーバは搭載されていませんでした。また、iPod touchは携帯電話ではないので、iPod touchにはアンテナ塔三角測量は適用されません。
そのほかに、Wi-Fi三角測量を利用するという第3の方法があります。この方法では、機器がWi-Fiネットワークに接続し、データベースでサービスプロバイダを調べ、そのプロバイダがサービスを提供している位置を特定します。この方法は三角測量も衛星も必要としないので、機器がWi-Fiネットワークに接続できる限りはうまく働きますが、3つの方法のうちで最も精度が劣ります。
Core Locationフレームワーク
iPhoneでは、Appleが提供するCore Locationフレームワークを使用して自分の物理的な位置を知ることができます。このフレームワークの優れた点は、上述した3つの方法をすべて利用することにあります。フレームワークを使用する側は、実際にどの方法がいつ使われるかをまったく気にする必要がありません。単に必要とする精度を指定すれば、望みの結果を得るために最適な方法がCore Locationによって判別されます。
なかなかすごいフレームワークだと思いませんか? 次ページから、実際のコーディング方法を見ていきます。