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);
        }