2012-02-22 11 views
2

JavaScriptでWOEIDから天気予報を取得する方法はありますか?天気予報は、JavaScriptで(YQLやRSSを利用して)?

私はヤフーのRSSフィードを使用してみましたが、それは仕事を得ることができませんでした。ここに私のコードは

var url = "http://weather.yahooapis.com/forecastrss?w=" + encodeURIComponent('WOEID here'); 

    $.ajax({ 
     url: url, 
     dataType: 'jsonp', 
     jsonpCallback: function(data) { console.log(data); }, 
     success: function(data) { alert("success"); } 
    }); 

どのような提案がありますか?

答えて

2

ここでは、jQueryとYQLを使用したい情報を取得する最も簡単な方法です:

var woeid = "26355493"; 

var $url = "http://query.yahooapis.com/v1/public/yql?callback=?"; 

$.getJSON($url, { 
    q: "select * from xml where url=" + 
     "\"http://weather.yahooapis.com/forecastrss?w=" + woeid + "\"", 
    format: "json" 
    }, function (data) { 
    console.log(data.query.results.rss.channel); 
    } 
);​ 

The query in the YQL console...

The JavaScript code in jsfiddle...

+0

これは完全な天気情報を返しません。どのように湿度、大気データなどを取得できますか? – Sujit

+0

OK私はあなたのためのデバッグコンソールに出力するデータをすべてのコードを更新しました。 YQLとjsfiddleのリンクも更新されています。これらの変更を行っている間、 'select * from rss'は実際に' select * from xml'と比較してデータのサブセットを返すだけでしたので、私も変更しました。 – hippietrail

+1

ありがとうございます。あなたのソリューションは私のものより優れています... :) – Sujit

1

Weather APIは、jsonpの形式で関数が期待しているように、その結​​果をRSS形式で返します。プロセス、あなたのためにそれを天気RSSフィードを取得するためにYahoo! Pipesを使用することを検討してください、とjsonp形式でそれを返します。ここで

が同様の何かをするパイプです:龍が示唆したように

http://pipes.yahoo.com/pipes/pipe.info?_id=4d160cd8ed9d6d78164213928a51507d

+0

JSON:http://weather.yahooapis.com/forecastjson?w=2502265 –

0

、私はYahooのパイプを作成しました - ここに私の完全なコードです。コードのURLは私が作成したYahoo Pipeです。

$(function(){ 
    var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=e33143abd20b19a0173b3a4b479fa4d3&_render=json&w=YOURWOEIDHERE"; 

    function createRequest() { 
     try { return new XMLHttpRequest(); } catch(e) {} 
     try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {} 
     return null; 
    } 
    var request = createRequest(); 
    request.open("GET", url, true); 
    request.onreadystatechange = callback; 
    request.send(null); 

    function callback() { 
     if(request.readyState != 4) { return } 
     Obj = $.parseJSON(request.responseText); 
     console.log(Obj); 
    } 
}); 

参照:
ヤフーパイプ:http://pipes.yahoo.com/pipes/pipe.info?_id=e33143abd20b19a0173b3a4b479fa4d3
jQuery 1.5 - JSON error invalid label

関連する問題