2011-01-11 2 views
3

私は、Yahoo Query Languageを使用してYahoo Weatherで天気情報を取得する方法を見つけようとしています。Yahoo Weather WebService

私はニースと呼ばれる街で、フランスに住んでいたよう、次のクエリがエラーを返します。

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テーブルは、次の2つの事柄使用される:次いで

  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> 

もはやこれはもう必要ない?

も良い読み取り:あなたはweather.forecastテーブルを使用するとき摂氏単位を変更したい場合は、あなたがこの条件を追加する必要が

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

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

+0

AND演算子:U =」 c "ie:select * from weather.forecast woeid = 823015、u =" c " – golddragon007

+0

このクエリは機能しなくなりました。このエラーを取得するには、「有効な資格情報を入力してください。ウェブサイトがユーザエージェントをブロックするか、OAuthを必要とするため、YQLの信頼性は低下してきているようです。 – 10basetom

関連する問題