3

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

由于我住在法国的尼斯市,因此以下查询返回错误:

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

我已经协调了纬度和经度,那么如何将它们提供给 YQL 以返回天气信息?这项服务是全球性的还是仅适用于美国?

4

1 回答 1

4

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

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

这是 YQL 控制台

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

于 2011-01-12T00:50:14.773 回答