实现自己的天气预报(源代码)

天气预报是非常有用的服务,如果能在网站上集成天气预报,能极大地方便用户查询。

寻遍了国内所有的气象站点,没找见提供Web服务的,太小气了,只能去国外找。NOAA(www.weather.gov)提供一个Web服务,但是死活连不上服务器,估计被屏蔽了,其他提供全球天气预报的有www.weather.com和yahoo,

不过weather.com的服务太麻烦,还需要注册,相比之下,yahoo的天气服务既简单又快速,只需一个http请求,然后解析返回的XML即可获得天气预报。

以北京为例,在weather.yahoo.com查找北京的城市代码为CHXX0008,对应的URL为:

http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008

然后,通过SAX解析返回的XML:

URL url = new URL("http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008");
InputStream input = url.openStream();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
SAXParser parser = factory.newSAXParser();
parser.parse(input, new YahooHandler());

自己定义一个YahooHandler来响应SAX事件:

/**
 * For more information, please visit: http://www.crackj2ee.com
 * Author: Liao Xuefeng
 */
public class YahooHandler extends DefaultHandler {

    public void startElement(String uri, String localName, String qName, Attributes attributes)

throws SAXException {
        if("yweather:condition".equals(qName)) {
            String s_date = attributes.getValue(3);
            try {
                Date publish = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm a z",

Locale.US).parse(s_date);
                //System.out.println("Publish: " + publish.toString());
            }
            catch (Exception e) {
                e.printStackTrace();
                throw new SAXException("Cannot parse date: " + s_date);
            }
        }
        else if("yweather:forecast".equals(qName)) {
            String s_date = attributes.getValue(1);
            Date date = null;
            try {
                date = new SimpleDateFormat("dd MMM yyyy", Locale.US).parse(s_date);
            }
            catch (Exception e) {
                e.printStackTrace();
                throw new SAXException("Cannot parse date: " + s_date);
            }
            int low = Integer.parseInt(attributes.getValue(2));
            int high = Integer.parseInt(attributes.getValue(3));
            String text = attributes.getValue(4);
            int code = Integer.parseInt(attributes.getValue(5));
            System.out.println("Weather: "+ text + ", low=" + low + ", high=" + high);
        }
        super.startElement(uri, localName, qName, attributes);
    }
}

运行结果:

Weather: Partly Cloudy, low=7, high=16
Weather: Sunny, low=7, high=20

Yahoo会返回当天和第二天的Weather预报。

  

 
 
    
 
 
 

### 回答1: 如果您需要下载qt天气预报源代码,您可以进行以下步骤: 1. 首先,打开您的Web浏览器,并转到Qt官方网站(https://www.qt.io/)。 2. 在该网站上,点击右上角的"下载"按钮。 3. 在下载页面上,您可以选择不同的版本和平台。根据您的操作系统选择合适的版本(例如Windows、macOS或Linux)。 4. 选择您打算使用的版本后,点击下载按钮。 5. 下载完成后,打开下载的文件(可能是一个安装程序或一个压缩文件),根据安装向导的指示进行安装。 6. 安装完成后,打开Qt IDE(集成开发环境)。 7. 在Qt IDE中,可以创建新的Qt项目或打开现有的项目。 8. 根据您的需求,创建一个新的Qt项目,并选择适当的模板。 9. 在项目中,您可以使用Qt提供的各种类和库来开发天气预报应用程序。 10. 在您的项目中编写和实现天气预报相关的功能,并进行必要的测试和调试。 11. 最后,保存并导出您的项目,这样您就可以在其他设备上运行或分享代码。 通过以上步骤,您可以成功下载并使用Qt天气预报源代码。请注意,某些具体细节可能因不同的Qt版本和操作系统而有所不同。在遇到问题时,您可以参考Qt官方文档或社区中的帮助资源。 ### 回答2: 您可以通过以下步骤下载qt天气预报源代码: 1. 首先,打开您的互联网浏览器。 2. 在搜索栏中输入“qt天气预报源代码下载”。点击搜索按钮。 3. 您将会看到很多相关搜索结果,选择一个可靠的网站,例如GitHub、CSDN等。 4. 进入该网站,并在搜索栏中输入“qt天气预报源代码”。 5. 点击搜索按钮,网站将会显示与您搜索相关的源代码项目。 6. 点击您选择的源代码项目,进入项目页面。 7. 在项目页面上,您可以找到源代码的下载选项,通常是一个或多个按钮、链接、或者绿色的“Download”按钮。 8. 点击下载按钮,选择保存源代码文件的位置。 9. 下载完成后,您可以打开下载的源代码文件,并使用适合qt开发环境的编辑器打开文件。 10. 接下来,您可以根据源代码的指引、注释等进行相关设置和修改。 11. 完成相关设置和修改后,您可以运行和调试qt天气预报应用程序。 希望以上的回答能够帮助到您,祝您下载成功并顺利进行qt天气预报应用程序的开发! ### 回答3: 要下载Qt天气预报源代码,可以按照以下步骤进行操作: 1. 首先,在网络上搜索Qt天气预报源代码的下载链接。可以尝试使用搜索引擎,或者直接在代码分享平台(如GitHub、码云)搜索相关关键词。 2. 找到适合的下载链接后,点击进入该页面,并查看相关信息,以确保源代码是适合您需要的版本和功能。 3. 在下载页面上,一般会提供下载按钮或链接。点击该按钮或链接开始下载源代码。根据网速和文件大小的不同,下载时间可能会有所不同。 4. 下载完成后,可以将源代码保存在本地的某个文件夹中。可以选择适当的文件夹路径,以便后续浏览和使用。 5. 解压源代码文件(如果是压缩包格式的)。可以使用常见的解压软件(如WinRAR、7-Zip)来完成解压操作。 6. 打开解压后的文件夹,可以看到源代码的相关文件和文件夹结构。其中,一般会包含项目文件(如.pro文件)和源代码文件(如.cpp、.h文件)。 7. 根据具体需求,可以使用Qt开发工具(如Qt Creator)打开项目文件,以便编辑和编译源代码。确保您已经安装了对应版本的Qt开发工具。 总之,下载Qt天气预报源代码需要在合适的网站上搜索下载链接,点击下载按钮或链接,保存到本地,并解压文件后,使用Qt开发工具打开相关文件进行编辑和编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值