GPSのLocationを得るのはほんの数行でできてしまいます。
android.location.LocationListener
を実装し、以下の未実装メソッドを追加するだけ。
public void onLocationChanged(Location location) {}
これでAndroid端末の位置情報が変わったというイベントが発生したら、
onLocationChangedメソッドが実行されます。
(ホントかしら?未検証です。)
今のところやりたいのは、累積距離をカウントすることです。
累積距離はとりあえずはメンバ変数に蓄えておくとして、
location間の距離を計算するには、
android.location.Location
のdistanceToメソッドを使用すればいいらしいです。
float distance;
Location old_location
@Override
public void onLocationChanged(Location location) {
distance += location.distanceTo(old_location);
old_location = location;
}
みたいに書けば、累積距離を計算できるはず。
ここまではあくまでも頭の中で考えたものなので、はしょってる部分も多いし、そのままじゃダメだと思います(笑
距離の計算には、locationの位置情報から自分で球面距離やら3次元で距離を求めたりなんかをしないといけないと思い込んでいたので、こんな簡単にできるとは、かなり拍子抜けです。
何とか累積距離を表示するプログラム作ってテストするぞ!
おお!進んでる(笑)
返信削除2^16とか2^32とかカウントするとリセットしちゃうバグを期待しております(笑)
ドラクエですか?(笑
返信削除もっと程度の低いバグを連発する予定ですけどね。
(-m-;)