diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-20 10:22:32 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-20 10:22:32 +1300 |
commit | b71bea3e0503dc9008fa8cc1f4981686fc0ee540 (patch) | |
tree | b1b37bccf736c5199f4fce737a986eb23a9009b7 | |
parent | 591c6b74e8449f7d35c6c464e96b58f6d621bd6c (diff) | |
download | trackermap-server-b71bea3e0503dc9008fa8cc1f4981686fc0ee540.tar.gz trackermap-server-b71bea3e0503dc9008fa8cc1f4981686fc0ee540.tar.bz2 trackermap-server-b71bea3e0503dc9008fa8cc1f4981686fc0ee540.zip |
Calculate distance for valid positions (fix #1738)
-rw-r--r-- | src/org/traccar/DistanceHandler.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/org/traccar/DistanceHandler.java b/src/org/traccar/DistanceHandler.java index 1586d116b..c737457f6 100644 --- a/src/org/traccar/DistanceHandler.java +++ b/src/org/traccar/DistanceHandler.java @@ -1,5 +1,6 @@ /* * Copyright 2015 Amila Silva + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,11 +41,13 @@ public class DistanceHandler extends BaseDataHandler { distance = ((Number) last.getAttributes().get(Event.KEY_DISTANCE)).doubleValue(); } - distance += DistanceCalculator.distance( - position.getLatitude(), position.getLongitude(), - last.getLatitude(), last.getLongitude()); + if (position.getValid()) { + distance += DistanceCalculator.distance( + position.getLatitude(), position.getLongitude(), + last.getLatitude(), last.getLongitude()); - distance = BigDecimal.valueOf(distance).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + distance = BigDecimal.valueOf(distance).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } } position.set(Event.KEY_DISTANCE, distance); |