**/
if ( ignore_it )
- pts[current_chunk] = VIK_DEFAULT_ALTITUDE;
+ // Seemly can't determine average for this section - so use last known good value (much better than just sticking in zero)
+ pts[current_chunk] = altitude1;
else
pts[current_chunk] = altitude1 + (altitude2-altitude1)*((dist_along_seg - (chunk_length/2))/current_seg_length);
}
}
+/*
+ * Apply DEM data (if available) - to only the last trackpoint
+ */
+void vik_track_apply_dem_data_last_trackpoint ( VikTrack *tr )
+{
+ gint16 elev;
+ if ( tr->trackpoints ) {
+ /* As in vik_track_apply_dem_data above - use 'best' interpolation method */
+ elev = a_dems_get_elev_by_coord ( &(VIK_TRACKPOINT(g_list_last(tr->trackpoints)->data)->coord), VIK_DEM_INTERPOL_BEST );
+ if ( elev != VIK_DEM_INVALID_ELEVATION )
+ VIK_TRACKPOINT(g_list_last(tr->trackpoints)->data)->altitude = elev;
+ }
+}
+
/* appends t2 to t1, leaving t2 with no trackpoints */
void vik_track_steal_and_append_trackpoints ( VikTrack *t1, VikTrack *t2 )
{
}
/* starting at the end, looks backwards for the last "double point", a duplicate trackpoint.
- * this is indicative of magic scissors continued use. If there is no double point,
- * deletes all the trackpoints. Returns the new end of the track (or the start if
- * there are no double points
+ * If there is no double point, deletes all the trackpoints.
+ * Returns the new end of the track (or the start if there are no double points)
*/
VikCoord *vik_track_cut_back_to_double_point ( VikTrack *tr )
{