Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据公式计算gps的平均速度_Java_Android - Fatal编程技术网

Java 根据公式计算gps的平均速度

Java 根据公式计算gps的平均速度,java,android,Java,Android,我尝试使用以下方程式计算电机的平均电池长度(以分钟为单位): 我使用以下代码获得平均速度: for (Location location : locationResult.getLocations()) { int speed = (int) (location.getSpeed() * 2.2369); float addedSpeed = avgMPH + speed; avgMPH = addedSpeed / 2; float math1 = 45 / a

我尝试使用以下方程式计算电机的平均电池长度(以分钟为单位):

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

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英里的速度。它不应该像这样循环,帮助感激,谢谢

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

 float addedSpeed = avgMPH * numSamples + speed;
 avgMPH = addedSpeed / (numSamples + 1);
 numSamples = numSamples + 1;
float addedSpeed = avgMPH + speed;
avgMPH = addedSpeed / 2;
不是这样的:

 float addedSpeed = avgMPH * numSamples + speed;
 avgMPH = addedSpeed / (numSamples + 1);
 numSamples = numSamples + 1;
float addedSpeed = avgMPH + speed;
avgMPH = addedSpeed / 2;
例如,假设你以每小时1英里的速度行驶10小时,以每小时100英里的速度行驶1小时。
前者给出的平均速度为10英里/小时,这是正确的;后者给出的平均速度为55.5英里/小时,这是错误的。

这个公式很奇怪,结果“电池长度”将以
小时*分钟为单位。