Silverlight 2 погодный информер на основе сервиса Gismeteo.ru

Опубликовано Ноя 20, 2008 в Silverlight | Нет комментариев

Изучать что-либо лучше всего на полезном но не сложном примере.

Для того, чтобы научиться работать в Silverlight с веб-сервисами, я выбрал создание погодного информера.

Основной вид Настройки

Для начала заходим на сайт http://gismeteo.ru/, переходим по ссылке «Погодный информер» и нажимаем кнопку «Получить код» в разделе «Данные в формате XML».

После выбора своего города мы получаем ссылку на XML сервис. 
Запомним, что нам необходимо дать возможность пользователю переключить информер на другой город путем ввода соответствующего кода. Для получения кода своего города, пользователю придется зайти на страницу поиска.

Условием использования данного сервиса является размещение логотипа проекта Gismeteo.Ru или текстовой строчки «Предоставлено Gismeteo.Ru» с обязательной гиперссылкой на сайт. Загрузим с этой же страницы логотип в формате форматах Adobe Illustrator или CorelDRAW. К сожалению я не нашел простого способа конвертировать форматы AI, PS, CDR в XAML, поэтому пришлось установить дополнительный plugin XAMLExport для Adobe Illustrator, с помощью которого и экспортировался логотип Gismeteo. Перед экспортом, я уменьшил размер логотипа в 10 раз, при этом по всей видимостии выполняется некоторая генерализация, потому, что размер выходного XAML файла тоже уменьшился.

Сохраняем себе также описание формата данных:

TOWN информация о пункте прогнозирования:
  index уникальный пятизначный код города
  sname закодированное название города
  latitude широта в целых градусах
 longitude долгота в целых градусах
FORECAST информация о сроке прогнозирования:
  day, month, year дата, на которую составлен прогноз в данном блоке
  hour местное время, на которое составлен прогноз
  tod время суток, для которого составлен прогноз: 0 — ночь 1 — утро, 2 — день, 3 — вечер
  weekday день недели, 1 — воскресенье, 2 — понедельник, и т.д.
  predict заблаговременность прогноза в часах
PHENOMENA  атмосферные явления:
  cloudiness облачность по градациям:  0 — ясно, 1- малооблачно, 2 — облачно, 3 — пасмурно
  precipitation тип осадков: 4 — дождь, 5 — ливень, 6,7 — снег, 8 — гроза, 9 — нет данных, 10 — без осадков
  rpower интенсивность осадков, если они есть. 0 — возможен дождь/снег, 1 — дождь/снег
  spower вероятность грозы, если прогнозируется: 0 — возможна гроза, 1 — гроза
PRESSURE атмосферное давление, в мм.рт.ст.
TEMPERATURE температура воздуха, в градусах Цельсия
WIND приземный ветер
  min, max минимальное и максимальное значения средней скорости ветра, без порывов
  direction  направление ветра в румбах, 0 — северный, 1 — северо-восточный,  и т.д.
RELWET относительная влажность воздуха, в %
HEAT комфорт — температура воздуха по ощущению одетого по сезону человека, выходящего на улицу

На этом мы прощаемся с сайтом GisMeteo и приступаем к разработке Silverlight погодного информера.

Заметим, что Gismeteo.Ru  не предоставляет Web сервиса а просто возвращает XML файл в так называемом REST формате, поэтому для получения XML файла нам достаточно функциональности класса WebClient.

Теперь добавим еще несколько возможностей, которые придадут информеру полноценную функциональность. Во первых необходимо запоминать город, который ввел пользователь — это приятно, т.к. создает впечатление, что о вас помнят 🙂 Проще всего это сделать используя Cookies.

Оставить комментарий