// Loads the hourly temperature chart /// <summary> /// Loads the hourly temperature chart. /// </summary> private async void LoadHourlyTemperatureChart() { try { hourlyWeather = await HourlyWeatherInfoProcessor.LoadHourlyWeather(currentWeather.Coord.Lon, currentWeather.Coord.Lat); } catch (Exception) { Console.WriteLine("Exception occurred"); } WeatherChart.Series.Clear(); DisplayedChart.Text = "48 hour forecast"; WeatherChart.Header = "Temperature"; // Adding horizontal axis to chart primaryAxis.Header = "Date"; // Adding vertical axis to chart secondaryAxis.Header = "Temperature [°C]"; // Preparing data for Chart HourlyWeatherForecast hourlyData = new HourlyWeatherForecast(hourlyWeather); // Creating AdornmentInfo ChartAdornmentInfo adornmentInfo = new ChartAdornmentInfo() { ShowMarker = true, Symbol = ChartSymbol.Diamond, SymbolHeight = 5, SymbolWidth = 5, SymbolInterior = new SolidColorBrush(Colors.Black) }; //Initialize needed Line Series LineSeries seriesTemperature = new LineSeries() { ItemsSource = hourlyData.temperature, XBindingPath = "Date", YBindingPath = "Temperature", Label = "Temperature", LegendIcon = ChartLegendIcon.Circle, AdornmentsInfo = adornmentInfo }; //Adding Series to Chart WeatherChart.Series.Add(seriesTemperature); }
// Copies hourly weather forecast data from ApiLibrary structures to new structures prepared for chart display /// <summary> /// Copies hourly weather forecast data from ApiLibrary structures to new structures prepared for chart display. /// </summary> /// <param name="dailyForecastSource">HourlyWeatherInfoModel object containing hourly weather forecast information.</param> public HourlyWeatherForecast(HourlyWeatherInfoModel dailyForecastSource) { temperature = new List <TempForecastData>(); apparentTemperature = new List <TempForecastData>(); humidity = new List <HumidityForecastData>(); pressure = new List <PressureForecastData>(); windSpeed = new List <WindSpeedForecastData>(); now = DateTime.Now; int i = 0; foreach (var item in dailyForecastSource.Hourly) { now = now.AddHours(i); string requiredHour = now.Hour.ToString() + ":00"; temperature.Add(new TempForecastData(NormalizationOperations.NormalizeTemperature(dailyForecastSource.Hourly[i].Temp), requiredHour)); apparentTemperature.Add(new TempForecastData(NormalizationOperations.NormalizeTemperature(dailyForecastSource.Hourly[i].Feels_like), requiredHour)); humidity.Add(new HumidityForecastData(dailyForecastSource.Hourly[i].Humidity, requiredHour)); pressure.Add(new PressureForecastData(dailyForecastSource.Hourly[i].Pressure, requiredHour)); windSpeed.Add(new WindSpeedForecastData(dailyForecastSource.Hourly[i].Wind_speed, requiredHour)); i++; } }