Son zamanlar çok az vaktim oluyor haliyle paylaşım da yapamıyorum. O yüzden birçok kişinin ortak isteği olduğu için böyle bir konuya değinmek istedim. Hazırladığınız sayfalarda kullanıcı için faydalı bilgiler sunmak isteyebilirsiniz. Bu bilgilerden bir tanesi de hava durumudur.
Bu paylaşımda Yahoo Weather Api kullanarak istediğiniz ülke ve şehir için 10 günlük hava durumunu nasıl çekebileceğimizi anlatmaya çalıştım.
YQL Query (Kullanacağımız sorgu. Burada sadece sonda izmir ve tr girmemiz yeterli)
select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="izmir, tr")
Fakat yukarıdaki gibi bir sorgu bize Fahrenheit olarak sonuç verir. Bize Celcius gerekli olduğu için sorgunun and u=’c’ kodlarını eklememiz gerekiyor. Sonuç olarak YQL Query aşağıdaki gibi olacaktır:
select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="nome, ak") and u='c'
Bu sorguyu çalıştırdığınızda size json formatında bir liste dönüyor. İşte bu json`u parse edersek 10 günlük hava durumunu rahatlıkla elde etmiş olacağız.
Tam olarak PHP kodumuz şöyle olacaktır:
<?php
$BASE_URL = "http://query.yahooapis.com/v1/public/yql";
$sql = "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text='izmir, tr' )and u='c'";
$URL = $BASE_URL . "?q=" . urlencode($sql) . "&format=json";
$data=file_get_contents($URL);
$parse=json_decode($data);
foreach ($parse->query->results->channel->item->forecast as $key => $value)
{
echo "<ul>";
echo '<li>'.$value->date.' - '.$value->code.' - '.$value->text.' - '.$value->high.'°C - '.$value->low.'°C</li>';
echo "</ul>";
}
?>
Bu kod yardımıyla oluşturulan json linki için tıklayın.
Hava durumu kodlarına buradan ulaşabilirsiniz.
Dersin daha anlaşılır olması için aşağıdaki videoyu izlemenizi tavsiye ederim. Destek olmak için arkadaşlarınızla paylaşırsanız da sevinirim 🙂
Örnek kod dosyasına github hesabımdan ulaşabilirsiniz.
Yanıtla
Haydar
Hoca linklerini kontrol eder misin
22.02.2017, 13:03:11Yanıtla
Anar SAMADOV
linkleri kontrol ettim bir sıkıntı yok
22.02.2017, 20:34:23Yanıtla
Haydar
Ayrıca şunu belirteyim Yahoo’dan 10 günlük hava durumu senin verdiğin kodlarla çok güzel çekiliyor. Tebrik ederim teşekkür ederim.
23.02.2017, 13:36:11Yalnız benim bir isteğim olacak
Ben sadece BUGÜN ve BUGÜNÜN NEM, RÜZGAR VE BASINÇ oranları ile birlikte çekmek istiyorum.
Yardımcı olabilir misin?
Yanıtla
Halit Yazıcı
Kardeş teşekkür ederim. Ancak yahoo hava durumu açıklamasını yani ‘.$value->text.’ bölümünü replace yapamadım. Bu açıklama bölümünü nasıl Türkçe yapabiliriz. Yardımcı olabilir misin?
24.02.2017, 16:18:20Yanıtla
Anar SAMADOV
Yahoo türkçe hava durumu sunmuyor. o yüzden çeviri kendiniz yapıp ona göre programlamanız gerekiyor.
24.02.2017, 16:35:11Yanıtla
ebru
5 gunluk veri cekmek icin ne yapmalıyım?
11.04.2017, 17:25:56Yanıtla
Anar SAMADOV
Bu api 10 günlük değerleri döndürür. siz 5 günlük göstermek isterseniz programlama tarafında bunu kontrol ettirebilirsiniz.En basitinden bir sayaç kullanabilirsiniz.5 olduğunda durdurursunuz.
11.04.2017, 21:21:36