jQuery. Pogoda Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Olek   
wtorek, 22 czerwca 2010 12:30

 Prosta wtyczka jQuery do wyświetlania informacji o pogodzie na dowolnym miejscu. Dane są pobierane ze strony Yahoo!.

Musisz podać kod pocztowy albo (tylko USA) lokalizację. Kod pocztowy z poza USA nie są obsługiwane przez Yahoo Pogoda API więc musisz wpisać zagraniczne miejsca. Na przykład, jeśli chcesz się dowiedźiedź jaka jest pogoda w Londyniemusisz wpisać"London, Wielka Brytania".Yahoo API nie rozpozna "Londyn, UK", więc należy umieścić pełną nazwę kraju.

Jeśli podasz kod pocztowy i lokalizację to lokalizacja będzie na pierwszym miejscu i będą wykorzystywana przez kod pocztowy.

 

Aleksander Dombrowski

 

/*
 * simpleWeather
 * 
 * A simple jQuery plugin to display the weather information
 * for a location. Weather is pulled from the public Yahoo!
 * Weather feed via their api.
 *
 * Developed by James Fleeting 
 * Another project from monkeeCreate 
 *
 * Version 1.4 - Last updated: June 4 2010
 */
(function($){$.extend({simpleWeather:function(d){var d=$.extend({zipcode:'76309',location:'',unit:'f',success:function(a){},error:function(a){}},d);var e='http://query.yahooapis.com/v1/public/yql?format=json&diagnostics=true&callback=?&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&q=';if(d.location!='')e+='select * from weather.forecast where location in (select id from weather.search where query="'+d.location+'") and u="'+d.unit+'"';else if(d.zipcode!='')e+='select * from weather.forecast where location in ("'+d.zipcode+'") and u="'+d.unit+'"';else{d.error("No location given.");return false}$.getJSON(e,function(c){if(c!=null&&c.query.results!=null){$.each(c.query.results,function(i,a){if(a.constructor.toString().indexOf("Array")!=-1)a=a[0];currentDate=new Date();sunRise=new Date(currentDate.toDateString()+' '+a.astronomy.sunrise);sunSet=new Date(currentDate.toDateString()+' '+a.astronomy.sunset);if(currentDate>sunRise&¤tDate338)windDirection="N";else if(wind>0&&wind24&&wind69&&wind114&&wind186&&wind204&&wind249&&wind294&&wind<337)windDirection="NW";var b={title:a.item.title,temp:a.item.condition.temp,units:{temp:a.units.temperature,distance:a.units.distance,pressure:a.units.pressure,speed:a.units.speed},currently:a.item.condition.text,high:a.item.forecast[0].high,low:a.item.forecast[0].low,forecast:a.item.forecast[0].text,wind:{chill:a.wind.chill,direction:windDirection,speed:a.wind.speed},humidity:a.atmosphere.humidity,pressure:a.atmosphere.pressure,rising:a.atmosphere.rising,visibility:a.atmosphere.visibility,sunrise:a.astronomy.sunrise,sunset:a.astronomy.sunset,description:a.item.description,thumbnail:"http://l.yimg.com/a/i/us/nws/weather/gr/"+a.item.condition.code+timeOfDay+"s.png",image:"http://l.yimg.com/a/i/us/nws/weather/gr/"+a.item.condition.code+timeOfDay+".png",tomorrow:{high:a.item.forecast[1].high,low:a.item.forecast[1].low,forecast:a.item.forecast[1].text,date:a.item.forecast[1].date,day:a.item.forecast[1].day,image:"http://l.yimg.com/a/i/us/nws/weather/gr/"+a.item.forecast[1].code+"d.png"},city:a.location.city,country:a.location.country,region:a.location.region,updated:a.item.pubDate,link:a.item.link};d.success(b)})}else{if(c.query.results==null)d.error("Invalid location given.");else d.error("Weather could not be displayed. Try again.")}});return this}})})(jQuery);