Google Weather API 参考文档
基礎篇
??? 首先是如何調用Google Weather API,如果你在Google里搜索能夠搜索出以下的內容,但是完全沒有原始來源,看上去是很簡單,說明也還算詳細。
???1.郵政編碼法:(只支持美國地區使用郵政編碼進行查詢)
???http://www.google.com/ig/api?hl=zh-cn&weather=94043
??? (94043 為 山景城, 美國加州 的郵政編碼)
? ? 2.經緯度坐標作法:
???http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996
??? (30670000,104019996 為 成都, 中國大陸 的經緯度坐標)
??? 3.城市名稱法:
???http://www.google.com/ig/api?weather=Beijing
??? 附:
??? 支持的國家代碼列表:
???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
???其實以上有很多地方是錯誤的。
??? 一、郵編法,支持的國家包括美國,加拿大,德國,英國,法國等,不僅僅是美國,以下是一些其他國家的例子,具體可以去嘗試各種不同的國家郵編。
??? 加拿大多倫多?http://www.google.com/ig/api?weather=M4B1G5
??? 德國柏林?http://www.google.com/ig/api?weather=10115,DE?(應該是和美國重復的關系需要加DE)
??? 法國巴黎?http://www.google.com/ig/api?weather=75008
??? 英國南安普頓?http://www.google.com/ig/api?weather=SO163UB
??? 反正不支持天朝,Google退出中國后,應該也不會有對于中國郵編的支持。
??? 二、經緯度法,沒啥好說的,除了和Google Map API的經緯度用的單位不同需要轉換,其他還是ok,可以和Google Map無縫銜接。
??? 三、城市名法,默認只支持英文,如果輸入中文的話可以用Google Language API翻譯成英文再查詢,國際化本地化處理還是很方便的,要另它支持本國文字請看高級篇。
??? 四、支持國家和城市列表請無視,實在是不夠全。
??? 標準返回XML形式(現在的溫度+今天的詳細預報+后三天的簡略預報)
<xml_api_reply version="1">
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">
<forecast_information>
<city data="Shanghai, Shanghai"/>
<postal_code data="shanghai"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
<forecast_date data="2010-09-13"/>
<current_date_time data="2010-09-14 06:00:00 +0000"/>
<unit_system data="SI"/>
</forecast_information>
<current_conditions>
<condition data="晴"/>
<temp_f data="79"/>
<temp_c data="26"/>
<humidity data="濕度: 83%"/>
<icon data="/ig/images/weather/sunny.gif"/>
<wind_condition data="風向: 東、風速:4 米/秒"/>
</current_conditions>
<forecast_conditions>
<day_of_week data="周一"/>
<low data="24"/>
<high data="29"/>
<icon data="/ig/images/weather/cn_cloudy.gif"/>
<condition data="多云"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周二"/>
<low data="24"/>
<high data="29"/>
<icon data="/ig/images/weather/chance_of_storm.gif"/>
<condition data="可能有暴風雨"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周三"/>
<low data="24"/>
<high data="32"/>
<icon data="/ig/images/weather/chance_of_storm.gif"/>
<condition data="可能有暴風雨"/>
</forecast_conditions>
<forecast_conditions>
<day_of_week data="周四"/>
<low data="25"/>
<high data="30"/>
<icon data="/ig/images/weather/chance_of_rain.gif"/>
<condition data="可能有雨"/>
</forecast_conditions>
</weather>
</xml_api_reply>
-----------------------------------------我是華麗的分割線-----------------------------------------
高級應用篇
??? 一、國際化本地化
??? hl 返回的語言文字(ISO639語言編碼+國家縮寫,如zh_CN,en_US等),不選的話默認會根據(操作系統?IP地址?)返回語言,就我本人來看切換瀏覽器語言返回的都是中文。
??? ie 輸入文字編碼(瀏覽器語言編碼) 有了這個參數就可以使用下面這樣的查詢
???http://www.google.com/ig/api?weather=上海&hl=zh_CN&ie=gb2312
??? oe 輸出文字編碼(瀏覽器語言編碼) 這個主要是為了控制輸出內容能正常顯示的編碼
???http://www.google.com/ig/api?weather=上海&hl=zh_CN&ie=gb2312&oe=gb2312
??? output 輸出格式(xml,json)只有少部分數據能返回json值...這一點遠不如Twitter和Facebook的API來得好...
??? 二、多城市查詢
??? weather 城市名/經緯度/郵政編碼最神奇的就是這個參數了,實際上你可以傳多個weather參數來返回城市信息。(某同事嘗試出來的)比如
???http://www.google.com/ig/api?weather=上海&weather=北京&hl=zh_CN&ie=gb2312&oe=gb2312
??? 其實實際運用并不這么簡單,Google提供了各種api可以一起拼接在一起...非常佩服Google的神人...
???http://www.google.com/ig/api?movies=new%20york&weather=上海&stock=Google&hl=zh_CN&ie=gb2312&oe=gb2312
-----------------------------------------我是華麗的分割線-----------------------------------------
實際運用篇
??? 一、調用方法
??? 因為Google這一系列的API都在Google.com這個域下面,跨域請求XML的話沒有啥很好的辦法,Google域的http://www.google.com/crossdomain.xml又非常嚴格,非公開的API完全不支持跨域,一般都是自己服務器做個代理。YUI里有個很好的例子(前端YUI到后端PHP代碼都有)http://developer.yahoo.com/yui/3/examples/io/io-weather.html。不過其中調用的是Yahoo Weather API,稍微修改下就能用在Google Weather API上了,具體實現并不難,無論是web應用還是iPhone,android的應用,使用Google Weather API的很多。
??? 二,異常情況
??? 因為Google Weather API并不是公開的,所以很多異常都會出現,某些重要城市的天氣找不到,比如天津一天總有幾個小時找不到溫度情況,或者返回的溫度或者天氣狀況會是空值,或者干脆一段時間不更新天氣信息之類種種,或者說預報溫度不是很準等等,具體可以去看Google的投訴版...
??? 三、其他API
??? Yahoo Weather API本身比Google Weather API的數據結果強大,不過國際化本地化是個大問題,最重要的是Yahoo Weather API是不能從事商業用途的。當然你想用在天朝也很正常,知識產權版權一向是被我們所忽視的。我只看到過iphone, ipod, android的官方天氣運用使用這個(估計是付錢的),其他的國內的一些實在是不清楚來源不敢用。
? 原文摘自:?http://hi.baidu.com/sulmas/blog/item/ad0edb13173f1535dc540124.html
總結
以上是生活随笔為你收集整理的Google Weather API 参考文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android4.4 往短信收件箱中插入
- 下一篇: STM32F103+RFID-RC522