aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/reports
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2016-08-24 09:54:21 +0500
committerAbyss777 <abyss@fox5.ru>2016-08-24 09:54:21 +0500
commit5e8dbc78110ab5e28d1d57277a38dd1991dba0e6 (patch)
tree0491a9542e632741ce070aae1aa87a4decfeda88 /src/org/traccar/reports
parentea0bdea88003f46fd6f6164d5c45e33d53f47c81 (diff)
downloadtrackermap-server-5e8dbc78110ab5e28d1d57277a38dd1991dba0e6.tar.gz
trackermap-server-5e8dbc78110ab5e28d1d57277a38dd1991dba0e6.tar.bz2
trackermap-server-5e8dbc78110ab5e28d1d57277a38dd1991dba0e6.zip
- Fixed optional odometer for wondex protocol
- Do not use zero odometer values to calculateDistance
Diffstat (limited to 'src/org/traccar/reports')
-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()