mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-08 20:12:23 +00:00
Replaced duration of tracks by start and end time in REST API
This commit is contained in:
1 parent
c42539d4ec
commit
2bbf2e1291
1 file changed
+15
-11
+15
-11
@@ -8,6 +8,7 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
|
||||
import com.sap.sailing.domain.maneuverdetection.ManeuverDetector;
|
||||
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorImpl;
|
||||
import com.sap.sailing.domain.maneuverdetection.impl.TrackTimeInfo;
|
||||
import com.sap.sailing.domain.tracking.CompleteManeuverCurve;
|
||||
import com.sap.sailing.domain.tracking.GPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.Maneuver;
|
||||
@@ -25,7 +26,8 @@ public class CompleteManeuverCurvesWithEstimationDataJsonSerializer extends Abst
|
||||
public static final String COMPETITOR_NAME = "competitorName";
|
||||
public static final String AVG_INTERVAL_BETWEEN_FIXES_IN_SECONDS = "avgIntervalBetweenFixesInSeconds";
|
||||
public static final String DISTANCE_TRAVELLED_IN_METERS = "distanceTravelledInMeters";
|
||||
public static final String DURATION_IN_SECONDS = "durationInSeconds";
|
||||
public static final String START_TIME_POINT = "startUnixTime";
|
||||
public static final String END_TIME_POINT = "endUnixTime";
|
||||
|
||||
private final BoatClassJsonSerializer boatClassJsonSerializer;
|
||||
private final CompleteManeuverCurveWithEstimationDataJsonSerializer maneuverWithEstimationDataJsonSerializer;
|
||||
@@ -57,23 +59,25 @@ public class CompleteManeuverCurvesWithEstimationDataJsonSerializer extends Abst
|
||||
Duration averageIntervalBetweenFixes = trackedRace.getTrack(competitor).getAverageIntervalBetweenFixes();
|
||||
forCompetitorJson.put(AVG_INTERVAL_BETWEEN_FIXES_IN_SECONDS,
|
||||
averageIntervalBetweenFixes == null ? 0 : averageIntervalBetweenFixes.asSeconds());
|
||||
GPSFixTrack<Competitor,GPSFixMoving> track = trackedRace.getTrack(competitor);
|
||||
GPSFixTrack<Competitor, GPSFixMoving> track = trackedRace.getTrack(competitor);
|
||||
Double distanceTravelledInMeters = null;
|
||||
Double durationInSeconds = null;
|
||||
GPSFixMoving firstRawFix = track.getFirstRawFix();
|
||||
GPSFixMoving lastRawFix = track.getLastRawFix();
|
||||
if(firstRawFix != null && lastRawFix != null) {
|
||||
durationInSeconds = firstRawFix.getTimePoint().until(lastRawFix.getTimePoint()).asSeconds();
|
||||
distanceTravelledInMeters = track.getDistanceTraveled(firstRawFix.getTimePoint(), lastRawFix.getTimePoint()).getMeters();
|
||||
ManeuverDetectorImpl maneuverDetector = new ManeuverDetectorImpl(trackedRace, competitor);
|
||||
TrackTimeInfo trackTimeInfo = maneuverDetector.getTrackTimeInfo();
|
||||
if (trackTimeInfo.getTrackStartTimePoint() != null && trackTimeInfo.getTrackEndTimePoint() != null) {
|
||||
distanceTravelledInMeters = track.getDistanceTraveled(trackTimeInfo.getTrackStartTimePoint(),
|
||||
trackTimeInfo.getTrackEndTimePoint()).getMeters();
|
||||
}
|
||||
forCompetitorJson.put(DISTANCE_TRAVELLED_IN_METERS, distanceTravelledInMeters);
|
||||
forCompetitorJson.put(DURATION_IN_SECONDS, durationInSeconds);
|
||||
forCompetitorJson.put(START_TIME_POINT, trackTimeInfo.getTrackStartTimePoint() == null ? null
|
||||
: trackTimeInfo.getTrackStartTimePoint().asMillis());
|
||||
forCompetitorJson.put(END_TIME_POINT, trackTimeInfo.getTrackEndTimePoint() == null ? null
|
||||
: trackTimeInfo.getTrackEndTimePoint().asMillis());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private Iterable<CompleteManeuverCurveWithEstimationData> getCompleteManeuverCurvesWithEstimationData(TrackedRace trackedRace,
|
||||
Competitor competitor) {
|
||||
private Iterable<CompleteManeuverCurveWithEstimationData> getCompleteManeuverCurvesWithEstimationData(
|
||||
TrackedRace trackedRace, Competitor competitor) {
|
||||
Iterable<Maneuver> maneuvers = trackedRace.getManeuvers(competitor, false);
|
||||
ManeuverDetector maneuverDetector = new ManeuverDetectorImpl(trackedRace, competitor);
|
||||
Iterable<CompleteManeuverCurveWithEstimationData> maneuversWithEstimationData = null;
|
||||
|
||||
Reference in new issue
Block a user