aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/handler/FilterHandler.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-07-14 18:50:44 -0700
committerAnton Tananaev <anton@traccar.org>2022-07-14 18:50:44 -0700
commit27e8b2f8b24b12ddc4662c5559419d72755bbf08 (patch)
treeaa75c4696816a5793035903ee90c73b5b21205ff /src/main/java/org/traccar/handler/FilterHandler.java
parent204e98895b3cd9a37ceea1760917c07606b36b10 (diff)
downloadtrackermap-server-27e8b2f8b24b12ddc4662c5559419d72755bbf08.tar.gz
trackermap-server-27e8b2f8b24b12ddc4662c5559419d72755bbf08.tar.bz2
trackermap-server-27e8b2f8b24b12ddc4662c5559419d72755bbf08.zip
Filter for old data (fix #3800)
Diffstat (limited to 'src/main/java/org/traccar/handler/FilterHandler.java')
-rw-r--r--src/main/java/org/traccar/handler/FilterHandler.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/handler/FilterHandler.java b/src/main/java/org/traccar/handler/FilterHandler.java
index 0bd57319a..37f5cd566 100644
--- a/src/main/java/org/traccar/handler/FilterHandler.java
+++ b/src/main/java/org/traccar/handler/FilterHandler.java
@@ -47,6 +47,7 @@ public class FilterHandler extends BaseDataHandler {
private final boolean filterZero;
private final boolean filterDuplicate;
private final long filterFuture;
+ private final long filterPast;
private final boolean filterApproximate;
private final int filterAccuracy;
private final boolean filterStatic;
@@ -67,6 +68,7 @@ public class FilterHandler extends BaseDataHandler {
filterZero = config.getBoolean(Keys.FILTER_ZERO);
filterDuplicate = config.getBoolean(Keys.FILTER_DUPLICATE);
filterFuture = config.getLong(Keys.FILTER_FUTURE) * 1000;
+ filterPast = config.getLong(Keys.FILTER_PAST) * 1000;
filterAccuracy = config.getInteger(Keys.FILTER_ACCURACY);
filterApproximate = config.getBoolean(Keys.FILTER_APPROXIMATE);
filterStatic = config.getBoolean(Keys.FILTER_STATIC);
@@ -116,6 +118,10 @@ public class FilterHandler extends BaseDataHandler {
return filterFuture != 0 && position.getFixTime().getTime() > System.currentTimeMillis() + filterFuture;
}
+ private boolean filterPast(Position position) {
+ return filterPast != 0 && position.getFixTime().getTime() < System.currentTimeMillis() - filterPast;
+ }
+
private boolean filterAccuracy(Position position) {
return filterAccuracy != 0 && position.getAccuracy() > filterAccuracy;
}
@@ -185,6 +191,9 @@ public class FilterHandler extends BaseDataHandler {
if (filterFuture(position)) {
filterType.append("Future ");
}
+ if (filterPast(position)) {
+ filterType.append("Past ");
+ }
if (filterAccuracy(position)) {
filterType.append("Accuracy ");
}