免費的天氣預報API--Google,雅虎,中央氣象台

來源:互聯網
上載者:User

標籤:style   class   blog   http   tar   ext   

      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(大阪)


能夠尋找到哪些國家和城市呢?Google也提供了介面。返回的類型也能夠依據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)


有了這些資料,在自己的應用裡增加天氣預報就不難了。


Google的天氣預報API。長處在於能夠直接擷取支援查詢天氣的國家和城市。而且能夠預報4天天氣,支援經緯度查詢天氣(這個能夠利用GPS做應用)。

缺點也是驚人的:支援的中國城市比較少。詳細有啥能夠通過 http://www.google.com/ig/cities?hl=zh-cn&country=cn查詢。


 


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


雅虎天氣API

yahoo天氣預報的url是

http://weather.yahooapis.com/forecastrss?w=2151330&u=c(返回的是XML資料)

說說裡面參數代表的意思:

參數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:假設要查看天氣資料格式或者詳細類型。能夠直接複製連結到瀏覽器運行就能看到資料了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.