1.新浪天气预报API
http://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0
其中,city后的城市可用java.net.URLEncoder.encode(“武汉”,” gb2312”);也可以直接写”武汉”;但不能用”wuhan”。
Password固定
Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4
返回的XML为
说明:
标签中1表示白天,2表示夜间 | |
<status> < figure> <direction> <power> <temperature> <ssd> <ssd_l> <ssd_s> <tgd> <zwx> <zwx_l> <zwx_s> <ktk> <ktk_l> <ktk_s> <pollution> <pollution_l> <pollution_s> <xcz> <xcz_l> <xcz_s> <chy> <chy_l> <chy_shuoming> <gm> <gm_l> <gm_s> <yd> <yd_l> <yd_s> <zho> <zho_l> <zho_shuoming> <diy> <diy_l> <diy_shuoming> <fas> <fas_l> <fas_shuoming> <savedate_weather> <savedate_life> <savedate_zhishu> | 天气情况中文 天气情况拼音 风向 风级 温度 体感指数数值 体感度指数 体感度指数说明 体感温度 紫外线指数数值 紫外线指数 紫外线指数说明 空调指数数值 空调指数 空调指数说明 污染指数数值 污染物扩散条件 污染指数说明 洗车指数数值 洗车指数 洗车指数说明 穿衣指数数值 穿衣指数 穿衣说明 感冒指数数值 感冒指数 感冒指数说明 运动指数数值 运动指数 运动指数说明 天气预报日期 生活日期 指数日期 |
2.中央气象台的API
www.weather.com
CHXX0138 为武汉的天气代码
Unit=m 温度以摄氏度显示;去掉该参数,温度以华氏度显示
Dayf为0,1返回当天天气,其他数字为多天天气,最大可为5,返回当天及往后4天的天气预报
Par为注册时返回的Partner ID: 1220552427
Key为注册时返回的License Key: c168fcf83120f8ed
说明:
Wuhan, China 11:37 AM 30.58 114.27 6:49 AM 5:26 PM 8 | 城市的天气代码 城市,国家 查询时间 纬度 经度 日出时间 日落时间 |
当前天气 | |
11/16/10 10:00 AM Local Time Wuhan, CHINA 48 48 Fog 20 | 更新时间 当前温度 体感温度 天气情况 天气图标 |
30.36 steady | |
N/A 0 VAR | 风速2英里/小时 |
</</span>dayf> | 传入的dayf参数,查询几天就有几个child |
11/16/10 2:36 PM Local Time N/A 43 6:49 AM 5:26 PM 44 N/A
N/A N/A N/A N/A 10 N/A 33 Mostly Clear
N/A 131 SE M Clear 10 92 | 更新时间 日期 高温 低温 日出时间 日落时间 白天天气情况 天气图标 风 风向 Chance of Precip:10% 夜间天气情况 天气图标 大部分地区晴朗无云 风 5英里/小时 东南风 风向:东南风 Chance of Precip:10% |
3.www.weather.com.cn
http://m.weather.com.cn/data/101200101.html 数据页面
101200101 为武汉的城市代码
由 http://61.4.185.48:81/g/ 得到本机访问的IP,根据此IP查询到城市ID,
var ip="61.183.248.221";var id=101200101;if(typeof(id_callback)!="undefined"){id_callback();}
再根据城市ID返回该城市天气信息
http://m.weather.com.cn/m/pn12/weather.htm
该地址为天气插件的代码
各城市ID见 《中国天气网城市代码.txt》
4.yahoo天气预报
http://xml.weather.yahoo.com/forecastrss?w=2163866&u=c
w对应各个地方在yahoo数据库中的WOEID,如北京的WOEID是2151330;武汉为2163866;
u 为温度的单位,c表示摄氏度;f表示华氏度
http://xml.weather.yahoo.com/forecastrss?p=CHXX0138&u=c
p为城市天气代码,不推荐使用
没有预报几天的参数(或未找到),返回的XML中含有当天和第二天的天气基本情况。
说明:
位置:城市,国家 单位:温度单位(摄氏),间距单位,气压单位,风速单位 风:冷风级别9,风向,风速3.22 大气情况:湿度,能见度,压强, 天文:日出6:49am,日落5:25pm | |
Conditions for Wuhan, CH at 10:00 am CST 30.58 114.27 Tue, 16 Nov 2010 10:00 am CST | 纬度 经度 链接 更新时间/查询时间 天气情况:text天气情况(雾),code天气图标,temp温度9摄氏度,date日期 |
天气预报:day星期,date日期,low低温,high高温,text天气情况,code天气图标 |
以上是中央气象台的API:
根据 下面的接口可获得城市天气情况
http://www.weather.com.cn/data/sk/101010100.html
http://www.weather.com.cn/data/cityinfo/101010100.html
http://m.weather.com.cn/data/101010100.html
返回的是json数据。上面三个url返回的数据是不一样的。具体自己尝试吧。数据非常全,101010100是北京的城市代码,所以还是需要城市代码的。
Google Weather API (貌似已关闭)
只支持美国地区使用邮政编码进行查询,例如:
http://www.google.com/ig/api?hl=zh-cn&weather=94043
(94043 为 山景城, 美国加州 的邮政编码)
而除了美国以外的地区需要使用经纬度坐标作为参数才能执行 Google Weather API, 例如:
http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996
(30670000,104019996 为 成都, 中国大陆 的经纬度坐标)
当然,也可能通行城市名称的汉语拼音来查询,例如:以下是北京的天气
http://www.google.com/ig/api?weather=Beijing
要其它地区的经纬度坐标,可以通过 Google API 提供的国家代码列表及相应的城市经纬度坐标列表可以查询到,以下是 Google API 提供的查询参数:
http://www.google.com/ig/countries?output=xml&hl=zh-cn
(查询 Google 所支持的所有国家的代码,并以 zh-cn 简体中文显示)
http://www.google.com/ig/cities?output=xml&hl=zh-cn&country=cn
Google开放了一套天气预报API,还是很好用的。
使用邮政编码(美国)
http://www.google.com/ig/api?hl=zh-cn&weather=94043(加州山景城)
使用经度纬度坐标
http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996(成都)
使用通行城市名称
http://www.google.com/ig/api?weather=Beijing&hl=zh-cn(北京)
http://www.google.com/ig/api?weather=Osaka&hl=zh-cn(大阪)
或
http://www.google.com/ig/api?weather=Beijing&hl=zh(北京)
http://www.google.com/ig/api?weather=Osaka&hl=ja(大阪)
可以查找到哪些国家和城市呢?谷歌也提供了接口。返回的类型也可以根据output参数来指定。
查找国家 http://www.google.com/ig/countries?output=xml&hl=zh-cn (返回xml)
查找城市 http://www.google.com/ig/cities?hl=zh-cn&country=cn (返回json)
有了这些数据,在自己的应用里加入天气预报就不难了。
谷歌的天气预报API。优点在于可以直接获取支持查询天气的国家和城市。并且可以预报4天天气,支持经纬度查询天气(这个可以利用GPS做应用)。