*Read this in other languages: English
Climatempo é um serviço de previsão do tempo para cidades brasileiras. Eles oferece uma API do tipo REST para desenvolvedores e o objetivo desta biblioteca é fazer simples a requisição de previsão de tempo via dita API.
Acesse advisor.climatempo.com.br e crie uma conta.
Antes de requisitar previsões para uma cidade em específico, você precisa registrar o id daquela cidade ao seu token:
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);
Digamos que nós queremos a previsão para São Paulo - SP.
Nós vamos precisar do id para essa cidade:
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>";
}
Vai resultar em:
Cidade: São Paulo (2017-12-06):
Temp. mínima: 21 °C
Temp. máxima: 32 °C
Probab. de precipitação: %
Precipitação: mm
Frase: Sol com algumas nuvens
Cidade: São Paulo (2017-12-07):
Temp. mínima: 18 °C
Temp. máxima: 24 °C
Probab. de precipitação: 75 %
Precipitação: 2 mm
Frase: Sol e Chuva
Cidade: São Paulo (2017-12-08):
Temp. mínima: 16 °C
Temp. máxima: 20 °C
Probab. de precipitação: 75 %
Precipitação: 3 mm
Frase: Sol e Chuva
É possivel recuperar dados sobre risco de inundação através da latitude e longitude.
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).
'___';
}
Vai resultar em:
-23.18400435255711 -46.28138759172782
Valor agora: 0
Agora: 26 / Dec / 2019, 16:00:00
Valor próxima hora: 0
Próxima hora: 26 / Dec / 2019, 17:00:00
Infelizmente o climatempo usa seu próprio sistema, cada cidade brasileira tem seu próprio ID. Mas você pode facilmente usar a classe Search para encontrar a cidade que procura.
Digamos que nós queremos a previsão para Rio de Janeiro - RJ:
use AdinanCenci\Climatempo\City\Search;
$pesquisa = new Search();
$pesquisa->name('rio de janeiro');
$rio = $pesquisa->find()[0]; // objeto City
Então você pode acessar a previsão através dos seguintes metodos:
$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ã
Falando em pesquisa, a classe Search nos permite a restringir a busca à estados.
O exemplo abaixo vai pesquisar por todas as cidades com "rio" no nome no estado do Rio de Janeiro.
use AdinanCenci\Climatempo\City\Search;
$pesquisa = new Search();
$pesquisa
->name('rio')
->state('RJ');
$pesquisa->find(); // retorna array
Veja outros exemplos na pasta "examples".
Use composer
composer require adinan-cenci/climatempo-api
Licença MIT