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になる