mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-03 17:49:40 +00:00
fixed units for speed during track export (needs to be provided in km/h instead of m/s)
This commit is contained in:
1 parent
ba34c1d280
commit
375a385480
4 files changed
+32
-30
No files matched your search
+4
-4
@@ -73,9 +73,9 @@ public class TrackFilesExportPostServlet extends SailingServerHttpServlet {
|
||||
|
||||
if (!(isParamValid(resp, regattaRaces, TrackFilesExportParameters.REGATTARACES)
|
||||
&& isParamValid(resp, formatString, TrackFilesExportParameters.FORMAT) && isParamValid(resp,
|
||||
dataString, TrackFilesExportParameters.DATA)))
|
||||
dataString, TrackFilesExportParameters.DATA))) {
|
||||
return;
|
||||
|
||||
}
|
||||
resp.setHeader("Content-Disposition", "attachment; filename=\"tracked-races.zip\"");
|
||||
resp.setContentType("application/zip");
|
||||
|
||||
@@ -83,12 +83,12 @@ public class TrackFilesExportPostServlet extends SailingServerHttpServlet {
|
||||
List<TrackedRace> trackedRaces = getTrackedRaces(regattaRaces);
|
||||
boolean beforeAfter = beforeAfterString == null ? false : true;
|
||||
boolean rawFixes = rawFixesString == null ? false : true;
|
||||
|
||||
try {
|
||||
TrackFilesFormat format = TrackFilesFormat.valueOf(formatString);
|
||||
List<TrackFilesDataSource> data = new ArrayList<TrackFilesDataSource>();
|
||||
for (String s : dataString)
|
||||
for (String s : dataString) {
|
||||
data.add(TrackFilesDataSource.valueOf(s));
|
||||
}
|
||||
Export.INSTANCE.writeRaces(data, format, trackedRaces, beforeAfter, rawFixes, out);
|
||||
} catch (FormatNotSupportedException | NullPointerException | IllegalArgumentException e) {
|
||||
// resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, e.getMessage());
|
||||
|
||||
+26
-24
@@ -189,13 +189,12 @@ public class ExportImpl implements Export {
|
||||
|
||||
for (I fix : fixes.get(track)) {
|
||||
BaseNavigationPosition position = creator.getPosition(fix);
|
||||
if (position != null)
|
||||
if (position != null) {
|
||||
positions.add(position.asGpxPosition());
|
||||
}
|
||||
}
|
||||
|
||||
GpxRoute gpxRoute = new GpxRoute(new Gpx11Format(), RouteCharacteristics.Track, track,
|
||||
Collections.<String> emptyList(), positions);
|
||||
|
||||
routes.add(gpxRoute);
|
||||
}
|
||||
return routes;
|
||||
@@ -261,29 +260,32 @@ public class ExportImpl implements Export {
|
||||
|
||||
TrackReader<E, F> trackReader = trackRetriever.retrieveTrackReader(element);
|
||||
trackReader.getLocker().lock();
|
||||
Iterable<F> fixesIter = rawFixes ? trackReader.getRawTrack(element) : trackReader.getTrack(element);
|
||||
if (fixesIter == null)
|
||||
continue;
|
||||
|
||||
for (F fix : fixesIter) {
|
||||
// TODO is putting the dynamic iterator result into a list
|
||||
// acceptable? export will most likely only take place when
|
||||
// race is done and over, and tracks do not change, however
|
||||
// this goes against the concept of locking and the iterator
|
||||
// in place
|
||||
// if (fix.getTimePoint().before(race.getStartOfRace()))
|
||||
// continue;
|
||||
// if (fix.getTimePoint().after(race.getEndOfRace()))
|
||||
// break;
|
||||
if (!dataBeforeAfter && fix.getTimePoint().before(start))
|
||||
try {
|
||||
Iterable<F> fixesIter = rawFixes ? trackReader.getRawTrack(element) : trackReader.getTrack(element);
|
||||
if (fixesIter == null) {
|
||||
continue;
|
||||
|
||||
if (!dataBeforeAfter && fix.getTimePoint().after(end))
|
||||
break;
|
||||
|
||||
fixList.add(fix);
|
||||
}
|
||||
for (F fix : fixesIter) {
|
||||
// TODO is putting the dynamic iterator result into a list
|
||||
// acceptable? export will most likely only take place when
|
||||
// race is done and over, and tracks do not change, however
|
||||
// this goes against the concept of locking and the iterator
|
||||
// in place
|
||||
// if (fix.getTimePoint().before(race.getStartOfRace()))
|
||||
// continue;
|
||||
// if (fix.getTimePoint().after(race.getEndOfRace()))
|
||||
// break;
|
||||
if (!dataBeforeAfter && fix.getTimePoint().before(start)) {
|
||||
continue;
|
||||
}
|
||||
if (!dataBeforeAfter && fix.getTimePoint().after(end)) {
|
||||
break;
|
||||
}
|
||||
fixList.add(fix);
|
||||
}
|
||||
} finally {
|
||||
trackReader.getLocker().unlock();
|
||||
}
|
||||
trackReader.getLocker().unlock();
|
||||
fixes.put(nameReader.getName(element), fixList);
|
||||
}
|
||||
writeFixes(format, fixes, creator, out);
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ public enum GPSFixMovingToGpxPosition implements WaypointCreator<GPSFixMoving> {
|
||||
GpxPosition p = new GpxPosition(waypoint.getPosition().getLngDeg(), // lon
|
||||
waypoint.getPosition().getLatDeg(), // lat
|
||||
0., // elevation
|
||||
waypoint.getSpeed().getMetersPerSecond(), // speed
|
||||
waypoint.getSpeed().getKilometersPerHour(), // speed
|
||||
CompactCalendar.fromDate(waypoint.getTimePoint().asDate()), // time
|
||||
"" // comment
|
||||
);
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ public enum WindToGpxPosition implements WaypointCreator<Wind> {
|
||||
GpxPosition p = new GpxPosition(waypoint.getPosition().getLngDeg(), // lon
|
||||
waypoint.getPosition().getLatDeg(), // lat
|
||||
0., // elevation
|
||||
waypoint.getMetersPerSecond(), // speed
|
||||
waypoint.getKilometersPerHour(), // speed
|
||||
CompactCalendar.fromDate(waypoint.getTimePoint().asDate()), // time
|
||||
"" // comment
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user