Google Weather API
Voici une classe vous permettant de profiter des services de météo proposés par Google.
Vous allez pouvoir très facilement obtenir un rendu de ce style :

Cette classe s’utilise simplement de la manière suivante :
$gweather = new GoogleWeatherAPI('nantes','fr'); // "en" also work
if($gweather->isFound()) {
echo '<pre>'; print_r($gweather->getCity()); echo '</pre>';
echo '<pre>'; print_r($gweather->getCurrent()); echo '</pre>';
echo '<pre>'; print_r($gweather->getForecast()); echo '</pre>';
}
Cela donne le rendu suivant :
Nantes, Pays de la Loire Array ( [condition] => Couverture nuageuse partielle [temp_f] => 63 [temp_c] => 17 [humidity] => Humidité : 68 % [icon] => http://www.google.com/ig/images/weather/partly_cloudy.png [wind_condition] => Vent : NO à 10 km/h ) Array ( [0] => Array ( [day_of_week] => sam. [low] => 7 [high] => 19 [icon] => http://www.google.com/ig/images/weather/rain.png [condition] => Pluie ) [1] => Array ( [day_of_week] => dim. [low] => 8 [high] => 19 [icon] => http://www.google.com/ig/images/weather/rain.png [condition] => Pluie ) [2] => Array ( [day_of_week] => lun. [low] => 9 [high] => 19 [icon] => http://www.google.com/ig/images/weather/rain.png [condition] => Pluie ) [3] => Array ( [day_of_week] => mar. [low] => 8 [high] => 19 [icon] => http://www.google.com/ig/images/weather/rain.png [condition] => Averses ) )
Libre à vous de mettre en forme les données proposées.
Voici un exemple de rendu que je vous propose :

Démonstration
example.php (1,9 KiB, 4 025 hits)
Attention : Google envoie toutes les données dans un flux xml en UTF8, si votre site est en UTF8, aucun problème, sinon, pensez à utf8_decode().
GoogleWeather.class.php (3,3 KiB, 4 671 hits)
Changelog
[02/09/2009]
- Utilisation de CURL
[25/08/2009]
- Ajout d’une démo
[19/05/2009]
- Mise en place de la méthode isFound() pour tester que la ville à été trouvé
[09/05/2009]
- Release initiale



26 octobre 2011 - 11 h 08 min
@kizou tu peux regarder les commentaires précédents pour des précisions : http://weatherdoll.com/weather-icons.php
26 octobre 2011 - 11 h 22 min
merci a toi, je l’avais zappe celui la.
dommage que google ne donne pas plus d’info sur cette api.
en tout cas, encore merci a toi pour ta classe
1 décembre 2011 - 20 h 54 min
Terrible !
Merci pour ce tuyau !!
Ca déchire !
15 décembre 2011 - 15 h 19 min
Bonjour Yohann,
J’ai essayé d’installer la meteo sur Google mais comme tu le constateras sur mon site http://www.meteo-a-paris.fr/meteo-google/, ça ne marche pas. Tandis que ta page d’exemple installée sur mon ftp http://www.meteo-a-paris.fr/wp-content/themes/aperture/example.php fonctionne à merveille !
Je suis complètement novice donc je sais que je dois pas faire un truc correct.
Peux-tu m’aider ?
Merci beaucoup,
Greg
15 décembre 2011 - 17 h 05 min
Bon finalement j’ai réussi à installer tout cela
Il me reste un peu de mise en forme à mettre en place. Cependant, quel est le script exact à installer pour ne rafraichir les données que toutes les 6 heures ? étant donné que d’après ce que j’ai compris, google n’en permet plus l’affichage à partir d’un certain nombre de requêtes.
Merci
9 janvier 2012 - 11 h 44 min
Bonjour tous le monde,
Merci beaucoup à Yohann pour cette API facile d’utilisation.
Le problème que j’ai rencontré a déjà été souligné par un autre utilisateur :
Warning: Google results parse problem : http error 302 in GoogleWeather.class.php on line 97
On pense à un quota de requête atteint et Google qui me bloque l’accès, mais non ! Je viens de mettre le site en ligne, l’adresse IP est nouvelle pour Google. Alors que sur ma machine locale ça fonctionne toujours même après des milliers de tests.
Quelqu’un à une idée svp ?
Nas
15 janvier 2012 - 14 h 01 min
Tu dois peut être installer/activer cURL sur ton serveur
1 février 2012 - 20 h 55 min
Bonjour,
Et merci beaucoup pour cette classe.
J’ai découvert une option qui nous évitera de changer de Pays pour certaines ville…
Changer la ligne 60
$this->url = ‘http://'.$this->domain.'/ig/api?weather='.urlencode($this->city_code).'&hl='.$lang;
en
$this->url = ‘http://'.$this->domain.'/ig/api?weather='.urlencode($this->city_code.',fr‘).’&hl=’.$lang;