logo科技微讯

免费天气 API 简单调查

作者:科技微讯
日期:2023-04-13
📝 笔记

通知中心的每日天气预报通知使用的是和风天气的 API,但从 2022 年 11 月开始,和风的免费额度大幅下降,从原来每天 5 万次请求下降至 1000 次,而且 2023/04/13 这一天通知中心发起的大部份请求都响应超时,这不得不让我考虑放弃使用和风 API。

简单调查了一下目前可用的部分免费天气 API:

  • 和风天气:已确定弃用;
  • 彩云天气:免费额度包括每天 1000 次调用,QPS 为 8,支持未来两天逐小时天气预报;
  • 心知天气;免费用户无调用次数的限制,但 QPS 只有 1;
  • 高德地图:个人免费 0.5 万/天,企业免费 30 万/天(1000QPS),返回的数据很简单,没有逐小时的天气数据,只区分白天和晚上,只有天气、气温、风向风力三个指标,只支持中国大陆、香港澳门,不支持台湾;
  • 百度地图:个人免费 0.5 万次/天(30QPS),企业免费 30 万次/天(100QPS),返回的数据和高德基本相同,也区分夜间白天,只有天气、风力风向、气温三个指标,但它免费额度包含一定量的海外天气查询,这是高德没有的,另外收费版支持经纬度查询;
  • 中国气象数据网:国家队,但只有 7 天免费试用期;
  • OpenWeather:免费额度包括每月 100 万次调用,支持未来五天每三个小时的天气预报,支持空气污染指数查询;
  • weatherapi:免费额度也是 100 万次/月,支持未来三天每小时的天气预报,支持空气质量指数查询;
  • Accu Weather:免费额度每天只有 50 次请求;
  • wttr:它不是空气服务提供商,是一个开源项目,但提供了 API 调用获取天气信息,不支持逐小时天气预报,但区分早上、中午、傍晚、夜间,支持未来三天预报,每天有数千万次请求,但它其实也是调用其他天气服务的 API,而且偶尔会因为超限而无法使用,wttr 只用了一个 data source,但不清楚它具体用的是哪个;

如果不想付费,以上天气 API 其实只有高德(或百度)、OpenWeather 可选,其他 API 的调用次数或 QPS 限制太多,不适合通知中心的使用场景。和风突然大幅降低免费额度让我对彩云、心知也缺少安全感。通知中心的天气通知主要是让用户对今天的天气有一个总体的判断,例如今天是晴还是雨,今天是冷还是热,对逐小时的数据需求不大,同时我不确定 OpenWeather 在国内网络的稳定性如何,所以我考虑百度或高德,我导航用高德地图,所以就用高德 API 吧。如果对台湾或海外天气有需求,应该用百度。不确定高德和百度在开发体验上的区别。

高德或百度天气 API 有一个比较大的问题:只能依据 adcode 查询天气,而不是经纬度。有些面积比较大的行政区域共用同一个 adcode,例如整个东莞市都是 441900,没有细分的 adcode,而东莞面积并不小,这意味着东莞的天气预报信息可能不会很准确。再比如若羌县,中国面积最大的县,相当于两个浙江省,整个县的 adcode 都是 652824,高德地图依据 652824 返回的天气信息恐怕无法反映整个若羌县的天气情况。有些面积很小的行政区域,例如澳门,反而细分了多个 adcode,从天气角度来看没有必要。

如果接受付费,和风天气是按量计费,天气 API 30 万次以内 0.001 元/次,如果一个月调用 10 万次(平均一天 3333 次),费用是 100 元,有点贵。心知天气免费套餐就已经是无限调用,但 QPS 只有 1,要想把 QPS 提高到 1 以上,至少需要 599 的套餐,如果不需要实时天气信息,心知的免费套餐就够用,因为数据可以缓存起来,另外免费不支持商用。彩云对个人开发者而言是最贵的,1200 元/月的个人套餐每天有 5 万次调用,QPS 只有 8,不过彩云支持分钟级天气预报,这是一个很好的功能。


相关文章:

donation赞赏
thumbsup0
thumbsdown0
暂无评论