mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-21 19:50:01 +00:00
Used the new anti wrap around algorithm in the wind chart
This commit is contained in:
1 parent
41f0c2236a
commit
38d3de8081
3 files changed
+22
-31
No files matched your search
+2
-2
@@ -2,9 +2,9 @@ package com.sap.sailing.gwt.ui.client.shared.charts;
|
||||
|
||||
import org.moxieapps.gwt.highcharts.client.Point;
|
||||
|
||||
public final class WindChartPointRecalculator {
|
||||
public final class ChartPointRecalculator {
|
||||
|
||||
private WindChartPointRecalculator() { }
|
||||
private ChartPointRecalculator() { }
|
||||
|
||||
public static Point stayClosestToPreviousPoint(Point previousPoint, Point newPoint) {
|
||||
double previousY = previousPoint.getY().doubleValue();
|
||||
+9
-18
@@ -15,12 +15,12 @@ import org.moxieapps.gwt.highcharts.client.ChartTitle;
|
||||
import org.moxieapps.gwt.highcharts.client.Color;
|
||||
import org.moxieapps.gwt.highcharts.client.Credits;
|
||||
import org.moxieapps.gwt.highcharts.client.PlotLine;
|
||||
import org.moxieapps.gwt.highcharts.client.PlotLine.DashStyle;
|
||||
import org.moxieapps.gwt.highcharts.client.Point;
|
||||
import org.moxieapps.gwt.highcharts.client.Series;
|
||||
import org.moxieapps.gwt.highcharts.client.ToolTip;
|
||||
import org.moxieapps.gwt.highcharts.client.ToolTipData;
|
||||
import org.moxieapps.gwt.highcharts.client.ToolTipFormatter;
|
||||
import org.moxieapps.gwt.highcharts.client.PlotLine.DashStyle;
|
||||
import org.moxieapps.gwt.highcharts.client.events.ChartClickEvent;
|
||||
import org.moxieapps.gwt.highcharts.client.events.ChartClickEventHandler;
|
||||
import org.moxieapps.gwt.highcharts.client.events.ChartSelectionEvent;
|
||||
@@ -42,15 +42,14 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.common.impl.ColorMapImpl;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.gwt.ui.actions.GetWindInfoAction;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
|
||||
@@ -73,7 +72,6 @@ public class WindChart extends AbstractRaceChart implements Component<WindChartS
|
||||
private final Map<WindSource, Series> windSourceSpeedSeries;
|
||||
private final Map<WindSource, Point[]> windSourceDirectionPoints;
|
||||
private final Map<WindSource, Point[]> windSourceSpeedPoints;
|
||||
private Pair<Double, Double> overallDirectionMinMax;
|
||||
|
||||
private Long timeOfEarliestRequestInMillis;
|
||||
private Long timeOfLatestRequestInMillis;
|
||||
@@ -96,7 +94,6 @@ public class WindChart extends AbstractRaceChart implements Component<WindChartS
|
||||
windSourceSpeedSeries = new HashMap<WindSource, Series>();
|
||||
windSourceDirectionPoints = new HashMap<WindSource, Point[]>();
|
||||
windSourceSpeedPoints = new HashMap<WindSource, Point[]>();
|
||||
overallDirectionMinMax = new Pair<Double, Double>(null, null);
|
||||
colorMap = new ColorMapImpl<WindSource>();
|
||||
chart = new Chart()
|
||||
.setPersistent(true)
|
||||
@@ -327,8 +324,8 @@ public class WindChart extends AbstractRaceChart implements Component<WindChartS
|
||||
if (windSource.getType().useSpeed()) {
|
||||
speedSeries = getOrCreateSpeedSeries(windSource);
|
||||
}
|
||||
Double directionMin = overallDirectionMinMax.getA();
|
||||
Double directionMax = overallDirectionMinMax.getB();
|
||||
|
||||
Point previousDirectionPoint = null;
|
||||
Point[] directionPoints = new Point[windTrackInfo.windFixes.size()];
|
||||
Point[] speedPoints = new Point[windTrackInfo.windFixes.size()];
|
||||
int currentPointIndex = 0;
|
||||
@@ -350,22 +347,17 @@ public class WindChart extends AbstractRaceChart implements Component<WindChartS
|
||||
newDirectionPoint.setName(name);
|
||||
}
|
||||
|
||||
newDirectionPoint = WindChartPointRecalculator.keepOverallDeltaMinimal(directionMin, directionMax, newDirectionPoint);
|
||||
if (previousDirectionPoint != null) {
|
||||
newDirectionPoint = ChartPointRecalculator.stayClosestToPreviousPoint(previousDirectionPoint,
|
||||
newDirectionPoint);
|
||||
}
|
||||
directionPoints[currentPointIndex] = newDirectionPoint;
|
||||
previousDirectionPoint = newDirectionPoint;
|
||||
|
||||
double direction = newDirectionPoint.getY().doubleValue();
|
||||
if (directionMax == null || direction > directionMax) {
|
||||
directionMax = direction;
|
||||
}
|
||||
if (directionMin == null || direction < directionMin) {
|
||||
directionMin = direction;
|
||||
}
|
||||
|
||||
Point newSpeedPoint = new Point(wind.requestTimepoint, wind.dampenedTrueWindSpeedInKnots);
|
||||
speedPoints[currentPointIndex++] = newSpeedPoint;
|
||||
}
|
||||
}
|
||||
overallDirectionMinMax = new Pair<Double, Double>(directionMin, directionMax);
|
||||
|
||||
Point[] newDirectionPoints;
|
||||
Point[] newSpeedPoints = null;
|
||||
@@ -430,7 +422,6 @@ public class WindChart extends AbstractRaceChart implements Component<WindChartS
|
||||
private void clearCacheAndReload() {
|
||||
timeOfEarliestRequestInMillis = null;
|
||||
timeOfLatestRequestInMillis = null;
|
||||
overallDirectionMinMax = new Pair<Double, Double>(null, null);
|
||||
windSourceDirectionPoints.clear();
|
||||
windSourceSpeedPoints.clear();
|
||||
|
||||
|
||||
Reference in new issue
Block a user