public static TrackSegment Create(GpxTrackSegment gpxTrackSegment) { var trackSegment = new TrackSegment(); List <TrackPoint> trackPoints = new List <TrackPoint>(); foreach (var point in gpxTrackSegment.TrackPoints) { trackPoints.Add(TrackPoint.Create(point)); } trackSegment.TrackPoints = trackPoints; trackSegment.Elevation = ElevationProcessor.SegmentElevation(trackPoints); trackSegment.Duration = DurationProcessor.SegmentDuration(trackPoints); trackSegment.Distance = DistanceProcessor.SegmentDistance(trackPoints); return(trackSegment); }