2012-02-22 2 views
2

자바 스크립트에서 일기 예보를 얻을 수있는 방법이 있습니까?일기 예보 WOEID (YQL 또는 rss 사용)에서 javascript?

yahoo의 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

0

, 나는 야후 파이프를 생성을 - 여기 내 전체 코드입니다; 코드의 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