2011-01-11 122 views
3

我試圖找到一種方法來使用雅虎查詢語言與雅虎天氣獲取一些天氣信息。雅虎天氣Web服務

由於我住在法國,在一個叫尼斯城市,下面的查詢將返回一個錯誤:

select * from weather.forecast where location='Nice' 

我的緯度和經度協調,憑什麼我給他們YQL返回天氣信息?這項服務是全球性的還是僅僅針對美國?

回答

4

您應該使用另一個YQL數據表。我曾嘗試此查詢,它工作正常:

SELECT * FROM weather.bylocation WHERE location='Nice' AND unit="c" 

This is the YQL console

我已經加入unit="c"得到它,它攝氏度,假設你想要的。如果不是,請使用「f」。

在內部,weather.bylocation表是使用以下兩兩件事:

  1. 查找「阿凡上爲位置地球標識符(woeid),
  2. 然後查找天氣此ID的。

請參閱下表的內部:

<execute><![CDATA[ 
     default xml namespace ='http://where.yahooapis.com/v1/schema.rng'; 
     var x = y.query('select woeid from geo.places(1) where text="'+location+'"'); 
     var s = x.results; 
     var woeid = s..woeid; 
     var weather = y.rest('http://weather.yahooapis.com/forecastrss?w='+woeid+'&u='+unit).get().response; 
     response.object = <weather>{weather}</weather>; 
    ]]></execute> 

關於你提到的關於緯度和經度的用法第二個問題協調: 我不知道是否可以使用他們,但也許你現在甚至不需要這個,對吧?

也很好看:

http://developer.yahoo.com/weather/

http://developer.yahoo.com/geo/geoplanet/guide/concepts.html

+0

,如果你想,當你使用weather.forecast表來改變單位爲攝氏度,則需要用AND運算符添加此條件:U =」 c「ie:select * from weather.forecast where woeid = 823015 and u =」c「 – golddragon007 2016-02-08 14:36:11