round Elevation values

This commit is contained in:
jannis 2019-08-26 18:13:17 +02:00
parent 8ce0dacb67
commit 4f1e84bf02
2 changed files with 23 additions and 1 deletions

View File

@ -95,7 +95,18 @@ public class WorkoutManager {
SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, (float) avgPressure); SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, (float) avgPressure);
sample.elevation= avgElevation + altitude_difference; sample.elevation= avgElevation + altitude_difference;
} // Else: use already set GPS elevation in WorkoutSample.elevation } // Else: use already set GPS elevation in WorkoutSample.elevation
}
int range= 3;
for(i= 0; i < samples.size(); i++){
int min= Math.max(i-range, 0);
int max= Math.min(i+range, samples.size()-1);
samples.get(i).tmpElevation= getAverageElevation(samples.subList(min, max));
}
for(i= 0; i < samples.size(); i++) {
WorkoutSample sample = samples.get(i);
sample.elevation= sample.tmpElevation;
if(i >= 1){ if(i >= 1){
WorkoutSample lastSample= samples.get(i-1); WorkoutSample lastSample= samples.get(i-1);
double diff= sample.elevation - lastSample.elevation; double diff= sample.elevation - lastSample.elevation;
@ -107,12 +118,19 @@ public class WorkoutManager {
} }
} }
// Saving workout and samples // Saving workout and samples
db.workoutDao().insertWorkoutAndSamples(workout, samples.toArray(new WorkoutSample[0])); db.workoutDao().insertWorkoutAndSamples(workout, samples.toArray(new WorkoutSample[0]));
} }
public static double getAverageElevation(List<WorkoutSample> samples){
double sum= 0;
for(WorkoutSample sample : samples){
sum+= sample.elevation;
}
return sum / samples.size();
}
public static void roundSpeedValues(List<WorkoutSample> samples){ public static void roundSpeedValues(List<WorkoutSample> samples){
for(int i= 0; i < samples.size(); i++){ for(int i= 0; i < samples.size(); i++){
WorkoutSample sample= samples.get(i); WorkoutSample sample= samples.get(i);

View File

@ -72,6 +72,10 @@ public class WorkoutSample{
@Ignore @Ignore
public double tmpRoundedSpeed; public double tmpRoundedSpeed;
@JsonIgnore
@Ignore
public double tmpElevation;
@JsonIgnore @JsonIgnore
@Ignore @Ignore
public float tmpPressure; public float tmpPressure;