aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/reports/ReportUtils.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-12-22 21:22:06 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2020-12-22 21:22:06 -0800
commit1ca3ab609cc77706178a9784287272555d577382 (patch)
treefe3b11ce140666e6f0febe51748aefb4fc986ecc /src/main/java/org/traccar/reports/ReportUtils.java
parent2fc6343fc770bd09ba76e4511f0f94ac786d2c6a (diff)
downloadtrackermap-server-1ca3ab609cc77706178a9784287272555d577382.tar.gz
trackermap-server-1ca3ab609cc77706178a9784287272555d577382.tar.bz2
trackermap-server-1ca3ab609cc77706178a9784287272555d577382.zip
Fix average speed (fix #4616)
Diffstat (limited to 'src/main/java/org/traccar/reports/ReportUtils.java')
-rw-r--r--src/main/java/org/traccar/reports/ReportUtils.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/org/traccar/reports/ReportUtils.java b/src/main/java/org/traccar/reports/ReportUtils.java
index 870264fad..8dd77606c 100644
--- a/src/main/java/org/traccar/reports/ReportUtils.java
+++ b/src/main/java/org/traccar/reports/ReportUtils.java
@@ -29,6 +29,7 @@ import org.traccar.Context;
import org.traccar.database.DeviceManager;
import org.traccar.database.IdentityManager;
import org.traccar.handler.events.MotionEventHandler;
+import org.traccar.helper.UnitsConverter;
import org.traccar.model.DeviceState;
import org.traccar.model.Driver;
import org.traccar.model.Event;
@@ -173,11 +174,9 @@ public final class ReportUtils {
Position startTrip = positions.get(startIndex);
Position endTrip = positions.get(endIndex);
- double speedMax = 0.0;
- double speedSum = 0.0;
+ double speedMax = 0;
for (int i = startIndex; i <= endIndex; i++) {
double speed = positions.get(i).getSpeed();
- speedSum += speed;
if (speed > speedMax) {
speedMax = speed;
}
@@ -214,7 +213,9 @@ public final class ReportUtils {
trip.setDistance(calculateDistance(startTrip, endTrip, !ignoreOdometer));
trip.setDuration(tripDuration);
- trip.setAverageSpeed(speedSum / (endIndex - startIndex));
+ if (tripDuration > 0) {
+ trip.setAverageSpeed(UnitsConverter.knotsFromMps(trip.getDistance() * 1000 / tripDuration));
+ }
trip.setMaxSpeed(speedMax);
trip.setSpentFuel(calculateFuel(startTrip, endTrip));