计算一段时间内行走距离的最佳方法是什么?

时间:2011-07-18 11:11:50

标签: android gps

我正在尝试计算Android平台应用中一段时间​​内经过的距离 最好的方法是什么?
目前,我正在实现LocationListener接口 我重写了onLocationChanged方法

我目前正在做这样的事情:

public void onLocationChanged(Location location) {
        Log.d("onLocationChanged", "onLocationChanged");


        old_location.set(new_location);
        new_location.set(location);
        totalDistanceElapsed += new_location.distanceTo(old_location);

}
所以我在调用“onLocationChanged”时添加从旧位置点到新位置点的距离。 它是否正确? 我还需要做其他事吗? 这会准确吗?如果没有,我怎样才能让它更准确?感谢

1 个答案:

答案 0 :(得分:3)

确定随时间推移的距离的微不足道的方法是每秒获得修正,并读取并记录每次修复报告的速度(以米/秒为单位)。然后你的行进距离是经过一段时间内所有速度的总和。

如果你想避免将“抖动”计算为移动(即如果由于GPS固定不准确,但是设备实际上是静止的,则修复程序缓慢徘徊)你可以设置一个速度阈值,例如:通过忽略低于某个级别的速度,或者标题在修复之间快速变化。这些阈值可能取决于所使用的GPS设备,有些设备已经内置了这种设备(例如,如果速度太低,它们会报告0 m / s)。

但是,它确实取决于设备。例如,我的早期型号三星Galaxy I9000即使在晴朗的天空条件下也会在半径20米的范围内徘徊,大约每秒半米,所以如果它静止在田地中持续十分钟,上述算法会报告它已经行走了300米。