Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Mostrare le previsioni del tempo con PHP e Google Weather API

Settembre 8th, 2009 by Giovanni Caputo

Se hai la necessità di mostrare le previsioni del tempo suo tuo sito puoi usare dei widgets appositi come quello fornito da  weatherbug.

Potrebbe però avere qualcosa di più integrato con il proprio sito; è possibile fare questo utilizzando le Google Weather API.

Vediamo la sintassi della chiamata:

http://www.google.com/ig/api?weather=[city name]

Se per esempio effettuiamo una richiesta dal browser con il seguente link: http://www.google.com/ig/api?weather=bari

otteniamo qualcosa del genere:

<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=”Bari, Puglia”/>

<postal_code data=”bari”/>

<latitude_e6 data=””/>

<longitude_e6 data=””/>

<forecast_date data=”2009-09-08″/>

<current_date_time data=”2009-09-08 14:20:50 +0000″/>

<unit_system data=”SI”/>

</forecast_information>

<current_conditions>

<condition data=”Parzialmente nuvoloso”/>

<temp_f data=”75″/>

<temp_c data=”24″/>

<humidity data=”Umidità: 41%”/>

<icon data=”/ig/images/weather/partly_cloudy.gif”/>

<wind_condition data=”Vento: N a 23 km/h”/>

</current_conditions>

Vediamo come utilizzare questo codice XML con PHP

<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=bari');
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>
<html>
    <head>
        <title>Google Weather API</title>
    </head>
    <body>
        <h1><?= print $information[0]->city['data']; ?></h1>
        <h2>Today's weather</h2>
        <div class="weather">
            <img src="<?= 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?>
            <span class="condition">
            <?= $current[0]->temp_f['data'] ?>&deg; F,
            <?= $current[0]->condition['data'] ?>
            </span>
        </div>
        <h2>Forecast</h2>
        <? foreach ($forecast_list as $forecast) : ?>
        <div class="weather">
            <img src="<?= 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?>
            <div><?= $forecast->day_of_week['data']; ?></div>
            <span class="condition">
	            <?= $forecast->low['data'] ?>&deg; F - <?= $forecast->high['data'] ?>&deg; F,
	            <?= $forecast->condition['data'] ?>
            </span>
        </div>
        <? endforeach ?>
    </body>
</html>
<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=”Bari, Puglia”/>
<postal_code data=”bari”/>
<latitude_e6 data=””/>
<longitude_e6 data=””/>
<forecast_date data=”2009-09-08″/>
<current_date_time data=”2009-09-08 14:20:50 +0000″/>
<unit_system data=”SI”/>
</forecast_information>
<current_conditions>
<condition data=”Parzialmente nuvoloso”/>
<temp_f data=”75″/>
<temp_c data=”24″/>
<humidity data=”Umidità: 41%”/>
<icon data=”/ig/images/weather/partly_cloudy.gif”/>
<wind_condition data=”Vento: N a 23 km/h”/>
</current_conditions>

Fonte:komunitasweb.com

Questo post è stato postato martedì, Settembre 8th, 2009 at 15:45 nella categoria Programmazione, Siti Web, tutorial. Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.

3 responses about “Mostrare le previsioni del tempo con PHP e Google Weather API”

  1. umbobabo said:

    Ciao,
    ho provato lo script ma se richiamo la città direttamente dall'URL le descrizioni compaiono in italiano, se lo faccio però da una pagina con PHP compaiono in inglese.

    Da dove prende la lingua?

    Ciao, grazie

  2. giocaputo said:

    Sicuramente prende la lingua di impostazione del browser. Questa info normalmente viaggia attraverso una richiesta http di un browser

  3. TheTmx said:

    Puoi specificare la lingua nell’URL, es:
    http://www.google.com/ig/api?hl=it&weather=Rome
    Come vedi ho scritto “hl=it” tra i parametri

    Ciao!

Lascia un commento

You must be loggati to post a comment.