使用GPS获取行驶距离

3

我希望能够用我的汽车追踪已行驶的距离。

当我的速度大于0公里/小时时,它将开始记录。

我用这段代码获取我的速度:speed = location.getSpeed() * 3.6;

希望能做到以下事情:

if (speed > 0) //追踪我的行驶距离。

我只找到了如何计算两点之间的距离。

谢谢您的帮助。

3个回答

2
我认为测试速度(或方向)会使这个问题变得过于复杂。 如果优化电池寿命不是问题(例如,您使用的是汽车充电器),我建议每n秒采样一次位置,并根据当前和上一个坐标更新行驶距离。 如果汽车没有移动,则GPS坐标不应该改变(除非由于精度问题),因此当静止时,行驶距离不会改变。 如果您只关心距离而不是路径,则只需要两个点,即当前点和上一个点。 希望这可以帮助您, Phil Lello

嗨Phil,那个人没有车载充电器,我刚问过他 :) (开玩笑的)。 - Zelimir

1
  1. 保留您记录的所有点的列表
  2. 对于列表中的每个点,计算到下一个点的距离(显然您知道如何做)并将其添加到totalDistance中。

如果它没有移动,它将计算比仅采取上一个位置和前一个位置更长的距离。 - user1154664

1

这是我处理那个有趣问题的方法:

  • 使用Sensor.TYPE_ORIENTATION来判断车辆何时改变方向,例如转弯。定义一些阈值来准确地判断并在该点获取GPS位置
  • 如果您在高速公路上长时间驾驶(没有拐角),请添加定期GPS点采样
  • 计算列表中最后两个点之间的距离,并获取两点之间的距离
  • 添加值以实时累计距离

这样您就可以用线性段近似表示路径,这接近真实值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接