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);
sample.elevation= avgElevation + altitude_difference;
} // 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){
WorkoutSample lastSample= samples.get(i-1);
double diff= sample.elevation - lastSample.elevation;
@ -107,12 +118,19 @@ public class WorkoutManager {
}
}
// Saving workout and samples
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){
for(int i= 0; i < samples.size(); i++){
WorkoutSample sample= samples.get(i);

View File

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