我正在尝试计算一段时间内在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 “ 叫做。 这是正确的吗? 我需要做其他事吗? 这是否准确?如果不是,我怎样才能使它更准确?谢谢
这取决于,你需要多少accurisncy?对我而言,最好的方法是每隔x次(例如30秒)记录GPS位置,然后计算距离。根据上下文的不同,它可能会改变......也许另一种方法是根据速度计算采样时间。我的意思是,如果速度很高,你可以提高采样率:) – ykatchou
好问题。 totalDistanceElapsed必须具有的一个属性是它在不移动时不会增加。我不确定位置的精确位置,因此我会建议您在手机未移动的情况下进行测试,并确认totalDistanceElapsed不会增加。如果它确实在增加,你可以增加一个10米的容差,或者如果放弃事件的话,如果容差小于容差的话。 –
谢谢 现在我不知道如何“测试手机不在移动” 请问您能再帮忙吗?谢谢 – dewijones92