開發天氣預報 各網站的接口和實例

1.雅虎天氣預報網站http://hk.weather.yahoo.com/

(1)主要的軟件有雅虎天氣軟件,傳統黃曆91黃曆天氣v2.0.1

(2) 提供的天氣預報接口的說明:如下

使用雅虎訪問程序的解析參考如下網址

http://download.csdn.net/download/zsd406095755/3676406

http://bbs.9ria.com/thread-49642-1-1.html

http://kb.cnblogs.com/page/42993/2/

yahoo天氣預報的url

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

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

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

 

(3)優缺點

優點:蒐集到的城市代碼較全,獲得的信息較爲全面

缺點:支持近兩天的天氣情況。

2.Google天氣預報網站

 (1)主要的軟件有 手機Google天氣預報,軟件有 Google map 軟件(主要是查看天氣和GPS)等等。

(2)提供的天氣預報接口的說明 http://blog.csdn.net/fengyun1989/article/details/7341166

Google開放了一套天氣預報API
(1).
使用郵政編碼(美國)
http://www.google.com/ig/api?hl=zh-cn&weather=94043(
加州山景城)
(2).
使用經度緯度座標
http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996(
成都)
使用通行城市名稱
(3)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)

(3)優缺點

優點歌的天氣預報API。優點在於可以直接獲取支持查詢天氣的國家和城市,查詢的範圍比較廣,並且可以預報4天天氣,支持經緯度查詢天氣(可以利用GPS做應用)。

缺點支持的中國城市比較少。準確度不是很好,具體可以通過 http://www.google.com/ig/cities?hl=zh-cn&country=cn查詢。

3.新浪天氣預報網站  http://weather.news.sina.com.cn/

(1)  主要的軟件有 天氣通軟件,新浪天氣預報軟件

(2)提供的天氣預報接口的說明
http://php.weather.sina.com.cn/xml.php?city=武漢&password=DJOYnieT8234jlsK&day=0

其中,city後的城市可用java.net.URLEncoder.encode(“武漢”,” gb2312”);也可以直接寫”武漢”;但不能用”wuhan”。

上面的城市可以自定,比如 福州可改成別的,各個城市的代碼請參考

http://blog.csdn.net/qq910894904/article/details/7540093

http://ishare.iask.sina.com.cn/f/13187840.html?from=like

http://www.soft6.com/v9/2009/jckf_0420/99924.html

4.中國天氣預報網站http://www.weather.com.cn/

(1)  主要的軟件有 中國天氣通軟件

(2)  提供的天氣預報的接口說明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  

其中101110101是城市的代碼

具體的信息參考網站http://wishblog.sinaapp.com/378

返回的是json數據。數據非常全,101010100是北京的城市代碼

3)優點:調用的接口很方便,各個城市的信息比較詳細。

如果要查看天氣數據格式或者具體類型。可以直接複製鏈接到瀏覽器執行就能看到數據了。

 

5.QQ天氣預報網站    http://cd.qq.com/weather/

(1)  主要的軟件有 QQ天氣

(2)提供的天氣預報接口的說明

代碼 http://appnews.qq.com/cgi-bin/news_weather_search?city=廈門" allowTransparency="true"<
效果 

http://blog.163.com/rongyao_xu/blog/static/1177693012010023380307/

(2)   優缺點

優點:信息比較準確可靠,氣象信息由中央氣象臺提供。接口和樣式多樣化

 

iphone簡單的程序例子:

1.利用JSON訪問網頁信息,json方式訪問網站的方式,調用第三方庫來解析Json

根據各個網站訪問的接口來獲得數據

 

1.  - (IBAction)btnPressTouchJson:(id)sender {  

2.      //獲取API接口  

3.      NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101010100.html"];  

4.      //定義一個NSError對象,用於捕獲錯誤信息  

5.      NSError *error;  

6.      NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];  

7.      NSLog(@"jsonString--->%@",jsonString);  

8.      //將解析得到的內容存放字典中,編碼格式爲UTF8,防止取值的時候發生亂碼  

9.      NSDictionary *rootDic = [[CJSONDeserializer deserializer] deserialize:[jsonString dataUsingEncoding:NSUTF8StringEncoding] error:&error];  

10.     //因爲返回的Json文件有兩層,去第二層內容放到字典中去  

11.     NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"];  

12.     NSLog(@"weatherInfo--->%@",weatherInfo);  

13.     //取值打印  

14.     txtView.text = [NSString stringWithFormat:@"今天是 %@  %@  %@  的天氣狀況是:%@  %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo 

測試:

2012-10-14 10:46:11.685 myWebView[4747:f803] the weather->今天是 20121014日星期日北京的天氣狀況是:晴轉多雲  18~8

 

2.利用XML訪問網站的信息:

XML 訪問網站的方式系統自帶有兩種方式一個是通過libxml,一個是通過NSXMLParser

參考以下網站:

http://www.cocoachina.com/newbie/basic/2011/1018/3381.html

JSON與XML的區別

http://hi.baidu.com/lxiaohai/item/cac7332688af004347996200

不得不說是一個很好的辦法,而且事實上google maps就沒有采用XML傳遞數據,而是採用了JSON方案

與XML一樣,JSON也是基於文本的,且它們都使用Unicode編碼,同樣具有可讀性 ,xml SDK 中有自帶的類庫,json一般都是利用第三的庫來訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章