何番煎じだ。iPhone での位置情報取得javascriptのメモ

iPhoneの位置情報取得について調べる機会があったので、メモしておく。

iPhone OS 3.0 のsafariで、GPSが取得できるようになった。

とのこと。

さっそく、取得するコードを書いてみましょう。


iPhoneの位置情報取得コードは、日本のガラケーみたいに、変なタグを書く必要はないです。

W3C準拠のAPIを使用する

世界標準で用意されているといいですね。
W3C の Geolocation API の仕様に準拠してます。

navigator.geolocation.watchPosition() を使う

※サンプル

function getLocation(pos) { 
    console.log("lat : " + pos.coords.latitude + "long : " + pos.coords.longitude + "accuracy : " + pos.coords.accuracy);
}
 
function catchErr(a) {
    console.log(" error: " + a.code);
 
}
 
var init = function(){
   navigator.geolocation.watchPosition(getLocation, catchErr)
};

init();

navigator.geolocation.watchPosition(getLocation, catchErr)

この一行で位置情報とってこれます。
watchPosition は現在の位置情報を連続取得し続けるメソッドですね。


このメソッドの callback 関数の引数(今回の場合は、"pos")に、位置情報が入ってきます。



ちなみにこのメソッドは連続して呼ばれるので、もし地図などを表示したい場合は、

初回呼び出しのみ地図表示

のような処理を書かないと、地図が永遠に生成され続けます。



数回位置情報を取得して、不正対策や位置補正なんかもできるかな。


経路探索やその他色々な使い道がありそう。