雅虎天气WebService

时间:2011-01-11 17:45:31

标签: webservice-client yql yahoo-weather-api

我正在尝试使用Yahoo Query Language找到使用Yahoo Weather获取天气信息的方法。

当我居住在法国的一个名为Nice的城市时,以下查询会返回错误:

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

我有经纬度协调,所以如何让他们给YQL返回天气信息?这项服务是全球性的还是仅针对美国的?

1 个答案:

答案 0 :(得分:4)

您应该使用另一个YQL数据表。我尝试了这个查询,它工作正常:

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

This is the YQL console

我已添加unit="c"以将其设为Celsius,假设您需要它。如果没有,请使用“f”。

weather.bylocation表在内部使用以下两项内容:

  1. 查找位置的地址标识符(woeid),
  2. 然后查找此ID的天气。
  3. 请参阅下表中的内容:

        <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