aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/reports/ReportUtils.java
diff options
context:
space:
mode:
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));