public void OpenFile() { var gpxFile = _openFileIO.Show(new IODialogInfo() { Title = "Open GPX File", Filters = new[] { "GPX Files|*.gpx", "All Files|*.*" } }); if (!String.IsNullOrEmpty(gpxFile)) { var analyzer = new GpxAnalysis.GpxAnalyzer(); CurrentTracks.Clear(); CurrentTracks.AddRange(analyzer.GetTracks(gpxFile)); foreach (var track in Tracks) { track.PropertyChanged -= TrackName_PropertyChanged; } Tracks.CollectionChanged -= M_Tracks_CollectionChanged; Tracks = new ObservableCollection <TrackNameVM>(from track in CurrentTracks select GenerateNewTrackName(track.Name, true)); Tracks.CollectionChanged += M_Tracks_CollectionChanged; } }
public void RefreshGraph() { if (CurrentTracks.Count > 0) { var analyzer = new GpxAnalysis.GpxAnalyzer(); var useTrack = analyzer.MergeTrackPoints(from track in CurrentTracks join trackname in Tracks on track.Name equals trackname.Title where trackname.IsSelected select track); Graph = analyzer.GetGraphFromTrack(new GpsTrack() { Name = "all", Points = useTrack.ToList() }, true); Points = new ObservableCollection <DataPoint>(Graph.Points.Select(pp => new DataPoint() { X = pp.Distance, Y = pp.Elevation })); ElevLegend = String.Format( @"Distance: {0:0.00}mi . Min Elevation: {4:0.00}ft Max Elevation: {5:0.00}ft . Elevation Gain: {1:0.00}ft Elevation Loss: {2:0.00}ft Cumulative Change: {3:0.00}ft", Graph.TotalDistance, Graph.TotalElevationGain, Graph.TotalElevationLoss, (Graph.TotalElevationGain + Graph.TotalElevationLoss), Graph.MinElevation, Graph.MaxElevation); SetMinMax(); } }