Exemple #1
0
        void GetWeather()
        {
            StringText sText = new StringText();

            sText.GetList();
            string cityID = sText.IsEqualCityName(ComboBoxCity.Text);
            string url    = string.Format(
                "http://api.openweathermap.org/data/2.5/weather?id={0}&units=metric&cnt=6&appid={1}"
                , cityID, API_KEY);

            using (WebClient web = new WebClient())
            {
                try
                {
                    var json   = web.DownloadString(url);
                    var result = JsonConvert.DeserializeObject <WeatherInfo.root>(json);
                    WeatherInfo.root output    = result;
                    string           urlicon   = string.Format("http://openweathermap.org/img/wn/{0}@2x.png", output.weather[0].icon);
                    byte[]           image     = web.DownloadData(urlicon);
                    MemoryStream     stream    = new MemoryStream(image);
                    Bitmap           newbitmap = new Bitmap(stream);
                    Bitmap           icon      = newbitmap;
                    PictureWeather.Image = newbitmap;
                    labelLog.Text        = string.Format("{0}\u00B0", Math.Round(output.coord.lon, 1));
                    labelLat.Text        = string.Format("{0}\u00B0", Math.Round(output.coord.lat, 1));
                    labelTemp.Text       = string.Format("{0}\u00B0" + "C", Math.Round(output.main.temp, 0));
                    if (Math.Round(output.main.temp_min, 0) == Math.Round(output.main.temp_max, 0))
                    {
                        labelTempMinMax.Text = string.Format("{0}\u00B0" + "C", Math.Round(output.main.temp_max, 0));
                    }
                    else
                    {
                        labelTempMinMax.Text = string.Format("{0}\u00B0" + "C/{1}\u00B0" + "C", Math.Round(output.main.temp_min, 0), Math.Round(output.main.temp_max, 0));
                    }
                    labelWeather.Text  = sText.IsEqualMainWeather(output.weather[0].main);
                    labelCloud.Text    = sText.IsEqualDescriptionWeather(output.weather[0].description);
                    labelHumidity.Text = string.Format("{0}%", output.main.humidity);
                    labelWind.Text     = string.Format("{0} km/h", output.wind.speed);
                    labelPressure.Text = string.Format("{0} hPa", output.main.pressure);
                    labelVisible.Text  = string.Format("{0} km", output.visibility / 1000);
                    labelDate.Text     = string.Format("NGÀY {0}/{1}/{2}"
                                                       , getDate(output.dt).Day, getDate(output.dt).Month, getDate(output.dt).Year);
                    labelHour.Text        = string.Format("Giờ {0}", getDate(output.dt).ToShortTimeString());
                    labelWeather.Location = new Point((PanelDisplayWT.Size.Width / 2) - (labelWeather.Size.Width / 2), 0);
                    labelTemp.Location    = new Point((PanelDisplayWT.Size.Width / 2) - (labelTemp.Size.Width / 2), 54);
                    labelHour.Text        = DateTime.Now.ToString("t");
                }
                catch (System.Net.WebException)
                {
                    PanelDisplayWT.Visible = false;
                    MessageBox.Show("Vui lòng kết nối mạng trước khi sử dụng tính năng  này.", "Cảnh Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }