adinan-cenci/climatempo-api

一个用PHP编写的天气预报API。

4.0.0 2019-12-27 10:05 UTC

This package is auto-updated.

Last update: 2024-09-29 05:07:51 UTC


README

*在其他语言中阅读此内容: 英语

Climatempo 是巴西城市的天气预报服务。他们为开发者提供了一个REST类型的API,本库的目的是简化通过此API进行天气预报请求的过程。

我在哪里可以获得访问令牌?

访问 advisor.climatempo.com.br 并创建一个账户。

将城市注册到您的令牌

在为特定城市请求天气预报之前,您需要将那个城市的ID注册到您的令牌。

use AdinanCenci\Climatempo\Climatempo;

$token      = 'seu-token-aqui';
$locales 	= array(3477 /*São paulo*/, 5959 /*Rio de Janeiro*/, 8050 /*Fortaleza*/);
$climatempo = new Climatempo($token);

$ids 		= $climatempo->addLocalesToToken($locales);

如何使用

假设我们想要获取圣保罗 - SP 的天气预报。
我们需要这个城市的ID

use AdinanCenci\Climatempo\Climatempo;

$token      = 'seu-token-aqui';
$id         = 3477; /*São paulo*/

$climatempo = new Climatempo($token);
$previsao   = $climatempo->fifteenDays($id);

foreach ($previsao->days as $dia) {
    echo 
    "Cidade: <b>$previsao->city ($dia->date)</b>: <br>
    Temp. mínima: $dia->minTemp °C <br>
    Temp. máxima: $dia->maxTemp °C <br>
    Probab. de precipitação: $dia->pop % <br>
    Precipitação: $dia->mm mm <br>
    Frase: $dia->textPt <hr>";
}

这将导致以下结果

城市: 圣保罗 (2017-12-06)
最低温度: 21 °C
最高温度: 32 °C
降水概率:%
降水量: mm
天气状况:晴有时多云

城市: 圣保罗 (2017-12-07)
最低温度: 18 °C
最高温度: 24 °C
降水概率: 75 %
降水量: 2 mm
天气状况:晴转雨

城市: 圣保罗 (2017-12-08)
最低温度: 16 °C
最高温度: 20 °C
降水概率: 75 %
降水量: 3 mm
天气状况:晴转雨

洪水

可以通过经纬度恢复有关洪水风险的资料。

use AdinanCenci\Climatempo\Climatempo;

$token      = 'seu-token-aqui';
$latitude   = '-23.6733566'; /*São paulo*/
$longitude  = '-46.8851047,10'; 

$climatempo = new Climatempo($token);
$risk 		= $climatempo->floodingRisk($latitude, $longitude);

echo 
'<b>'.$risk->latitude.' '.$risk->longitude.'</b><br>';
foreach ($risk->data as $data) {
    echo 
    'Valor agora: '.$data->valueNow.'<br />
    Agora: '.date('d / M / Y, H:i:s', $data->now).'<br />
	<br />
    Valor próxima hora: '.$data->valueNextHour.'<br />
    Próxima hora: '.date('d / M / Y, H:i:s', $data->nextHour).
    '___';
}

这将导致以下结果

-23.18400435255711 -46.28138759172782
当前值: 0
现在: 26 / Dec / 2019, 16:00:00

下一小时值: 0
下一小时: 26 / Dec / 2019, 17:00:00

不知道ID如何获取城市的预报?

很遗憾,Climatempo使用自己的系统,每个巴西城市都有自己的ID。但您可以使用Search类轻松找到您要找的城市。

假设我们想要获取里约热内卢 - RJ 的预报

use AdinanCenci\Climatempo\City\Search;

$pesquisa     = new Search();
$pesquisa->name('rio de janeiro');

$rio = $pesquisa->find()[0]; // objeto City

然后您可以通过以下方法访问预报

$rio->fifteenDays($token);              // retorna a previsão para os próximos 15 dias
$rio->seventyTwoHours($token);          // retorna a previsão para as próximas 72 horas
$rio->current($token);                  // retorna o estado do clima neste instante 

$rio->today($token);                    // retorna a previsão para hoje
$rio->tomorow($token);                  // retorna a previsão para amanhã
$rio->afterTomorow($token);             // retorna a previsão para depois de amanhã

搜索

关于搜索,Search类允许我们限制搜索到州。
以下示例将搜索所有在里约热内卢州名称中包含"rio"的城市。

use AdinanCenci\Climatempo\City\Search;

$pesquisa = new Search();
$pesquisa
->name('rio')
->state('RJ');

$pesquisa->find(); // retorna array

请参阅"examples"文件夹中的其他示例。

如何安装

使用composer

composer require adinan-cenci/climatempo-api

许可证

MIT许可证