fixed units for speed during track export (needs to be provided in km/h instead of m/s)

This commit is contained in:
Axel Uhl committed 2013-06-29 10:57:46 +02:00
1 parent ba34c1d280
commit 375a385480
4 files changed
+32 -30

No files matched your search

@@ -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());
@@ -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);
@@ -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
);
@@ -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
);