WeatherUnderground 天气数据接口(含中国城市代码)
转载自http://www.cnblogs.com/irever/p/4126841.html#undefined
谢谢作者!
本文当做简单的记录,方便自己以后查阅,文章写得有点杂乱,只体现了大概。如果有感兴趣的人翻到,欢迎留言交流和批评指正
WeatherUnderground与Yahoo Weather的简单对比:
Yahoo | WeatherUnderground | |
是否开放接口 | 公开 | 针对有token的开发者(可能需要付费) |
接口返回类型 | XML+JSON | JSON |
语言支持 | 完美支持中文 | 中文简繁混杂 |
查询方式 | YQL或者参数传递 | 参数传递 |
天文学数据 | 只支持当天 | 支持当天、历史和预报 |
每小时天气预报 | 否 | 是 |
历史天气 | 未知 | 支持 |
潮汐数据 | 否 | 部分,中国目前查不到 |
温度 | 是 | 是 |
露点 | 否 | 是 |
风速风向 | 是 | 是 |
风寒指数 | 未知 | 是 |
热指数 | 未知 | 是 |
体感温度 | 是 | 是 |
降水量 | 是 | 是 |
海面气压 | 是 | 是 |
WeatherUnderground返回数据
它提供了十分全面的天气数据,市面上民用的天气接口,应当他是最全面的了。
以西安为例,获取链接为:http://api.wunderground.com/api/2b0d6572c90d3e4a/lang:CN/conditions_v11/alerts_v11/forecast/forecast10day_v11/hourly10day_v11/history_2014092920140929/astronomy/astronomy10day/q/zmw:00000.1.57036.json?v=wuiapp
返回的数据:
根据zmw查询天气预报
http://api.wunderground.com/api/2b0d6572c90d3e4a/lang:CN/conditions_v11/alerts_v11/forecast/forecast10day_v11/hourly10day_v11/history_2014092720140929/astronomy/astronomy10day/q/zmw:{zmw}.json?v=wuiapp
*zmw类似于WeatherUnderground 中每个城市的唯一识别id
*这个接口有若干个参数,具体可以参考官方api,我们只需要知道传入所查询城市的zmw,即可获得那个城市的天气数据即可
那么问题来了,如何获取zmw呢?以下是若干个WeatherUnderground的城市查询接口:
根据名称查询城市的id (zmw)
*毕竟WeatherUnderground 是国外的产品,所以中文支持起来不是太好,出现了简繁中文混用的情况
比如想用利用这个接口查询“厦门”,需要输入的是“厦門”(厦为简体,門爲繁體)
根据坐标等信息查询附近城市
http://stationdata.wunderground.com/cgi-bin/stationdata?maxlat=24.62115231007871&minlat=24.338688921931233&maxlon=118.31346105784179&minlon=117.84654211252929&type=ICAO,BUOY,PWS&iconsize=96&format=json&height=678&width=1020&maxage=3600&rand=95161
根据城市名称、经纬度范围是个好方法,可有时候也不太方便,毕竟增加查询转换的次数,
以下提供一次性获取大多数中国城市的方法
在这个页面可以查看到中国城市:http://www.wunderground.com/weather-forecast/China.html
*仔细观察China.html页面可以发现,每个城市的链接中,都对应了一个id
这个id,和前面取到的{zwm}的最后五位数是一致的
所以取出链接中的id,拼接为"00000.1.{zmw}"格式,即可在本文提供的第一个接口中使用了
以下列出我获取到的城市名,及其对应的id:
泸州,57602
乌里雅苏台,50915
乌鲁木齐,51463
营口,54471
牡丹江,54094
玉溪,56875
琼海,59855
瑞安,58752
瑞丽,56838
白城,51633
百色,59211
石嘴山,53519
石家庄,53698
石河子,51356
石浦,58569
福鼎,58754
福州,58847
绵阳,56196
罗定,59462
通辽,54135
通化,54363
遂宁,58122
运城,53959
遵义,57713
遵化,54429
邢台,53798
邵阳,57766
邵武,58725
郴州,57972
郑州,57083
酒泉,52533
重庆,57516
金华,58549
临夏,52984
临江,54374
临海,58660
临沧,56951
银川,53615
铜川,53947
花莲,59362
锦州,54337
茫拉乡,52955
荆州,57476
莱阳,54852
菏泽,54906
华山,57046
钟祥,57378
锡林浩特,54102
芜湖,58338
长春,59218
长沙,57679
长洲,45001
长白,54386
长岭,54049
开封,57091
阆中,57306
苏州,58358
阜阳,58203
阜康,51365
阜新,54237
兰州,52889
阿勒泰,51076
阿尔山,50727
虎林,50983
阳江,59663
阳泉,53782
蚌埠,58221
随州,57385
鸡西,50978
青岛,54857
鞍山,54339
韶关,59082
衡阳,57872
西贡,45040
西安,57036
西宁,52866
西昌,56571
香港,45007
马鬃山,52323
马公,59345
驻马店,57290
许昌,57089
高邮,58241
高雄,59554
高要,59278
贵阳,57816
赣州,57993
赤壁,57583
赤峰,54218
丽水,58646
麻城,57399
黄骅,54624
黄山,58437
黑河,50468
齐齐哈尔,50745
龙口,54753
龙岩,58927
龙泉,58647
克拉玛依,51243
兖州,54916
内江,57504
北海,59644
北京,54511
南通,58259
南阳,57178
南充,57411
南宫,54705
南宁,59431
南岳,57776
南平,58834
南昌,58606
南京,58238
原平,53673
厦门,59134
台山,58853
合肥,58321
合作,56080
吉林,54172
吉澳,45033
呼和浩特,53463
和田,51828
哈尔滨,50953
哲古,55690
唐山,54534
喀什,51709
固原,53817
城关镇,56137
塔城,51133
夏邛,56247
大理,56751
大连,54662
大同,53487
大尾笃,45034
天水,57006
天津,WZBTJ
太原,53772
奎屯,51346
威海,54774
安阳,53898
安顺,57806
安康,57245
安庆,58424
宜兰,59162
宜宾,56492
宜昌,57461
宁波,58562
宝鷄,57016
将军澳,45041
尚志,50968
岳阳,57584
峨眉山,56385
嵊州,58556
巴中,57313
常州,58343
常德,57662
平凉,53915
庐山,58506
库尔勒,51656
库车县,51644
广州,59287
延吉,54292
延安,53845
开化,56994
张家口,54401
张掖,52652
徐州,58027
德令哈,52737
思茅,56964
惠州,59298
怀化,57749
成都,56294
打鼓岭,45032
承德,54423
拉萨,55591
敦煌,52418
敦化,54186
新竹,59152
日照,54945
日喀则,55578
昆明,56778
昭通,56586
景德镇,58527
景洪,56959
朝阳,54324
本溪,54346
杭州,58457
东平洲,45031
东港镇,59553
枣阳,57279
柳州,59046
格尔木,52818
桂平,59254
桂林,57957
桃园,58965
梧州,59265
楚雄,56768
榆林,53646
乐山,56386
横澜岛,45045
钦州,59632
武当山,54213
武夷山,58730
武岗,57853
武汉,57494
永安,54736
汉昌,57682
汕头,59316
汕尾,59501
沅江,57671
沈阳,54342
沙田,45039
沙螺湾,45042
沟帮子,54335
沧州,54616
河池,59023
河源,59293
泽当,55598
洪泽湖,58138
海阳,54863
海伦,50756
海口,59758
深圳,59493
清远,54259
清江,58608
万源,57237
三明,58820
上饶,58626
上川岛,59673
上海,58362
东方,59838
温州,58659
临沂,54938
丹东,54497
湄公河,56954
义乌,52118
湛江,59658
二连浩特,53068
五台山,53588
溧阳,58345
亳州,58102
介休,53863
伊宁,51431
汉中,58715
漳州,59126
保定,54602
保山,56748
济南,54823
信阳,57297
信宜,59456
潍坊,54843