5

我使用Google Weather API來獲取天氣信息,但顯然Google已經停止了它的服務。我正在嘗試切換到Yahoo Weather API。從城市名稱獲取WOEID?

var WOEID = 2502265; //random WOEID 
$.ajax({ 
    url: "http://weather.yahooapis.com/forecastjson?w=" + WOEID + "&u=c", 
    dataType: 'json', 
    success: function(data) { 
     console.log(data); 
    } 
}); 

但是,有沒有一種方法可以通過JavaScript獲取WOEID?因爲當時我可以做

http://www.google.com/ig/api?hl=en&weather=NYC 

就是這樣。

它說的Yahoo weather API page

要找到您WOEID,瀏覽或搜索從天氣主頁的城市。 WOEID位於該城市的預測頁面的URL中。您也可以通過在主頁上輸入您的郵政編碼來獲取WOEID。

但我想通過JavaScript獲取它,而不是手動去weather.yahoo.com並找出WOEID。

不關心跨源策略,因爲我在Chrome擴展中使用它,但它不適用。

回答

6

好吧,我從您的意見正是你想要的

你有一個地方的名字就知道,你想要得到的WOEID該地名使用javascript ajax調用

要獲取的網址未定義,必須使用GeoPlanet服務來解析某個地方的WOEID

http://where.yahooapis.com/v1/places.q('Place name')?appid=[yourappidhere] 

,或者你有更好的使用直接YQL一些什麼像這樣(在網址爲你的城市名稱使用編碼%)和嘗試做一個AJAX調用此

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=xml 
+0

謝謝,我會稍後再試。 –

+0

對不起,我之前粘貼了錯誤的URL正確的URL在答案 –

+0

更好的方法是直接在json中獲取數據,以便通過使format = json更容易處理它。 Like- http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=json – Anant

-1

若要獲得WOEID城市名稱

using (WebClient wc = new WebClient()) 
{ 
string results = wc.DownloadString("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22" + CityName + "%22&format=xml"); 
} 

See this article for more details

相關問題