1.各个天气预报APP数据是怎样接入的,都是统一的来源吗?

2.如何使用PHP调用API接口实现天气查询功能

天气预报 国家气象局_国家气象局天气接口

很多气象数据网站中都可以获取数据哦

1、://ncc.cma.gov.cn/cn/?国家气候中心

2、://.xihe-energy?羲和能源大数据平台

3、://.cdc.noaa.gov/public.data?中国气象局

4、://.edu.cn?中国教育科研计算机网

5、://weather.cn/?中国天气网

步骤一:地理位置选择。既可以选择单点数据也可以选择区域平均数据

步骤二:确认数据源。历史数据可选择羲和数源、欧洲中期天气中心、美国国家航空航天局;预测数据可选择德国气象局

步骤三:输入想查询下载的起止时间,可选历史40年和未来7日

步骤四:选择所需要的气象数据下载,导出小时级数据

步骤五:如需要查询更多数据,可在“更多属性”中进行“检索属性”

各个天气预报APP数据是怎样接入的,都是统一的来源吗?

分享一些实用的气象数据网站:

1、://ncc.cma.gov.cn/cn/?国家气候中心

2、://.cdc.noaa.gov/public.data?中国气象局

3、://xihe-energy?羲和能源大数据平台

4、://.ecmwf.int?欧洲中期天气预报中心

5、://.noaa.gov?美国国家海洋大气局

6、://earthobservatory.nasa.gov?NASA地球观测中心

7、://.weather.gov?NOAA国家天气预报中心

8、://.emetsoc.org?欧洲气象协会

查询步骤也很简单:

步骤一:输入地理信息,既可以选择单点数据也可以选择区域平均数据

步骤二:选择数据源

步骤三:输入想查询下载的起止时间,可选历史40年和未来7日

步骤四:选择所需要的气象数据下载

步骤五:如需要查询更多数据,可在“更多属性”中进行“检索属性”

如何使用PHP调用API接口实现天气查询功能

首先可以明确一点,所有的气象数据一定都是来自官方的,以非官方名义公布天气数据应该还没有人敢,只是国家天气数据也有不准的时候,所有的公司都面临一个问题,怎么样让自己的数据比竞品更准?1、国家天气数据为什么也会不准?

国家天气数据中的一部分是地面、高空、雷达观测数据,会自动汇总到国家气象信息中心通信台。

一部分是卫星数据,比如中国的风云卫星一般需要20多分钟才能完成全球扫描,所以这部分的数据通常有半小时左右的延迟。

最后是预报数据,气象学上有一些标准模型,跑模型的时间,数据打包传输分发的时间其实是比较长的(由于数据量的关系),比如气象局可能用欧洲中心模式系统的数据,有一些延迟,但是预报的特性就是随着时间不断接近,预测越是准确,很容易理解。就我所知,国家高校的一些研究机构也有自己的模型,也不敢说哪个就一定是最准的。

(一部分信息来自中国气象网)

2、国家天气数据可能是不全面的

有些时候我们想要通过手机传感器获得的经纬度来获取天气数据,或者通过?IP?地址来获取天气数据,这些都是很常见的需求,而国家天气数据的?API?可能不支持。

或者,地方气象台有一些地方的气象数据,它们属于省级气象数据,并不需要上报到国家级,那么自然国家天气数据的?API?不支持,但是地方依旧会公布它们。

亦或者,很多人关心 PM2.5,这些数据不是来自气象局,而是来自环保局,而且环保局还没有空气质量预报,又要从其他机构接入。

最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...

1、查询方式:

百度提供的是根据纬度和城市名查询天气情况

2、接口事例:

3、接口参数说明:

4、返回结果说明:

5、

//城市名?

$city?=?'上海';?

//对json格式的字符串进行编码?

$arr?=json_decode($str,TRUE);?

print_r($atr);?

//城市名

$city = '上海';

//获取json格式的数据

$str =file_get_contents("://api.map.baidu/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");

//对json格式的字符串进行编码

$arr =json_decode($str,TRUE); ?

print_r($atr);

6、返回页面的是json编码后的数据:

[plain] view plain copy print?

<meta?charset="UTF-8">?

Array?

(?

[error]?=>?0?

[status]?=>?success?

[date]?=>?2014-03-17?

[results]?=>?Array?

(?

[0]?=>?Array?

(?

[currentCity]=>?上海?

[weather_data]=>?Array?

(?

[0]=>?Array?

(?

[date]?=>?周一(今天,?实时:19℃)?

[dayPictureUrl]?=>://api.map.baidu/images/weather/day/qing.png?

[nightPictureUrl]?=>://api.map.baidu/images/weather/night/qing.png?

[weather]?=>?晴?

[wind]?=>?西南风3-4级?

[temperature]?=>?13℃?

)?

[1]?=>?Array?

(?

[date]=>?周二?

[dayPictureUrl]?=>://api.map.baidu/images/weather/day/duoyun.png?

[nightPictureUrl]?=>?://api.map.baidu/images/weather/night/yin.png?

[weather]=>?多云转阴?

[wind]=>?东北风3-4级?

[temperature]?=>?24?~?9℃?

)?

[2]?=>?Array?

(?

[date]=>?周三?

[dayPictureUrl]?=>://api.map.baidu/images/weather/day/zhongyu.png?

[nightPictureUrl]?=>?://api.map.baidu/images/weather/night/xiaoyu.png?

[weather]=>?中雨转小雨?

[wind]=>?东北风3-4级?

[temperature]?=>?15?~?8℃?

)?

[3]?=>?Array?

(?

[date]=>?周四?

[dayPictureUrl]?=>://api.map.baidu/images/weather/day/duoyun.png?

[nightPictureUrl]?=>://api.map.baidu/images/weather/night/qing.png?

[weather]=>?多云转晴?

[wind]=>?北风3-4级?

[temperature]?=>?14?~?6℃?

)?

)?

)?

)?

)?

<meta charset="UTF-8">

Array

(

[error] => 0

[status] => success

[date] => 2014-03-17

[results] => Array

(

[0] => Array

(

[currentCity]=> 上海

[weather_data]=> Array

(

[0]=> Array

(

? [date] => 周一(今天, 实时:19℃)

? [dayPictureUrl] =>://api.map.baidu/images/weather/day/qing.png

? [nightPictureUrl] =>://api.map.baidu/images/weather/night/qing.png

[weather] => 晴

? [wind] => 西南风3-4级

? [temperature] => 13℃

)

[1] => Array

(

[date]=> 周二

? [dayPictureUrl] =>://api.map.baidu/images/weather/day/duoyun.png

? [nightPictureUrl] => ://api.map.baidu/images/weather/night/yin.png

[weather]=> 多云转阴

[wind]=> 东北风3-4级

? [temperature] => 24 ~ 9℃

)

[2] => Array

(

[date]=> 周三

? [dayPictureUrl] =>://api.map.baidu/images/weather/day/zhongyu.png

? [nightPictureUrl] => ://api.map.baidu/images/weather/night/xiaoyu.png

[weather]=> 中雨转小雨

[wind]=> 东北风3-4级

? [temperature] => 15 ~ 8℃

)

[3] => Array

(

[date]=> 周四

? [dayPictureUrl] =>://api.map.baidu/images/weather/day/duoyun.png

[nightPictureUrl] =>://api.map.baidu/images/weather/night/qing.png

[weather]=> 多云转晴

[wind]=> 北风3-4级

? [temperature] => 14 ~ 6℃

)

)

)

)

)

7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:

[php] view plain copy print?

<metacharset="UTF-8">?

<?php?

//城市名?

$city?=?'上海';?

//获取json格式的数据?

$str?=?file_get_contents("://api.map.baidu/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");?

//对json格式的字符串进行编码?

$arr?=?json_decode($str,TRUE);?

echo?"城市:".$arr['results'][0]['currentCity']."?日期:".$arr['date']."<br?/><br?/>";?

foreach($arr['results'][0]['weather_data']as?$val)?

{?

echo?$val['date']."<br/>";?

echo?"天气:{$val['weather']}<br/>";?

echo?"风向:{$val['wind']}<br/>";?

echo?"温度:{$val['temperature']}<br/><br?/>";?

}?

>?

<metacharset="UTF-8">

<?php

//城市名

$city = '上海';

//获取json格式的数据

$str = file_get_contents("://api.map.baidu/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");

//对json格式的字符串进行编码

$arr = json_decode($str,TRUE); ?

echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";

foreach($arr['results'][0]['weather_data']as $val)

{

echo $val['date']."<br/>";

echo "天气:{$val['weather']}<br/>";

echo "风向:{$val['wind']}<br/>";

echo "温度:{$val['temperature']}<br/><br />";

}

>

8、返回的内容如下: