aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/reports
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2017-11-08 15:43:13 +0500
committerAbyss777 <abyss@fox5.ru>2017-11-08 15:43:13 +0500
commit404044342a9fc9891366fa4378b4b1330cbca6c3 (patch)
tree98a2bfc2b6998e006f874d30ee9976c68345fee1 /src/org/traccar/reports
parent92f00d0da0dafd08ccf2a623406963e61fcde276 (diff)
downloadtraccar-server-404044342a9fc9891366fa4378b4b1330cbca6c3.tar.gz
traccar-server-404044342a9fc9891366fa4378b4b1330cbca6c3.tar.bz2
traccar-server-404044342a9fc9891366fa4378b4b1330cbca6c3.zip
- Implement synchronous geocoding
- Implement retry geocoding for trips/stops reports - Implement API for revers geocoding
Diffstat (limited to 'src/org/traccar/reports')
-rw-r--r--src/org/traccar/reports/ReportUtils.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java
index f6f386e99..f0d6d40c2 100644
--- a/src/org/traccar/reports/ReportUtils.java
+++ b/src/org/traccar/reports/ReportUtils.java
@@ -190,13 +190,21 @@ public final class ReportUtils {
trip.setStartLat(startTrip.getLatitude());
trip.setStartLon(startTrip.getLongitude());
trip.setStartTime(startTrip.getFixTime());
- trip.setStartAddress(startTrip.getAddress());
+ String startAddress = startTrip.getAddress();
+ if (startAddress == null && Context.getConfig().getBoolean("report.retryGeocoding")) {
+ startAddress = Context.getGeocoder().getAddress(startTrip.getLatitude(), startTrip.getLongitude());
+ }
+ trip.setStartAddress(startAddress);
trip.setEndPositionId(endTrip.getId());
trip.setEndLat(endTrip.getLatitude());
trip.setEndLon(endTrip.getLongitude());
trip.setEndTime(endTrip.getFixTime());
- trip.setEndAddress(endTrip.getAddress());
+ String endAddress = endTrip.getAddress();
+ if (endAddress == null && Context.getConfig().getBoolean("report.retryGeocoding")) {
+ endAddress = Context.getGeocoder().getAddress(startTrip.getLatitude(), startTrip.getLongitude());
+ }
+ trip.setEndAddress(endAddress);
trip.setDistance(calculateDistance(startTrip, endTrip, !ignoreOdometer));
trip.setDuration(tripDuration);
@@ -224,7 +232,12 @@ public final class ReportUtils {
stop.setLatitude(startStop.getLatitude());
stop.setLongitude(startStop.getLongitude());
stop.setStartTime(startStop.getFixTime());
- stop.setAddress(startStop.getAddress());
+ String address = startStop.getAddress();
+ if (address == null && Context.getConfig().getBoolean("report.retryGeocoding")) {
+ address = Context.getGeocoder().getAddress(stop.getLatitude(), stop.getLongitude());
+ }
+ stop.setAddress(address);
+
stop.setEndTime(endStop.getFixTime());
long stopDuration = endStop.getFixTime().getTime() - startStop.getFixTime().getTime();