Calculate elevation - just a test right now (see #28)
This commit is contained in:
parent
ca0b9017d9
commit
ed0d53e336
2 changed files with 40 additions and 0 deletions
|
@ -559,6 +559,10 @@ public class MainActivityTrackFragment extends Fragment implements AdapterView.O
|
|||
protected void onPostExecute(Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
|
||||
// todo remove
|
||||
StorageHelper storageHelper = new StorageHelper(mActivity);
|
||||
storageHelper.calculateTrackElevation(mTrack);
|
||||
|
||||
// display track on map
|
||||
displayTrack();
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.y20k.trackbook.helpers;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Location;
|
||||
import android.os.Environment;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.os.EnvironmentCompat;
|
||||
|
@ -358,4 +359,39 @@ public class StorageHelper implements TrackbookKeys {
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
/* Calculates positive and negative elevation of track */ // todo make private
|
||||
public Track calculateTrackElevation(@Nullable Track track) {
|
||||
double positiveElevation = 0;
|
||||
double negativeElevation = 0;
|
||||
double LIKELY_MEASUREMENT_ERROR = 25; // move to TrackbookKeys
|
||||
|
||||
if (track != null && track.getWayPoints().size() > 0 && track.getWayPointLocation(0).getAltitude() != 0) {
|
||||
Location previousLocation;
|
||||
Location nextLocation;
|
||||
|
||||
// iterate over track
|
||||
for (int i = 0; i < track.getWayPoints().size() - 1; i++ ) {
|
||||
// calculate elevation difference
|
||||
previousLocation = track.getWayPointLocation(i);
|
||||
nextLocation = track.getWayPointLocation(i + 1);
|
||||
double difference = nextLocation.getAltitude() - previousLocation.getAltitude();
|
||||
LogHelper.i(LOG_TAG, "next:" + nextLocation.getAltitude() + " | prev:" + previousLocation.getAltitude() + " | diff:" + difference); // todo remove
|
||||
|
||||
// add difference to elevation
|
||||
if (difference > 0 && difference < LIKELY_MEASUREMENT_ERROR) {
|
||||
positiveElevation = positiveElevation + difference;
|
||||
} else if (difference < 0 && difference > -LIKELY_MEASUREMENT_ERROR) {
|
||||
negativeElevation = negativeElevation + difference;
|
||||
}
|
||||
}
|
||||
|
||||
String toastString = "Calculated elevation: +" + positiveElevation + " / " + negativeElevation + " meters"; // todo remove
|
||||
Toast.makeText(mContext, toastString, Toast.LENGTH_LONG).show(); // todo remove
|
||||
LogHelper.i(LOG_TAG, toastString); // todo remove
|
||||
}
|
||||
return track;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue