Создаем погодный информер

Вероятно, многие Web мастера, хотя бы раз в жизни задавались вопросом о том, как бы отображать погоду на своем сайте или на сайте закзчика. Можно использовать готовые погодные информеры. Но они не всегда вписываются в дизайн сайта.

Сейчас мы посмотрим как можно сделать свой погодный информер с необходимым нам дизайном. Будем для этого использовать Google Weather API. Он достаточно легок в использовании. Если Вы разбираетесь в PHP, проблем возникнуть не должно.

Для начала обратимся к Google Weather API через браузер:

http://www.google.com/ig/api?weather=Краснодар

Тем самым мы запрашиваем погоду для города Краснодар. И тут же получим ответ в формате XML. Взглянем на него поближе:

<xml_api_reply version="1">
    <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">
        <forecast_information>
            <city data="Astrakhan, Province of Astrakhan"/>
            <postal_code data="Астрахань"/>
            <latitude_e6 data=""/>
            <longitude_e6 data=""/>
            <forecast_date data="2010-04-03"/>
            <current_date_time data="2010-04-03 11:30:00 +0000"/>
            <unit_system data="SI"/>
        </forecast_information>
        <current_conditions>
            <condition data="Ясно"/>
            <temp_f data="59"/>
            <temp_c data="15"/>
            <humidity data="Влажность: 26 %"/>
            <icon data="/ig/images/weather/sunny.gif"/>
            <wind_condition data="Ветер: В, 6 м/с"/>
        </current_conditions>
        <forecast_conditions>
            <day_of_week data="Сб"/>
            <low data="2"/>
            <high data="16"/>
            <icon data="/ig/images/weather/mostly_sunny.gif"/>
            <condition data="Преимущественно солнечно"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="Вс"/>
            <low data="1"/>
            <high data="15"/>
            <icon data="/ig/images/weather/cloudy.gif"/>
            <condition data="Облачно с прояснениями"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="Пн"/>
            <low data="2"/>
            <high data="16"/>
            <icon data="/ig/images/weather/mostly_sunny.gif"/>
            <condition data="Преимущественно солнечно"/>
        </forecast_conditions>
        <forecast_conditions>
            <day_of_week data="Вт"/>
            <low data="3"/>
            <high data="17"/>
            <icon data="/ig/images/weather/sunny.gif"/>
            <condition data="Ясно"/>
        </forecast_conditions>
    </weather>
</xml_api_reply>

Все достаточно просто. Выбираем место, нажимем Enter и видим прогноз погоды. Данные допускается вводить как на Английском, так и на Руcском языке. Конечно строка быть закодирована для передачи данных через URL. Теперь осталось разобрать XML и вывести в удобном для нас виде.

 

Пример использования на языке PHP:

<?php
function getWeather() {
    $requestAddress = "http://www.google.com/ig/api?weather=astrakhan&hl=ru";

    // скачиваем данные о погоде
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_URL, $requestAddress);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
    $xml_str = curl_exec ($ch);
    curl_close ($ch);     // парсим XML
    $xml = @simplexml_load_string($xml_str);

    // обрабатываем XML
    echo '<div id="weather">';
    foreach($xml->weather as $item) {
        foreach($item->forecast_conditions as $new) {
            echo '<div class="weatherIcon">';
            echo '<img src="http://www.google.com/' .$new->icon['data'] . '"/><br/>';
            echo $new->day_of_week['data'];
            echo '</div>';
        }
    }
    echo '</div>';
}
getWeather();
?>

 

В этом коротком примере мы организовали вывод иконок прогноза погоды на 4 дня. Для понимания принципа этого достаточно. Написание более сложного скрипта оставим читателю. Добавлю, что в приведенном выше XML-ответе в теге <current_conditions> содержится текущая сводка погоды: облачность, влажность, скорость ветра, иконка облачности и температура. В тегах <forecast_conditions> - прогноз облачности и его иконка на близайшие 4 дня. Google Weather API быстро работает, но на сайтах с большой посещаемостью данные лучше кешировать.

 

Образец использования Google Weather API Вы можете наблюдать на главной странице этого сайта.

 

Также можно скачать плагин прогноза погоды для CMS Cotonti.

 

 

У нас Вы можете заказать создание интернет сайта любой сложности.
От сайта-визитки до портальной системы, корпоративного сайта или интернет магазина.


По всем вопросам просьба обращаться: тел. +7-964-930-50-29 (Краснодар)
e-mail: kalnovalexey@yandex.ru
ICQ 245848856
Мы находимся в г. Краснодар

 
Автор: Alex
Опубликовано: Alex
Комментарии: (1)
Рейтинги:  
0

Комментарии:


Аватар
1. Анонимный
спасибо за статью и помощь

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

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

* Для редактирования комментария осталось 15 минут