Google Weather API 参考文档
基礎(chǔ)篇
??? 首先是如何調(diào)用Google Weather API,如果你在Google里搜索能夠搜索出以下的內(nèi)容,但是完全沒有原始來源,看上去是很簡單,說明也還算詳細(xì)。
???1.郵政編碼法:(只支持美國地區(qū)使用郵政編碼進(jìn)行查詢)
???http://www.google.com/ig/api?hl=zh-cn&weather=94043
??? (94043 為 山景城, 美國加州 的郵政編碼)
? ? 2.經(jīng)緯度坐標(biāo)作法:
???http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996
??? (30670000,104019996 為 成都, 中國大陸 的經(jīng)緯度坐標(biāo))
??? 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?(應(yīng)該是和美國重復(fù)的關(guān)系需要加DE)
??? 法國巴黎?http://www.google.com/ig/api?weather=75008
??? 英國南安普頓?http://www.google.com/ig/api?weather=SO163UB
??? 反正不支持天朝,Google退出中國后,應(yīng)該也不會有對于中國郵編的支持。
??? 二、經(jīng)緯度法,沒啥好說的,除了和Google Map API的經(jīng)緯度用的單位不同需要轉(zhuǎn)換,其他還是ok,可以和Google Map無縫銜接。
??? 三、城市名法,默認(rèn)只支持英文,如果輸入中文的話可以用Google Language API翻譯成英文再查詢,國際化本地化處理還是很方便的,要另它支持本國文字請看高級篇。
??? 四、支持國家和城市列表請無視,實在是不夠全。
??? 標(biāo)準(zhǔn)返回XML形式(現(xiàn)在的溫度+今天的詳細(xì)預(yù)報+后三天的簡略預(yù)報)
<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="風(fēng)向: 東、風(fēng)速: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="可能有暴風(fēng)雨"/>
</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="可能有暴風(fēng)雨"/>
</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>
-----------------------------------------我是華麗的分割線-----------------------------------------
高級應(yīng)用篇
??? 一、國際化本地化
??? hl 返回的語言文字(ISO639語言編碼+國家縮寫,如zh_CN,en_US等),不選的話默認(rèn)會根據(jù)(操作系統(tǒng)?IP地址?)返回語言,就我本人來看切換瀏覽器語言返回的都是中文。
??? ie 輸入文字編碼(瀏覽器語言編碼) 有了這個參數(shù)就可以使用下面這樣的查詢
???http://www.google.com/ig/api?weather=上海&hl=zh_CN&ie=gb2312
??? oe 輸出文字編碼(瀏覽器語言編碼) 這個主要是為了控制輸出內(nèi)容能正常顯示的編碼
???http://www.google.com/ig/api?weather=上海&hl=zh_CN&ie=gb2312&oe=gb2312
??? output 輸出格式(xml,json)只有少部分?jǐn)?shù)據(jù)能返回json值...這一點遠(yuǎn)不如Twitter和Facebook的API來得好...
??? 二、多城市查詢
??? weather 城市名/經(jīng)緯度/郵政編碼最神奇的就是這個參數(shù)了,實際上你可以傳多個weather參數(shù)來返回城市信息。(某同事嘗試出來的)比如
???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
-----------------------------------------我是華麗的分割線-----------------------------------------
實際運用篇
??? 一、調(diào)用方法
??? 因為Google這一系列的API都在Google.com這個域下面,跨域請求XML的話沒有啥很好的辦法,Google域的http://www.google.com/crossdomain.xml又非常嚴(yán)格,非公開的API完全不支持跨域,一般都是自己服務(wù)器做個代理。YUI里有個很好的例子(前端YUI到后端PHP代碼都有)http://developer.yahoo.com/yui/3/examples/io/io-weather.html。不過其中調(diào)用的是Yahoo Weather API,稍微修改下就能用在Google Weather API上了,具體實現(xiàn)并不難,無論是web應(yīng)用還是iPhone,android的應(yīng)用,使用Google Weather API的很多。
??? 二,異常情況
??? 因為Google Weather API并不是公開的,所以很多異常都會出現(xiàn),某些重要城市的天氣找不到,比如天津一天總有幾個小時找不到溫度情況,或者返回的溫度或者天氣狀況會是空值,或者干脆一段時間不更新天氣信息之類種種,或者說預(yù)報溫度不是很準(zhǔn)等等,具體可以去看Google的投訴版...
??? 三、其他API
??? Yahoo Weather API本身比Google Weather API的數(shù)據(jù)結(jié)果強(qiáng)大,不過國際化本地化是個大問題,最重要的是Yahoo Weather API是不能從事商業(yè)用途的。當(dāng)然你想用在天朝也很正常,知識產(chǎn)權(quán)版權(quán)一向是被我們所忽視的。我只看到過iphone, ipod, android的官方天氣運用使用這個(估計是付錢的),其他的國內(nèi)的一些實在是不清楚來源不敢用。
? 原文摘自:?http://hi.baidu.com/sulmas/blog/item/ad0edb13173f1535dc540124.html
總結(jié)
以上是生活随笔為你收集整理的Google Weather API 参考文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android4.4 往短信收件箱中插入
- 下一篇: STM32F103+RFID-RC522