aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/reports/ReportUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/reports/ReportUtils.java')
-rw-r--r--src/org/traccar/reports/ReportUtils.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java
index 67d577904..924dff4c1 100644
--- a/src/org/traccar/reports/ReportUtils.java
+++ b/src/org/traccar/reports/ReportUtils.java
@@ -45,10 +45,16 @@ public final class ReportUtils {
public static double calculateDistance(Position firstPosition, Position lastPosition, boolean useOdometer) {
double distance = 0.0;
- if (useOdometer && firstPosition.getAttributes().containsKey(Position.KEY_ODOMETER)
- && lastPosition.getAttributes().containsKey(Position.KEY_ODOMETER)) {
- distance = (((Number) lastPosition.getAttributes().get(Position.KEY_ODOMETER)).doubleValue()
- - ((Number) firstPosition.getAttributes().get(Position.KEY_ODOMETER)).doubleValue());
+ double firstOdometer = 0.0;
+ double lastOdometer = 0.0;
+ if (firstPosition.getAttributes().containsKey(Position.KEY_ODOMETER)) {
+ firstOdometer = ((Number) firstPosition.getAttributes().get(Position.KEY_ODOMETER)).doubleValue();
+ }
+ if (lastPosition.getAttributes().containsKey(Position.KEY_ODOMETER)) {
+ lastOdometer = ((Number) lastPosition.getAttributes().get(Position.KEY_ODOMETER)).doubleValue();
+ }
+ if (useOdometer && (firstOdometer != 0.0 || lastOdometer != 0.0)) {
+ distance = lastOdometer - firstOdometer;
} else if (firstPosition.getAttributes().containsKey(Position.KEY_TOTAL_DISTANCE)
&& lastPosition.getAttributes().containsKey(Position.KEY_TOTAL_DISTANCE)) {
distance = ((Number) lastPosition.getAttributes().get(Position.KEY_TOTAL_DISTANCE)).doubleValue()