您的位置:首页 > 其它

一个可以用的天气API

2014-08-13 17:23 302 查看


Yahoo Weather API

在拿inSysu做实验的时候,发现以前一直在用的腾讯天气的API关闭了。就去找了一下其他的天气API,然后发现大家推荐的中国天气网的API太不科学了。我想请求一次天气需要:

拿到经纬度
地理反查询拿到城市
查表获取地区代号
用代号调用API查询天气。

看起来还好,但是那个查表的过程,实在是太猎奇了,也没什么文档。

之后去对比了一下国外服务,看到的要么就是严重不准确,要么就是收费的如Google、Weather.com,我一个公益项目这样太不值了。

选来选去,就使用和iOS一样的数据提供商雅虎吧,虽说也不怎么省事。


Yahoo Query Language

雅虎天气的API有两套,我们这里选择这个看起来高大上的YQL API。

实际上就是把SQL URLEncode一下,扔到了HTTP GET的参数中。

一个Query的结构参数如下
参数名参数值
qYQL 查询语句
Diagnosticstrue/false
formatjson/xml
可以在雅虎提供的控制台里面模拟操作


Where On Earth IDentifier

雅虎天气是通过 WOEID来返回天气的,那么首先我们先要知道我们所在地点的WOEID。

雅虎也提供了这个查询机制,而且很方便对应的终端是http://developer.yahoo.com/yql/console/?debug=true#h=select+*+from+geo.placefinder+where+text%3D%22sfo%22

这里text键值可以用 中文、英文、经纬度。如

1
2
3
4
5

select * from geo.placefinder where text="Guangzhou"

select * from geo.placefinder where text="北京"

select * from geo.placefinder where text="39.9919336,116.3404132"


Weather

这一步就简单了

1

select * from weather.forecast where woeid=2502265 and u="c"

这样就能拿到以摄氏度返回的天气了。

这里注意一点,天气的返回值里面有一个code,那个代表的是各种天气类型,暴风雨啊龙卷风啊冰雹啊之类的。

code 的 具体对照表可以参考 rss的雅虎天气api

Mar 18th, 2014

雅虎天气

Comments


Comments

Copyright © 2014 Xiaoxuan Tang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐