GeoLocation API で移動距離の計算

GeoLocation API で移動距離の計算

GeoLocationAPIは、端末の現在位置を取得するAPI

緯度経度以外に、端末によっては
高度、速度などの取得も可能

位置情報の取得は
たいていはGPSか最寄りの基地局の位置になる

位置情報は、現在位置の表示
移動距離の計算
移動中のルート表示など用途はたくさんある

GeoLocationAPIは、jQueryMobileでは非対応のため
ブラウザーが提供するJavascriptのAPIを使う

位置情報を取得するには
navigator.geolocation.getCurrentPosition()を使う

getCurrentPosition()は
位置情報取得成功時のコールバック関数のonSuccess
位置情報取得失敗時のコールバック関数のonError
位置情報オプションの
options
を引数にとる

navigator.geolocation.getCurrentPosition(onSuccess,onError,options);

となる

具体的には

navigator.geolocation.getCurrentPosition(function(pos){
alert("latitude:"+pos.coords.latitude+","+"longitude:"+pos.coords.longitude);
},function(e){
alert(e.message);
},
{"enableHighAccuracy":true});

こうすれば、成功したなら
アラートで緯度経度を表示

失敗ならエラーメッセージを表示する

getCurrentPosition()が
コールバック関数で値を取得しているのは
位置情報取得処理が非同期処理のため

このため、successのときの処理で取得した位置情報を変数へ格納して
getCurrentPosition()の前後で参照すふようなことはできない

onSuccessのときの引数のposは
位置情報を示す coords
取得した時刻を示すtimestampをもっている

また、coordsはたくさんの要素を持っている

以下はその一部

latitude
緯度

longitude
経度

altitude
高度

accuracy
精度

altitudeAccuracy
高度の精度

heading
方向

speed
速度

緯度は、南北の位置で、赤道を0°として
北は北極点の北緯90°まで
南は南極点の南緯90°まで

経度は、東西の位置で、
本初子午線を0°として
東側に向かって、東経180°まで
西側に向かって、西経180°まで

位置の取得時刻は、
postimestamp
で取得し、日付形式はUnixTimeになる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です