Google Weather API

Lai atveidotu gaisa temperatūru Kambodžas blogā, es gribēju atrast vienkāršu veidu, lai ar php palīdzību varētu izvadīt, šī brīža gaisa temperatūru, gaisa mitrumu un īsu laikapstākļu raksturojumu.

Dažādas laikapstākļu lapas piedāvā savus vidžetus un citus niekus, taču visbiežāk informācija tiek izvadīta angļu valodā, kā arī līdzi nāk krietna deva ar datiem, kuri ir lieki.

Nesen atradu, ka ir nedokumentēts Google Weather API, kas no Google puses netiek īpaši reklamēts, bet kurš ir atbildīgs par iGoogle laikapstākļu attēlošanu.

Primitīvākais koda gabals, ko atradu ir no šīs lapas: freecomputeradvice.net Droši vien var atrast, ko labāku, bet šis pilnībā atbilst manām prasībām, turklāt ir iespēja datus izvadīt normālā latviešu valodā. Mazliet pielaboju kodu, lai tas spētu tikt galā ar latviešu valodas kodējumu, kā arī, lai attēlotu man nepieciešamo informāciju.

Lūk koda piemērs:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <?php
 function getWeather() {
 $requestAddress = "http://www.google.com/ig/api?weather=cambodia&amp;hl=lv";
 $dataInISO = file_get_contents($requestAddress);
 $dataInUTF = mb_convert_encoding($dataInISO, "UTF-8", "ISO-8859-13");
 
 $xml_str = file_get_contents($requestAddress,0);
 $xml = simplexml_load_string($dataInUTF);
 $count = 1;
 
 foreach($xml->weather as $item) {
        foreach($item->current_conditions as $new) {
               echo $new->condition['data'];
               echo $new->humidity['data'];
               echo $new->temp_c['data'];
               // un tā tālāk
               }
        }
 }
 getWeather();
?>

Rezultātā tiekam pie šādas informācijas:

Lai redzētu, kādi dati vēl ir pieejami var atvērt, piemēram, šo lapu http://www.google.com/ig/api?weather=cambodia&hl=lv un izpētīt xml struktūru, lai pēc tam izveidotu attiecīgu pieprasījumu.

Kā redzams ir iespējams saņemt arī laika prognozi, kā arī ikonu ar laikapstākļu attēlojumu:

Ja nepieciešama informācija par pilsētu, tad jānorāda: weather=pilsēta,valsts. Par to vai prasījums izveidots pareizi var pārliecinoties atverot lapu pārlūkā.

 

, , , ,