zoukankan      html  css  js  c++  java
  • <转>开发天气预报 各网站的接口和实例

    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一般都是利用第三的库来访问

  • 相关阅读:
    Maven入门指南12:将项目发布到私服
    Groovy学习:第四章 Groovy特性深入
    jQuery部分疑问及小结
    Windows自动化---模拟鼠标键盘
    适配器
    object都有string
    spinner
    context
    OnclickListener
    学习-----领进门,看个人
  • 原文地址:https://www.cnblogs.com/lampon/p/3158559.html
Copyright © 2011-2022 走看看