-7

Android GPSを使用して小さなランナーアプリケーションを試しています。これが私のシナリオです。これを手伝ってくれるか、これに利用できるソースコードを教えてください。歩くと、歩いている速度と歩いた距離が表示されるはずです。ボタンは1つだけ

始める

開始を押すと、ラベルが一時停止に変わります

一時停止を押すと、測定が一時停止します。PAUSE を押すと、STOP と RESTART の 2 つのボタンが表示されるはずです。

GPS がオンになっていない場合は、携帯電話の GPS をオンにするよう求められます。あなたのアプリがそれを認識していることがわかります。わずかな追加で、探しているものが得られるはずです。

私が求めているのはかなり簡単です。速度と距離だけ

4

1 に答える 1

2

そうです、ここに私がとるアプローチがあります:

  • GPS 位置と IsNew フラグを持つクラスを含む空のリストを作成します
  • 開始をクリックすると、現在の GPS 位置がリストに追加され (IsNew = true)、タイマーになります。
  • 10 秒ごとに (テスト後に調整される可能性があります)、現在の GPS 位置をリストにポップします (IsNew = false)。
  • 一時停止をクリックすると、タイマーが停止し、現在の GPS が表示されます
  • 再開時、タイマーの再起動、現在の GPS のポップ (IsNew = true)
  • 停止時、タイマーを停止し、GPS をポップする

すべての処理が完了すると、次のような IsNew フラグを含む GPS 位置のリストが表示されます。

  • GPS = {x, y, z}, IsNew = true //開始ボタンのクリック
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //一時停止クリック
  • GPS = {x, y, z}, IsNew = true //クリックして再起動
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //タイマー経過
  • GPS = {x, y, z}, IsNew = false //クリックを停止

そのリストには、いくつかの素敵な数学を使用して合計距離を計算するのに十分な情報が含まれているはずです ;-) (ここにそのための情報があります)

IsNew = trueその場合、そのポイントと前のポイントの間の距離を合計距離に含めるべきではないことに注意してください。

また、SPEED = DISTANCE / TIME


もちろん、別の方法を使用して、各ポイントを処理しながら合計距離を計算することもできます。これにより、「半リアルタイム」のフィードバックを提供できます。

このために、合計距離カウンターを保持し、これを各 GPS ポイントで更新します (つまり、タイマーが経過したとき) ... このアプローチでは、おそらく「IsNew」フラグを保存する必要がなくなります。

于 2012-05-16T10:11:20.830 に答える