天气数据(整合版)

查询国内城市气象数据,同时也支持国外热门城市查询
接口编号: 506接口名称: 天气预报连接应用: 8179个
应用编号: 106012应用标识: weather.realtime服务商: NowAPI

说明

重大天气接口升级,整合大量国内天气功能,真正一个接口搞定所有,含:
1.实时天气,在原有功能基础上新加入风速、能见度、降雨量、气压。
2.未来5-7天预报。
3.未来逐小时预报。
4.PM2.5 aqi。
5.生活指数。

PS: 国外天气无逐小时、AQI、生活指数。

测试示例: http://api.k780.com/?app=weather.realtime&weaId=1&ag=today,futureDay,lifeIndex,futureHour&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json (示例中sign会不定期调整)

更新日志:
2021-03-08 添加通过经纬度定位查询天气数据。

风向ID对照表 wtWindId
风向Id风向-
0无持续风向-
1东北风-
2东风-
3东南风-
4南风-
5西南风-
6西风-
7西北风-
8北风-
风力ID对照表 wtWinpId
风力Id(wtWinpId)风力wtWinpNm-
0小于3级-
13-4级-
24-5级-
35-6级-
46-7级-
57-8级-
68-9级-
79-10级-
810-11级-
911-12级-
PM2.5 AQI对照 wtAqi
AQI指数等级指标需注意事项
-1--该地域暂无AQI数据
0-501级参加户外活动呼吸清新空气
51-1002级可以正常进行室外活动
101-1503级轻度污染敏感人群减少体力消耗大的户外活动
151-2004级中度污染对敏感人群影响较大
201-3005级重度污染所有人应适当减少室外活动
>3006级严重污染尽量不要留在室外
天气图标 . 天气wtId与图标wtIcon对照接口 https://www.nowapi.com/api/weather.wtype . 天气图标打包下载地址: 访问weather.wtype接口 (晴wtIcon对应编码是00,那么对应睛(白天) /weather/icon/d/00.png,夜间 /weather/icon/n/00.png 注意目录d/n的区别。)

调用方式

Get/Post

请求url

 HTTP: http://api.k780.com
HTTPS: https://sapi.k780.com

请求参数

参数 类型 是否必须 备注
app string weather.realtime
weaId number (推荐) 通过weaId查询,例: 1
城市列表城市列表中weaId
(参数weaId,cityId,cityNm,cityIp,wgs84ll中取1个作为查询条件)
cityId string (推荐) 城市编号查询,例: 101010100
城市列表城市列表中cityId
cityNm string 通过中文城市名查询,例: 北京
城市列表城市列表中cityNm (带入前urlencode)
cityIp string 通过ip地址查询,例: 202.104.153.201
wgs84ll string 通过经纬度坐标查询,例:116.442708,39.917344
(付费用户可用)
ag string 功能显示参数: today,futureDay,lifeIndex,futureHour
today 显示今日天气节点
futureDay 显示天气预报(未来5-7天)节点
lifeIndex 显示相关节点中生活指数节点
futureHour 显示天气预报(逐小时)节点
多个用逗号隔开,可灵活选择
appkey string 使用API的唯一凭证 获取
sign string md5后的32位密文,登陆用. 获取
format {json|xml} 返回数据格式
jsoncallback string js跨域使用jsonp时可使用此参数

Json请求示例

http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=APPKEY&sign=SIGN&format=json

Json返回示例

{
success: "1",
result: {
    weaid: "1",
    cityid: "101010100",
    area_1: "北京",
    area_2: "城区",
    area_3: "",
    realTime: { 
        /*实时天气, 更新小于40分钟*/
        week: "星期三",
        wtId: "3", /*天气编号 天气类型 wtId*/
        wtNm: "阴", /*天气 天气类型 wtNm*/
        wtIcon: "02", /*天气图标 天气类型 wtIcon*/
        wtTemp: "18", /*温度℃*/
        wtHumi: "44", /*湿度%*/
        wtWindId: "2", /*风向ID (见面页上方风向ID对照表)*/
        wtWindNm: "东风", /*风向*/
        wtWinp: "3", /*风力 单位:级 (非风力ID,该值直接为风力级数)*/
        wtWins: "12",/*风速 单位:km/h*/
        wtAqi: "102", /*pm2.5 aqi*/
        wtVisibility: "4.79", /*能见度km*/
        wtRainfall: "0.00", /*降雨量mm*/
        wtPressurel: "997", /*气压hpa*/
    },
    today: {
        /*今日天气*/
        wtBlueSkyId: "1",/*1:可见蓝天 0:无蓝天*/
        wtId1: "1",/*天气编号(白天) 天气类型 wtId*/
        wtId2: "1",/*天气编号(夜间) 天气类型 wtId*/
        wtNm1: "晴",/*天气(白天) 天气类型 wtNm*/
        wtNm2: "晴",/*天气编号(夜间) 天气类型 wtNm*/
        wtIcon1: "00",/*天气图标(白天) 天气类型 icon*/
        wtIcon2: "00",/*天气图标(夜间) 天气类型 icon*/
        wtTemp1: "14",/*温度(白天)*/
        wtTemp2: "1",/*温度(夜间)*/
        wtWindId1: "8",/*风向ID(白天风向 见面页上方风向ID对照表)*/
        wtWindId2: "8",/*风向ID(夜间风向 见面页上方风向ID对照表)*/
        wtWindNm1: "北风",/*风向*/
        wtWindNm2: "北风",/*风向*/
        /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/
        wtWinpId1: "2",/*风力ID (白天风力 见面页上方风力ID对照表)*/
        wtWinpId2: "0",/*风力ID (夜间风力 见面页上方风力ID对照表)*/
        wtWinpNm1: "4-5级",/*风力 (白天)*/
        wtWinpNm2: "小于3级",/*风力 (夜间)*/
        wtSunr: "06:16",/*日出时间*/
        wtSuns: "18:26",/*日落时间(24小时制)*/
        lifeIndex: { /*指数(含以下5种)*/
            uv: {
                liNo: "uv",
                liNm: "紫外线指数",
                liAttr: "最弱",
                liDese: "辐射弱,涂擦SPF8-12防晒护肤品。"
            },
            xt: {
                liNo: "xt",
                liNm: "血糖指数",
                liAttr: "不易波动",
                liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。"
            },
            ct: {
                liNo: "ct",
                liNm: "穿衣指数",
                liAttr: "较冷",
                liDese: "建议着厚外套加毛衣等服装。"
            },
            xc: {
                liNo: "xc",
                liNm: "洗车指数",
                liAttr: "不宜",
                liDese: "有雨,雨水和泥水会弄脏爱车。"
            },
            kq: {
                liNo: "kq",
                liNm: "空气污染扩散指数",
                liAttr: "良",
                liDese: "气象条件有利于空气污染物扩散。"
            }
        }
    },
    futureDay: [ 
    /*
      未来5-7天气预报,更新每天3次 
      相关栏位当前时段为夜间时会与白天栏位相同
    */
    {
        dateYmd: "2019-03-21",
        week: "星期四",
        wtBlueSkyId: "1",/*1:可见蓝天 0:无蓝天*/
        wtId1: "1",/*天气编号(白天) 天气类型 wtId*/
        wtId2: "1",/*天气编号(夜间) 天气类型 wtId*/
        wtNm1: "晴",/*天气(白天) 天气类型 wtNm*/
        wtNm2: "晴",/*天气编号(夜间) 天气类型 wtNm*/
        wtIcon1: "00",/*天气图标(白天) 天气类型 icon*/
        wtIcon2: "00",/*天气图标(夜间) 天气类型 icon*/
        wtTemp1: "14",/*温度(白天)*/
        wtTemp2: "1",/*温度(夜间)*/
        wtWindId1: "8",/*风向Id(白天)*/
        wtWindId2: "8",/*风向Id(夜间)*/
        wtWindNm1: "北风",/*风向*/
        wtWindNm2: "北风",/*风向*/
        /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/
        wtWinpId1: "2",/*风力Id(白天)*/
        wtWinpId2: "0",/*风力Id(夜间)*/
        wtWinpNm1: "4-5级",/*风力(白天)*/
        wtWinpNm2: "小于3级",/*风力(夜间)*/
        wtSunr: "06:16",/*日出时间*/
        wtSuns: "18:26",/*日落时间(24小时制)*/
        lifeIndex: {
            uv: {
                liNo: "uv",
                liNm: "紫外线指数",
                liAttr: "中等",
                liDese: "涂擦SPF大于15、PA+防晒护肤品。"
            },
            xt: {
                liNo: "xt",
                liNm: "血糖指数",
                liAttr: "易波动",
                liDese: "气温多变,血糖易波动,请注意监测。"
            },
            ct: {
                liNo: "ct",
                liNm: "穿衣指数",
                liAttr: "较冷",
                liDese: "建议着厚外套加毛衣等服装。"
            },
            xc: {
                liNo: "xc",
                liNm: "洗车指数",
                liAttr: "较不宜",
                liDese: "风力较大,洗车后会蒙上灰尘。"
            },
            kq: {
                liNo: "kq",
                liNm: "空气污染扩散指数",
                liAttr: "良",
                liDese: "气象条件有利于空气污染物扩散。"
            }
        }
    },
    {
        dateYmd: "2019-03-22",
        week: "星期五",
        wtBlueSkyId: "1",
        wtId1: "1",
        wtId2: "1",
        wtNm1: "晴",
        wtNm2: "晴",
        wtIcon1: "00",
        wtIcon2: "00",
        wtTemp1: "15",
        wtTemp2: "3",
        wtWindId1: "7",
        wtWindId2: "7",
        wtWindNm1: "西北风",
        wtWindNm2: "西北风",
        wtWinpId1: "1",
        wtWinpId2: "1",
        wtWinpNm1: "3-4级",
        wtWinpNm2: "3-4级",
        wtSunr: "06:15",
        wtSuns: "18:27",
        lifeIndex: {
            uv: {
                liNo: "uv",
                liNm: "紫外线指数",
                liAttr: "中等",
                liDese: "涂擦SPF大于15、PA+防晒护肤品。"
            },
            xt: {
                liNo: "xt",
                liNm: "血糖指数",
                liAttr: "不易波动",
                liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。"
            },
            ct: {
                liNo: "ct",
                liNm: "穿衣指数",
                liAttr: "较冷",
                liDese: "建议着厚外套加毛衣等服装。"
            },
            xc: {
                liNo: "xc",
                liNm: "洗车指数",
                liAttr: "较适宜",
                liDese: "无雨且风力较小,易保持清洁度。"
            },
            kq: {
                liNo: "kq",
                liNm: "空气污染扩散指数",
                liAttr: "良",
                liDese: "气象条件有利于空气污染物扩散。"
            }
        }
    },
    {
        dateYmd: "2019-03-23",
        week: "星期六",
        wtBlueSkyId: "1",
        wtId1: "1",
        wtId2: "1",
        wtNm1: "晴",
        wtNm2: "晴",
        wtIcon1: "00",
        wtIcon2: "00",
        wtTemp1: "13",
        wtTemp2: "4",
        wtWindId1: "8",
        wtWindId2: "5",
        wtWindNm1: "北风",
        wtWindNm2: "西南风",
        wtWinpId1: "1",
        wtWinpId2: "1",
        wtWinpNm1: "3-4级",
        wtWinpNm2: "3-4级",
        wtSunr: "06:13",
        wtSuns: "18:28",
        lifeIndex: {
            uv: {
                liNo: "uv",
                liNm: "紫外线指数",
                liAttr: "中等",
                liDese: "涂擦SPF大于15、PA+防晒护肤品。"
            },
            xt: {
                liNo: "xt",
                liNm: "血糖指数",
                liAttr: "不易波动",
                liDese: "天气条件好,血糖不易波动,可适时进行户外锻炼。"
            },
            ct: {
                liNo: "ct",
                liNm: "穿衣指数",
                liAttr: "较冷",
                liDese: "建议着厚外套加毛衣等服装。"
            },
            xc: {
                liNo: "xc",
                liNm: "洗车指数",
                liAttr: "较适宜",
                liDese: "无雨且风力较小,易保持清洁度。"
            },
            kq: {
                liNo: "kq",
                liNm: "空气污染扩散指数",
                liAttr: "中",
                liDese: "易感人群应适当减少室外活动。"
            }
        }
    },
    ......
    ],
    futureHour: [
    /*逐小时天气预报(最多会有未来24个小时段) 字段说明与realTime节点相同*/
    {
         dateYmdh: "2019-03-20 14:00:00",
         wtId: "3", /*天气编号 天气类型 wtId*/
         wtNm: "阴", /*天气 天气类型 wtNm*/
         wtIcon: "02", /*天气图标 天气类型 wtIcon*/
         wtTemp: "19", /*温度℃*/
         wtWindId: "7", /*风向ID*/
         wtWindNm: "西北风", /*风向*/
        /*此处风力与realTime节点不同,使用风力区间表示,wtWinpId与wtWinpNm对应*/
         wtWinpId: "0", /*风力Id*/
         wtWinpNm: "小于3级" /*风力*/
    },
    {
         dateYmdh: "2019-03-20 15:00:00",
         wtId: "8",
         wtNm: "小雨",
         wtIcon: "07",
         wtTemp: "19",
         wtWindId: "6",
         wtWindNm: "西风",
         wtWinpId: "0",
         wtWinpNm: "小于3级"
    },
    {
         dateYmdh: "2019-03-20 16:00:00",
         wtId: "8",
         wtNm: "小雨",
         wtIcon: "07",
         wtTemp: "18",
         wtWindId: "6",
         wtWindNm: "西风",
         wtWinpId: "0",
         wtWinpNm: "小于3级"
    },
    {
         dateYmdh: "2019-03-20 17:00:00",
         wtId: "8",
         wtNm: "小雨",
         wtIcon: "07",
         wtTemp: "17",
         wtWindId: "7",
         wtWindNm: "西北风",
         wtWinpId: "0",
         wtWinpNm: "小于3级"
     },
    ......
    ]
}

示例代码

<?php
header("Content-Type:text/html;charset=UTF-8");
function nowapi_call($a_parm){
    if(!is_array($a_parm)){
        return false;
    }
    //combinations
    $a_parm['format']=empty($a_parm['format'])?'json':$a_parm['format'];
    $apiurl=empty($a_parm['apiurl'])?'http://api.k780.com/?':$a_parm['apiurl'].'/?';
    unset($a_parm['apiurl']);
    foreach($a_parm as $k=>$v){
        $apiurl.=$k.'='.$v.'&';
    }
    $apiurl=substr($apiurl,0,-1);
    if(!$callapi=file_get_contents($apiurl)){
        return false;
    }
    //format
    if($a_parm['format']=='base64'){
        $a_cdata=unserialize(base64_decode($callapi));
    }elseif($a_parm['format']=='json'){
        if(!$a_cdata=json_decode($callapi,true)){
            return false;
        }
    }else{
        return false;
    }
    //array
    if($a_cdata['success']!='1'){
        echo $a_cdata['msgid'].' '.$a_cdata['msg'];
        return false;
    }
    return $a_cdata['result'];
}

$nowapi_parm['app']='weather.realtime';
$nowapi_parm['weaid']='1';
$nowapi_parm['ag']='today,futureDay,lifeIndex,futureHour';
$nowapi_parm['appkey']='APPKEY';
$nowapi_parm['sign']='SIGN';
$nowapi_parm['format']='json';
$result=nowapi_call($nowapi_parm);
var_dump($result);
print_r($result);

#python
import json,urllib
from urllib import urlencode

url = 'http://api.k780.com'
params = {
  'app' : 'weather.realtime',
  'weaid' : '1',
  'ag' : 'today,futureDay,lifeIndex,futureHour',
  'appkey' : 'APPKEY',
  'sign' : 'SIGN',
  'format' : 'json',
}
params = urlencode(params)

f = urllib.urlopen('%s?%s' % (url, params))
nowapi_call = f.read()
#print content
a_result = json.loads(nowapi_call)
if a_result:
  if a_result['success'] != '0':
    print a_result['result'];
  else:
    print a_result['msgid']+' '+a_result['msg']
else:
  print 'Request nowapi fail.';

import java.net.*;
import java.io.*;

public class test{
    public static void main(String args[]) throws Exception {
        URL u=new URL("http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=APPKEY&sign=SIGN&format=json");
        InputStream in=u.openStream();
        ByteArrayOutputStream out=new ByteArrayOutputStream();
        try {
            byte buf[]=new byte[1024];
            int read = 0;
            while ((read = in.read(buf)) > 0) {
                out.write(buf, 0, read);
            }
        }  finally {
            if (in != null) {
                in.close();
            }
        }
        byte b[]=out.toByteArray( );
        System.out.println(new String(b,"utf-8"));
    }
}

curl "http://api.k780.com/?app=weather.realtime&weaid=1&ag=today,futureDay,lifeIndex,futureHour&appkey=APPKEY&sign=SIGN&format=json"

流量包套餐说明:

买多少用多少,多买有优惠,10元起买,适合大多数应用场景.

规格套餐名称价格描述
201流量包 1000 次10 元约 0.01 元/次
202流量包 12500 次100 元约 0.008 元/次
203流量包 33333 次200 元约 0.006 元/次
205流量包 125000 次500 元约 0.004 元/次
206流量包 500000 次1000 元约 0.002 元/次
208流量包 3000000 次3000 元约 0.001 元/次
209流量包 5555555 次5000 元约 0.0009 元/次
210流量包 12500000 次10000 元约 0.0008 元/次
立即开通

包月套餐说明:

适合调用量比较平均的高频应用场景;有配额限制,超出配额会被暂停调用1小时,请留意购买足够配额.

规格套餐名称价格描述
1022000 次配额/每小时96 元/月
1033000 次配额/每小时130 元/月
1045000 次配额/每小时218 元/月
10510000 次配额/每小时439 元/月
10620000 次配额/每小时883 元/月
10730000 次配额/每小时1332 元/月
10840000 次配额/每小时1786 元/月
10950000 次配额/每小时2244 元/月
110100000 次配额/每小时4800 元/月-
立即开通

免费试用套餐说明:

商用请选择付费套餐。 (系统繁忙或极端情况下,优先保证付费用户使用).

规格套餐名称价格描述
0免费套餐 50 次配额/每小时0 元/月可免费试用3个月.
立即开通

客户服务

客服QQ: 1486133340 
QQ群8: 204490433

客服微信:

数据定制

定制接口、定制数据格式、采集等;联系请提供数据样式范本。1486133340 

意见反馈