按下按钮时计算距离和速度

时间:2012-05-16 09:20:43

标签: android

我正在尝试使用android gps的小跑步者应用程序。这是我的情景。你可以帮忙或者告诉我任何可用的源代码 当你走路时,它应该显示你走的速度和你所覆盖的距离。只有一个按钮

START

当您按开始时,其标签应更改为暂停

点击暂停应暂停测量。当你按下PAUSE时,你应该现在应该显示2个按钮STOP和RESTART

如果未打开GPS,则应要求您打开手机GPS。我可以看到你的应用程序确实识别出来了,稍微增加就可以得到我想要的东西。

我要求的非常直截了当。只是速度和距离

1 个答案:

答案 0 :(得分: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 //停止点击

现在该列表应该包含足够的信息来计算总距离,使用一些不错的数学;-)(here is some info for that

请注意,如果IsNew = true,则不应包括它与总距离中前一个点之间的距离。

另外,SPEED = DISTANCE / TIME


当然,您可以选择其他方法并在处理每个点时计算总距离。这将允许您提供“半实时”反馈。

为此,你将保留一个总距离计数器并用每个GPS点更新(即当计时器过去时)......用这种方法你可以避免存储“IsNew”标志的需要