繁体   English   中英

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

[英]What is the best way to calculate distance travelled over a period of time?

我正在尝试在 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”时,我都会添加从旧位置点到新位置点的距离。 这个对吗? 我还需要做其他事情吗? 这会准确吗? 如果不是,我怎样才能使它更准确? 谢谢

确定随时间行进的距离的简单方法是每秒获得一次定位,并读取并记录为每个定位报告的速度(以米/秒为单位)。 那么你的行驶距离就是这段时间内所有速度的总和。

如果您想避免将“抖动”计为移动(即,如果由于 GPS 修复不准确而导致修复缓慢徘徊,但设备实际上是静止的),您可以设置速度阈值,例如忽略低于某个水平的速度,或者如果标题在修复之间快速变化。 这些阈值可能取决于所使用的 GPS 设备,并且某些设备已经内置了这种东西(即,如果速度太低,它们会报告 0 m/s)。

但是,它确实取决于设备。 例如,我早期的 model 三星 Galaxy I9000 即使在晴朗的天空条件下以每秒约半米的速度在半径 20 米的区域内徘徊,所以如果它在田野中静止不动十分钟,上述算法会报告它已经移动300米。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM