Intervals: added elevation gain and only shows speed or pace, depending on settings.

This commit is contained in:
Román
2020-09-20 17:46:51 +02:00
committed by Román Martínez
parent c508747203
commit 0036934fb3
9 changed files with 133 additions and 46 deletions
@@ -24,6 +24,7 @@ public class IntervalStatistics {
}
Interval interval = new Interval();
interval.gain_m += trackPointList.get(0).hasElevationGain() ? trackPointList.get(0).getElevationGain() : 0;
for (int i = 1; i < trackPointList.size(); i++) {
TrackPoint prevTrackPoint = trackPointList.get(i - 1);
TrackPoint trackPoint = trackPointList.get(i);
@@ -31,6 +32,7 @@ public class IntervalStatistics {
if (LocationUtils.isValidLocation(trackPoint.getLocation()) && LocationUtils.isValidLocation(prevTrackPoint.getLocation())) {
interval.distance_m += prevTrackPoint.distanceTo(trackPoint);
interval.time_ms += trackPoint.getTime() - prevTrackPoint.getTime();
interval.gain_m += trackPoint.hasElevationGain() ? trackPoint.getElevationGain() : 0;
if (interval.distance_m >= distanceInterval_m) {
float adjustFactor = distanceInterval_m / interval.distance_m;
@@ -80,17 +82,20 @@ public class IntervalStatistics {
public static class Interval {
private float distance_m = 0f;
private float time_ms = 0f;
private float gain_m = 0f;
public Interval() {}
public Interval(float distance_m, float time_ms) {
this.distance_m = distance_m;
this.time_ms = time_ms;
this.gain_m = 0f;
}
public Interval(Interval i) {
distance_m = i.distance_m;
time_ms = i.time_ms;
gain_m = i.gain_m;
}
public float getDistance_m() {
@@ -111,5 +116,9 @@ public class IntervalStatistics {
}
return distance_m / (float) (time_ms * UnitConversions.MS_TO_S);
}
public float getGain_m() {
return gain_m;
}
}
}