Home > Articoli > L’angolo del mashup: Google Maps e Weather.com

L’angolo del mashup: Google Maps e Weather.com

Nei ritagli di tempo mi piace molto giocare con le varie API dei servizi web e fare quelli che vengono dettimashup. Sfogliare siti come mashable,programmablewebxmethods fanno venire molte idee in testa (il più delle volte già fatte o strampalate :P).
Inauguro questo angolo del mashup con Google MapsWeather.com. Il mashup è abbastanza semplice, si tratta di individuare una citta, prendere i dati relativi alle previsioni meteo, prendere anche i dati relativi a latitudine e longitudine e sbattere in una pagina le previsioni del meteo con la mappa relativa.

Per richiedere informazioni a weather.com a proposito di una città è sufficiente parsare un file XML che viene restituito, cercando i tag LOC, ID e il rispettivo valore. Qui di seguito qualche stralcio di codice PHP


$citySearch=$_GET['citySearch'];
$unit=$_GET['unit'];
$url="http://xoap.weather.com/search/search?where=".$citySearch;
if (file_exists($url)){
$data = implode('', file($url));
} else {
$fp = fopen($url,'r');
while(!feof($fp)){
$data = $data . fread($fp, 1024);
}
fclose($fp);
//SI DEVE EFFETTUARE ORA IL PARSING DELL'XML CERCANDO I TAG LOC, ID

Abbiamo così una pagina con dei link alle varie città trovate (purtroppo bisogna inserire il nome in inglese e le citta non sono chiaramente tutte quelle di questo mondo :P). Ora bisogna parsare il file XML relativo alla città a cui siamo interessati, cercando i tag relativi alle informazioni meteo e anche alla latitudine e longitudine


$id=$_GET['id'];
$partnerId="1034244729";
$licenseKey="CHIAVE_DI_SVILUPPO_DI_WEATHER.COM";
$unit=$_GET['unit'];
$url="http://xoap.weather.com/weather/local/$id?cc=*&prod=xoap&unit=$unit&par=$partnerId&key=$licenseKey";
if (file_exists($url)){
$data = implode('', file($url));
} else {
$fp = fopen($url,'r');
while(!feof($fp)){
$data = $data . fread($fp, 1024);
}
}
fclose($fp);
$xml_parser = xml_parser_create();
xml_parse_into_struct( $xml_parser, $data, $vals, $index );
xml_parser_free( $xml_parser );
$icon_found=false;
foreach ($vals as $key => $i) {
if ($vals[$key]['tag'] == 'LAT') {
$lat=$vals[$key]['value'];
}
else if ($vals[$key]['tag'] == 'LON') {
$lon=$vals[$key]['value'];
}
else if ($vals[$key]['tag'] == 'TMP') {
$temperature=$vals[$key]['value'];
}
...
...

Infine inseriamo nella pagina dove vogliamo visualizzare informazioni sul meteo (che abbiamo nelle variabili $temperature, $humid etc. etc.) il codice per visualizzare la mappa di Google Maps, passando come latitudine e longitudine i valori presi da weather.com

  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: