根据公式从gps计算平均速度

时间:2019-04-03 21:41:59

标签: java android

我正在尝试使用以下方程式来计算电动机的平均电池长度(以分钟为单位):https://i.imgur.com/CBYRdyR.jpg

我通过使用以下代码获得平均速度:

for (Location location : locationResult.getLocations()) {
    int speed = (int) (location.getSpeed() * 2.2369);
    float addedSpeed = avgMPH + speed;
    avgMPH = addedSpeed / 2;
    float math1 = 45 / avgMPH;
    batteryView.setText("Battery: " + String.valueOf(math1 * 60) + " Minutes Remaining");
    }

问题在于,每次位置循环时,即使仍保持每小时1英里的速度,它也会使每个循环的电池寿命加倍。它不应像这样循环播放,不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您计算的平均速度错误。 您应该这样计算:

 float addedSpeed = avgMPH * numSamples + speed;
 avgMPH = addedSpeed / (numSamples + 1);
 numSamples = numSamples + 1;

不是这样的:

float addedSpeed = avgMPH + speed;
avgMPH = addedSpeed / 2;

例如,假设您以1 mph的速度行驶10个小时,以100 mph的速度行驶1个小时。 前者的平均速度为每小时10英里,这是正确的,后者的平均速度为55.5英里,这是错误的。