当前位置: 首页 > 软件库 > Web应用开发 > >

weather

授权协议 Readme
开发语言 Java
所属分类 Web应用开发
软件类型 开源软件
地区 不详
投 递 者 黄宏大
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

前置说明

  1. /doc 文件夹中包含项目截图和以下将要描述的文档(PDF文档 )。
  2. weather-web 项目: 天气Web服务。
  3. weather-weixin 项目:查询天气微信小程序(微信扫描下图可以查看)。

查询天气小程序

  1. 项目中一些关键Key已经去除,开发者可以自行添加,如有问题可以留言或者邮件联系。
  2. 欢迎 fork 和 star ~

天气服务说明文档

1背景

1.1意义

  设计该服务,主要有以下几个原因:

  1. 目前的一些天气API(高德、百度等)都只有3天的预报,不能提供长期预报。
  2. 第三方API有调用次数限制、认证情况比较麻烦。

1.2不足

  该服务存在以下缺陷:

  1. 依赖第三方网站,第三方网站的网页结构变化后需要重新修改代码。
  2. 第三方服务器崩溃或者提供反爬技术的话,该服务失效。

1.3 声明

  本服务只是为了学习交流使用。

2服务结构

  如果开发者需要基于该服务项目进行开发的话,需要了解该服务的一些结构。该服务(weather-web项目)的总体结构如下图所示。

  其中,淡粉色部分表示支持查询的接口,淡紫色部分表示第三方的接口或网站,淡绿色部分是项目中主要的几个类。使用该服务,需要注意一下几个方面:

  1. 如果是按经纬度查询,则需要利用第三方API(腾讯的API)将经纬度转换为对应的城市名称。
  2. 因为最后是根据查询城市的拼音找到解析数据的网页的,所以需要事先爬取城市名称和拼音的关系,最后统一转换为按拼音查询。
  3. 为了减少频繁爬取第三方数据,该服务按天粒度进行更新,每次查询的时候会比对天气日期,如果过期才会重新爬取,否则则会返回缓存中的数据。为了服务的快速,服务所有数据都在内存中,并没有落盘。

3服务接口

3.1访问接口

  访问接口如下表所示,接口中中文部分表示需要提供的参数。开发者在部署服务后,最终的访问接口是:协议(http 或 https)+ 主机地址 + 接口。

功能 接口
按经纬度进行查询 /weather/?latitude=纬度&longitude=经度
按城市名称中文(或拼音)进行查询 /weather/城市名称或拼音

开放测试接口https://weather.mindawei.cn/weather/

以杭州为例:

3.2返回结果

  返回的结果是Json格式,包含30天天气基本情况,具体如下所示:


{
    "queryName": "泰州",  // 查询的城市名字,如果无数据返回空
    "date": "2018-01-06",  // 第一天数据日期,缓存可以判断是否过期
    "weatherItems": [     // 天气情况数组,30天
        {
            "date": "01月06日",      // 日期
            "dayKind": "今天",        // 星期几,前三天是今天明天后天 
            "weather": "雪",           // 天气描述
            "weatherImg": "b15.png",   // 天气用什么图片表示
            "minTemperature": "-6",    // 最低温度 
            "maxTemperature": "4",     // 最高温度
            "wind": "东北风 3级"     // 风力描述
        },
        ...
    ]
}

4基于该服务的小程序

  基于该服务可以构建一些天气查询应用。为了演示该服务,写了一个小程序。下面几幅图就是小程序项目(weather-weixin)的演示效果图。小程序启动时可以根据经纬度给出一个当前位置的天气情况,之后可以根据查询关键字更新数据。

5项目实际部署

5.1运行Web服务

  1. 如果要支持经纬度查询,则需要配置WeatherWebConfig.txt中的腾讯地图API KEY。
  2. 由于小程序使用https,所以如果要运行小程序,则需要将域名指向Web服务主机,申请证书,并配置src/main/resources下的application.properties文件。

5.2运行小程序

  1. project.config.json中填入你申请的appid。
  2. pages\index\index.js内容中开头部分的baseUrl替换成:Web服务地址的部署地址+”weather/”。
  • 源码地址:http://download.csdn.net/detail/ericwuhk/9719157  ///   <summary>     ///   调用webservice接口获取城市天气情况        ///   </summary>      using System; using System.Collections.Generic; using Syst

  • C. Weather:题目 为什么直接交代码不行啊,非要加两句话,有没有大佬说说? #include <bits/stdc++.h> using namespace std; // typedef long long ll; vector<int> a((int)3e5); vector<int> b((int)3e5), c((int)3e5); int main() { freope

  •   #import "ReWeather.h" #import "DayWeather.h" @interface ReWeather(private) - (NSUInteger)calculateWeekNum:(NSString*)dateStr; - (void)splitXmlWeatherInfo; - (void)outputParseInfo; - (void)outputDayW

  • Weather and climate around Germany are different due to latitude, topography and other factors likeyixing hotel .   In spring and autumn, the climate in Berlin is very good with an average temperature

 相关资料
  • 问题内容: 您好,我试图通过Mars Insight API 显示火星天气。发生的问题是数据以JSON格式返回并且具有三个级别的API文档。我可以使用3-4种不同的方法来拉主键,但是当我尝试获得次要或三次键时,也就没有问题了。 问题答案: 使用递归展平嵌套 用Python递归思考 在Python中展平JSON对象 展平 该功能将用于展平 输出量

  • 我正在尝试使用最新的雅虎天气apihttps://weather-ydn-yql.media.yahoo.com/forecastrss它工作得很好,但当我设置语言(lang=ar AE)时,它返回带问号的json响应,而不是阿拉伯字符。例如“城市”:“城市”对于英语来说,这是可以的。 我没看到留档里有关于utf设置的东西 当我打开雅虎的天气页面https://www.yahoo.com/news

  • 我已经完成了我的代码,但它不工作,我不能找到任何解决方案,任何帮助将得到认可 weather.java WeatherController.java 请帮我解决这个错误

  • 与Yahoo Weather API不同,来自Open Weather(特别是JSON)的天气预报响应不包含关于日期和日期的细节。我只是得到一个预测数据列表。我怎么知道哪个预报对应哪一天?列表是否包含特定天数(连续7天)的预测?)包括今天及以后,还是明天及以后? 以下是每日天气预报文档的链接:http://openweathermap.org/forecast16 这是一个JSON编辑器来查看JS

  • Weather.js是一个jQuery插件,用于查找有关天气详细信息的信息。 一个简单的Weather.js示例如下所示 - <!DOCTYPE html> <html lang = "en"> <head> <meta charset = "UTF-8"> <meta name = "viewport" content = "width = device-width

  • Weather Icons 是一个具有 222 个天气主题图标的图标和 CSS 库,可以直接放入 Bootstrap ,或在任何需要高质量天气、海洋和气象图标的项目中使用。 基本用法 将 5 个字体文件和 主weather-icons.min.css 文件放在项目中,假设字体位于 css 目录的 ../ 上。 通过使用 i 元素并添加基类 wi,然后添加所需的图标类(如day sunny)来显示图

  • GeoIP Weather 是一个PHP的脚本,用来根据访问者的IP地址获取到所在城市的天气预报数据,数据来自于 weather.com 网站。如下图所示: 在线演示:http://geoipweather.com/

  • 天气地图(Weather Map)是结合地图和天气的 App,适合喜欢旅行的人,能一眼看到周边的天气状况。 无缝支持高德地图与谷歌地图。