我正在尝试使用 Yahoo Query Language 找到一种通过 Yahoo Weather 获取天气信息的方法。
由于我住在法国的尼斯市,因此以下查询返回错误:
select * from weather.forecast where location='Nice'
我已经协调了纬度和经度,那么如何将它们提供给 YQL 以返回天气信息?这项服务是全球性的还是仅适用于美国?
我正在尝试使用 Yahoo Query Language 找到一种通过 Yahoo Weather 获取天气信息的方法。
由于我住在法国的尼斯市,因此以下查询返回错误:
select * from weather.forecast where location='Nice'
我已经协调了纬度和经度,那么如何将它们提供给 YQL 以返回天气信息?这项服务是全球性的还是仅适用于美国?
您应该改用另一个 YQL 数据表。我试过这个查询,它工作正常:
SELECT * FROM weather.bylocation WHERE location='Nice' AND unit="c"
unit="c"
假设你想要它,我已经添加了摄氏温度。如果没有,请使用“f”。
该表在内部weather.bylocation
使用以下两件事:
woeid
的位置标识符 (),请参阅下表的内部结构:
<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