在开发需要「按经纬度查天气」的应用时(出行、物流、IoT、海外站点等),第一个问题往往是:有没有免费、稳定、支持全球坐标的天气接口?这里整理出仍可正常使用的清单,供你按需选择。文中结论均基于 2026-08-14 的真实请求验证。
一、免费接口清单
- 万维易源 天气预报国际版(经纬度查询当前天气):全球覆盖、按经纬度、免费服务(需 appKey)
- Open-Meteo:全球经纬度、无需 Key、完全免费
- OpenWeatherMap:全球经纬度、免费 Key、字段规范
- WeatherAPI.com:全球经纬度、免费 Key、多语言
- wttr.in:全球经纬度、无需 Key、轻量 JSON/文本
- sojson 天气:国内城市代码、无需 Key(按城市名,非经纬度)
二、免费接口推荐
1、万维易源 天气预报国际版(经纬度查询当前天气)
- 能力:通过经纬度查询当前实时天气,覆盖全球数百万地点;返回气温、湿度、风向风速、降水概率、紫外线、能见度,以及空气质量(AQI、PM2.5、PM10 等)。另含「24 小时预报」「14 天预报」两个接入点。
- 方式:HTTP POST/GET,返回 JSON。
- 限制:需注册 appKey(免费申请),按调用计费(免费服务额度内可用)。
- 适用:需要全球坐标、且希望一次拿到「天气 + 空气质量」完整字段的场景。
2、Open-Meteo
- 能力:无需任何 Key,直接按经纬度查询当前及逐小时 / 多日天气预报,覆盖全球。
- 方式:HTTP GET,返回 JSON;通过
current=参数指定所需字段(温度、湿度、风速、天气代码等)。 - 限制:无 Key、无限额声明,但建议合理控制请求频率(官方建议每日不超过约 1 万次)。
- 适用:个人项目、原型验证、海外坐标查询,开箱即用。
3、OpenWeatherMap
- 能力:全球覆盖,支持按
lat/lon查询当前天气、5 天 / 3 小时间隔预报、历史数据等,字段规范。 - 方式:HTTP GET,需免费 appid;示例
/data/2.5/weather?lat={lat}&lon={lon}&appid={key}&units=metric。 - 限制:免费层有调用频率限制(约 60 次 / 分钟)。
- 适用:需要规范 JSON 结构与全球覆盖的中小项目。
4、WeatherAPI.com
- 能力:全球覆盖,支持经纬度(
q=lat,lon)查询当前、预报、历史、多语言。 - 方式:HTTP GET,需免费 key;示例
/v1/current.json?q={lat},{lon}&key={key}。 - 限制:免费层有月调用额度与功能限制。
- 适用:需要多语言、历史数据或丰富字段的国际化应用。
5、wttr.in
- 能力:无需 Key,按经纬度(或城市名)返回天气,支持 JSON(
?format=j1)与终端文本。 - 方式:HTTP GET;示例
https://wttr.in/{lat},{lon}?format=j1。 - 限制:面向人类可读场景,结构化字段较精简,有频率限制。
- 适用:快速查看、命令行 / 脚本取数、轻量展示。
三、参数速览表
| 接口 | 全球经纬度 | 是否需要 Key | 返回格式 | 计费 / 限制 |
|---|---|---|---|---|
| 万维易源 3540 | 是 | 是(免费 appKey) | JSON | 免费服务额度内可用 |
| Open-Meteo | 是 | 否 | JSON | 免费、建议限速 |
| OpenWeatherMap | 是 | 是(免费) | JSON | 约 60 次 / 分钟 |
| WeatherAPI.com | 是 | 是(免费) | JSON | 月有额度与功能限制 |
| wttr.in | 是 | 否 | JSON / 文本 | 频率限制 |
| sojson | 否(城市名) | 否 | JSON | 无 SLA |
四、场景化选型建议
- 想零配置立刻跑通、且查海外坐标:可考虑 Open-Meteo 或 wttr.in(均无需 Key)。
- 需要规范 JSON 与全球覆盖、能接受注册免费 Key:可考虑 OpenWeatherMap 或 WeatherAPI.com。
- 希望一次拿到「天气 + 空气质量」完整字段、且覆盖全球:可考虑 万维易源 天气预报国际版。
- 仅查国内城市、且不想注册:可考虑 sojson(按城市代码)。
五、实战代码示例
Open-Meteo(无需 Key,Python)
import requests
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": 51.5171,
"longitude": -0.1062,
"current": "temperature_2m,relative_humidity_2m,wind_speed_10m,weather_code",
}
r = requests.get(url, params=params, timeout=15)
print(r.json())
万维易源 3540(需 appKey,curl)
curl -X POST "https://route.showapi.com/3540-1?appKey=YOUR_APPKEY" \
-d "lon=-0.1062" -d "lat=51.5171"
六、FAQ
Q:免费接口会不会突然失效?
A:会有变动可能。本文结论基于 2026-08-14 实测请求,正式接入前建议再自测一次。对生产环境,建议为关键链路准备备用数据源。
Q:按经纬度查和按城市名查有什么区别?
A:经纬度查询适合 GPS / IoT / 海外场景,全球通用;城市名查询依赖城市代码表,通常仅覆盖国内。本文优先推荐支持经纬度入参的接口。
七、结语
按经纬度查天气的免费方案并不少,关键看是否需要 Key、是否覆盖全球、字段是否够用。按需选用即可,接入前再做一次自测更稳妥。
本文基于 2026-08-14 实测请求整理,正式接入前建议再自测。