现在各网站主页上经常会有天气预报的功能,那么他们是怎么做到的呢?其实这挺简单的,现在气象台、百度、谷歌、有道等都为我们提供了很好的服务支持,我们直接调用即可。
现在网站提供服务的方式主要有两种:
1. 插件
这种方式比较简单,大家在网上搜“免费天气预报”即可找到相关网站提供的免费天气预报插件,直接拷贝自动生成的代码即可。缺点是不是特别灵活,也仅仅限于网站提供的几种样式,自己无法自定义样式,而且大多都是iframe形式,自己无法很好的控制,有可能无法避免一些广告。这里我就只给出几个链接了:
中国天气网:http://service.weather.com.cn/plugin/index.shtml
ThinkPage:http://www.thinkpage.cn/weather/widget.aspx
天气网:http://t.xidie.com/WeatherCode.aspx
天气121:http://weather.xixik.com/
天气吧:http://www.tianqi8.com/code/
免费天气查询:http://www.fc315.net/11/code/
636600:http://www.636600.com/code/index.html
2. API请求地址接口
这种方式是非常灵活的,完全可由开发人去把控,但缺点就是难度高,程序必须将天气预报的相关信息维护起来。那么下面我举几个例子简单介绍下
google天气预报API地址:http://www.google.com/ig/api?weather=beijing
输入后就可以显示北京的相关天气预报信息,它是以xml形式展现的,我们只要从中提取需要的信息即可。
新浪天气预报API地址:http://php.weather.sina.com.cn/xml.php?city=北京&password=DJOYnieT8234jlsK&day=0
其中,city代表城市,直接写”武汉”,但不能用”wuhan”;Password固定不变;Day为0表示当天天气,1表示第二天的,2表示第三天的,以此类推,最大为4。
它返回的同样是xml形式,它分为两部分,分别代表“今天白天”、“今天夜间”。至于xml中具体每个标签的含义,参照新浪天气预报网:http://weather.news.sina.com.cn/
中国天气网:http://m.weather.com.cn/data/101010100.html
其中,101010100为城市代码,由http://61.4.185.48:81/g/可根据你本机的IP动态查询到你的城市ID,再根据城市ID返回城市天气信息。各城市ID可参见http://vyphn.iteye.com/blog/850431
它采用json的形式返回城市天气相关信息的,处理起来很方便。
ThinkPage的文档比较齐全,详情请见http://www.thinkpage.cn/weather/api/
它同样是采用json的形式返回信息。
对于以xml形式返回的api,基本思路是利用地址将xml文件加载到文件流中或下载下来,然后再进行解析。
关于如何解析json,请参考 http://www.json.org/json-zh.html
好了,我就说到这里啦,这东西只要找到了思路,实现起来并不难,所以我没有给出具体例子。