Il primo passo è quindi quello di sviluppare un sistema che possa comprendere le condizioni meteo esterne. Ho trovato il servizio di API Yahoo Weather e me ne sono innamorato!
Di seguito è mostrato il codice dello script php che ho sviluppato: utilizza le funzioni curl per interfacciarsi con le API che rispondono in JSON, ho mappato i codici delle condizioni meteo in italiano (come da documentazione ufficiale) e ho scovato su stackoverflow una funzione per tradurre la direzione del vento da gradi alle classiche direzioni da rosa dei venti.
<?php //Tradotto in php dall'originale //http://stackoverflow.com/questions/7490660/converting-wind-direction-in-angles-to-text-words function degToCompass($num) { $val=floor(($num/22.5)+.5); $arr=["N","NNE","NE","ENE","E","ESE", "SE", "SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"]; return $arr[($val % 16)]; } $condizioni = array( "0"=> "tornado", "1"=> "tempesta tropicale", "2"=> "uragano", "3"=> "forti temporali", "4"=> "temporali", "5"=> "pioggia mista a neve", "6"=> "pioggia mista a nevischio", "7"=> "neve mista a nevischio", "8"=> "pioviggine gelata", "9"=> "pioggerella", "10"=> "pioggia gelata", "11"=> "rovesci", "12"=> "rovesci", "13"=> "raffiche di neve", "14"=> "rovesci di neve leggeri", "15"=> "soffia neve", "16"=> "neve", "17"=> "grandinare", "18"=> "nevischio", "19"=> "polvere", "20"=> "nebbioso", "21"=> "foschia", "22"=> "foschia", "23"=> "ventoso", "24"=> "ventoso", "25"=> "freddo", "26"=> "nuvoloso", "27"=> "Sereno", "28"=> "Sereno", "29"=> "parzialmente nuvoloso", "30"=> "parzialmente nuvoloso", "31"=> "Sereno", "32"=> "soleggiato", "33"=> "Sereno", "34"=> "Sereno", "35"=> "pioggia mista e grandine", "36"=> "caldo", "37"=> "isolati temporali", "38"=> "temporali sparsi", "39"=> "temporali sparsi", "40"=> "Rovesci sparsi", "41"=> "tormenta di neve", "42"=> "rovesci di neve sparsi", "43"=> "tormenta di neve", "44"=> "parzialmente nuvoloso", "45"=> "rovesci temporaleschi", "46"=> "rovesci di neve", "47"=> "Temporali isolati", "3200"=> "non disponibile" ); $BASE_URL = "http://query.yahooapis.com/v1/public/yql"; $yql_query = 'select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="Rimini, Italy") and u="c"'; $yql_query_url = $BASE_URL . "?q=" . urlencode($yql_query) . "&format=json"; $session = curl_init($yql_query_url); curl_setopt($session, CURLOPT_RETURNTRANSFER,true); $json = curl_exec($session); $phpObj = json_decode($json); echo "\nMeteo per Rimini\n"; echo "----------------\n"; echo "Temperatura: "; echo $phpObj->query->results->channel->item->condition->temp."° C\n"; echo "Condizioni meteo: "; echo $condizioni[$phpObj->query->results->channel->item->condition->code]."\n"; echo "Alba: "; echo $phpObj->query->results->channel->astronomy->sunrise."\n"; echo "Tramonto: "; echo $phpObj->query->results->channel->astronomy->sunset."\n"; echo "Umidità: "; echo $phpObj->query->results->channel->atmosphere->humidity."%\n"; echo "Pressione: "; echo $phpObj->query->results->channel->atmosphere->pressure." millibar\n"; echo "Previsioni: "; echo $condizioni[$phpObj->query->results->channel->item->forecast[0]->code]; echo ", t. max ".$phpObj->query->results->channel->item->forecast[0]->high; echo "° C, t. min ".$phpObj->query->results->channel->item->forecast[0]->low." °C \n"; echo "Vento: "; echo $phpObj->query->results->channel->wind->speed." km/h "; echo degToCompass($phpObj->query->results->channel->wind->direction)."\n";
1 commento:
Ciao Stefano volevo sapere se e possibile inserire anche icona meteo
Posta un commento