Google Weather API

Наверно, каждый вебмастер хоть раз в жизни спрашивал: "Как показать погоду на моем сайте?". Раньше для этого использовали довольно уродливый гаджет канала погоды. Он отвратительно выглядел и его нельзя было менять. Некоторые использовали iframe для того чтобы подгружать внешние данные и отображать их на сайте. Наконец, всегда можно было поставить ссылку "посмотреть погоду". Итак, есть задача - получить данные о погоде из внешнего источника и настроить ее внешний вид. К счастью, теперь есть великолепный инструмент для этого. Google Weather API - легок в использовании и настройке.

Для начала получим адрес в браузере:

http://www.google.com/ig/api?weather=челябинск

Как понятно из него - погоду мы смотрим в Челябинск. Теперь взглянем на xml:

XML с погодой

  1. <xml_api_reply version="1">
  2. <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1"
  3. row="0" section="0">
  4. <forecast_information>
  5. <city data="Chelyabinsk, Province of Chelyabinsk"/>
  6. <postal_code data="челябинск"/>
  7. <latitude_e6 data=""/>
  8. <longitude_e6 data=""/>
  9. <forecast_date data="2010-02-10"/>
  10. <current_date_time data="2010-02-10 08:00:00 +0000"/>
  11. <unit_system data="US"/>
  12. </forecast_information>
  13. <current_conditions>
  14. <condition data="Cloudy"/>
  15. <temp_f data="-13"/>
  16. <temp_c data="-25"/>
  17. <humidity data="Humidity: 73%"/>
  18. <icon data="/ig/images/weather/cloudy.gif"/>
  19. <wind_condition data="Wind: SE at 4 mph"/>
  20. </current_conditions>
  21. <forecast_conditions>
  22. <day_of_week data="Wed"/>
  23. <low data="-17"/>
  24. <high data="2"/>
  25. <icon data="/ig/images/weather/mostly_sunny.gif"/>
  26. <condition data="Mostly Sunny"/>
  27. </forecast_conditions>
  28. <forecast_conditions>
  29. <day_of_week data="Thu"/>
  30. <low data="-1"/>
  31. <high data="12"/>
  32. <icon data="/ig/images/weather/cloudy.gif"/>
  33. <condition data="Cloudy"/>
  34. </forecast_conditions>
  35. <forecast_conditions>
  36. <day_of_week data="Fri"/>
  37. <low data="5"/>
  38. <high data="18"/>
  39. <icon data="/ig/images/weather/mostly_sunny.gif"/>
  40. <condition data="Partly Sunny"/>
  41. </forecast_conditions>
  42. <forecast_conditions>
  43. <day_of_week data="Sat"/>
  44. <low data="6"/>
  45. <high data="27"/>
  46. <icon data="/ig/images/weather/mostly_sunny.gif"/>
  47. <condition data="Partly Sunny"/>
  48. </forecast_conditions>
  49. </weather>
  50. </xml_api_reply>

Поразительно, как все легко. Достаточно выбрать место и нажать Enter. И у нас уже есть данные о погоде в формате XML. Нет рекламы, а представить данные мы можем в любом удобном нам виде. Обратите внимание: я ограничил вывод одним днем. Итак, что дальше? Ну, например, использовать PHP для вывода данных. Взглянем на исходный код:

  1. <?php
  2. function getWeather() {
  3. $requestAddress = "http://www.google.com/ig/api?weather=челябинск&hl=ru";
  4. // скачиваем данные о погоде
  5. $xml_str = file_get_contents($requestAddress,0);
  6. // парсим XML
  7. $xml = new SimplexmlElement($xml_str);
  8. // обрабатываем XML
  9. $count = 0;
  10. echo '<div id="weather">';
  11. foreach($xml->weather as $item) {
  12. foreach($item->forecast_conditions as $new) {
  13. echo '<div class="weatherIcon">';
  14. echo '<img src="http://www.google.com/' .$new->icon['data'] . '"/><br/>';
  15. echo $new->day_of_week['data'];
  16. echo '</div>';
  17. }
  18. }
  19. echo '</div>';
  20. }
  21. getWeather();
  22. ?>

Я надеюсь, эта заметка будет кому-нибудь полезна. Weather API быстро работает, прост и легко настраивается. Убедиться в этом можно на сайте Jetty Doc, где он используется.

Rate It! (Average 4.17, 12 votes)

Related Posts

  • No post

4 Responses to Google Weather API

  1. gravatar

    Насколько я понимаю, ссылки такого типа ""http://www.google.com/ig/api?weather=челябинск"" уже не работают. Но приведенный Вами сайт отображает гугловскую погоду. Как же его настроить? То есть как получить ХМЛ?
    Спасибо.

  2. gravatar

    http://www.google.com/ig/api?weather=челябинск - работает, все нормально

  3. gravatar

    Супер! Спасибо большое за статью! Как раз то что мне нужно для проекта!

    Все работает, только у меня сначала ошибка с кодировкой выдалась, так что можно дописать еще "
    Ну и для России еще "

    http://www.google.com/ig/api?weather=челябинск&oe=utf8&hl=ru

  4. gravatar

    Что-то не работает это запрос на google weather.
    При следующий запросах, выдается сообщение что "Информация временно недоступна".

    http://www.google.com/ig/api?weather=челябинск
    http://www.google.com/ig/api?weather=челябинск

    Не работают, но если ввести название города латиницей то все нормально.

Leave a Reply

Mail will not be published