免費的天氣預報API--谷歌,雅虎,中央氣象臺


分類: iOS iPhone Objective-C2013-08-21 11:33 4490人閱讀 評論(0) 收藏 舉報html

      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)


數據庫

有了這些數據,在本身的應用里加入天氣預報就不難了。json


谷歌的天氣預報API。優勢在於能夠直接獲取支持查詢天氣的國家和城市。而且能夠預報4每天氣,支持經緯度查詢天氣(這個能夠利用GPS作應用)。api

缺點也是驚人的:支持的中國城市比較少。具體有啥能夠經過 http://www.google.com/ig/cities?hl=zh-cn&country=cn查詢。瀏覽器


 


----------------------------------------------------------------------------------------------------------------------------------
ide


雅虎天氣APIui

yahoo天氣預報的url是google

http://weather.yahooapis.com/forecastrss?w=2151330&u=c(返回的是XML數據)編碼

說說裏面參數表明的意思:url

參數w對應各個地方在yahoo數據庫中的WOEID,如北京的WOEID是2151330,目前也能夠用參數p來代替w,不過官方仍是推薦用w,貌似p是計劃要被取消的。參數u用於肯定溫度的單位(c是攝氏度f是華氏度)。對於中國(國外沒比較)的天氣查詢來講,YAHOO相對不管從能查到的地方仍是預報的內容都是比較全的。

獲取地址編號

地址編號必須是一個WOEID,你能夠經過雅虎的天氣預報首頁查詢你須要的地址編號。這個編號在
你想要的那個城市天氣預報頁的URL中。你也能夠經過在首頁中輸入你的郵政編碼查詢WOEID。例如,你想查詢廣州的天氣狀況,這個城市的天氣預報頁的URL是 
http://weather.yahooapis.com/forecastrss?p=CHXX0037&u=c,因此它的WOEID是0037.

這裏提供一份網上搜索到的雅虎天氣預報城市代碼:雅虎天氣預報城市代碼

 雅虎天氣開發者: http://developer.yahoo.com/weather/


優勢:也沒發現啥很特別的優勢。不過我搜集到的城市代碼感受較全(畢竟沒有真正覈對過)。

缺點:只能預報兩每天氣


補充:

能夠經過下面的URL來獲得WOEID:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22shanghai%22&diagnostics=true

替換url中的城市名,查詢到的結果裏woeid就是代碼。
若是想直接查詢能夠登錄http://developer.yahoo.com/yql/console/查詢 geo.places 就能夠得到。雅虎數據庫還能夠查到其餘有趣的東西。


經過經緯度獲取WOEID(沒有驗證)
http://query.yahooapis.com/v1/public/yql?q=select * from flickr.places where lon=%f and lat=%f and accuracy=6(沒有驗證)

http://query.yahooapis.com/v1/public/yql?q=select * from geo.places where lon=%f and lat=%f and accuracy=6(沒有驗證)

---------------------------------------------------------------------------------------------------------------------------------------------



最後介紹的是中央氣象臺的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是北京的城市代碼,因此仍是須要城市代碼的。提供一份很不全的城市代碼吧。我搜索好久獲得的。大約有20個左右省份。地區能具體到縣城。中央氣象臺城市代碼(不全) rayyu1989分享的較全的APIhttp://dl.vmall.com/c0diylrr6a


中央氣象臺城市代碼http://blog.csdn.net/ztp800201/article/details/10169863


優勢:很詳細的信息。我很喜歡這樣的數據。


缺點:城市代碼不全。。。。若是誰有全的城市代碼,麻煩給我一份。


PS:若是要查看天氣數據格式或者具體類型。能夠直接複製連接到瀏覽器執行就能看到數據了。

相關文章
相關標籤/搜索