adinan-cenci/climatempo-api
Composer 安装命令:
composer require adinan-cenci/climatempo-api
包简介
Uma api para previsão de tempo escrita em PHP.
README 文档
README
*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.
Aonde consigo o token de acesso?
Acesse advisor.climatempo.com.br e crie uma conta.
Registrando cidades ao seu token
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);
Como usar
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
Inundação
É 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
Como ter a previsão de uma cidade sem saber o ID?
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ã
Pesquisando
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".
Como instalar
Use composer
composer require adinan-cenci/climatempo-api
Licença
Licença MIT
adinan-cenci/climatempo-api 适用场景与选型建议
adinan-cenci/climatempo-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8.42k 次下载、GitHub Stars 达 45, 最近一次更新时间为 2017 年 05 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「weather」 「forecast」 「previsão do tempo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 adinan-cenci/climatempo-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 adinan-cenci/climatempo-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 adinan-cenci/climatempo-api 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Provides a Wrapper for the Apple WeatherKit API
Laravel-forecast provides a service provider and a facade around the Forecast-php wrapper
A PSR-7 compatible library for making CRUD API endpoints
Add a weather widget to Flarum
A lightweight Laravel package for integrating weather data from Yr (api.met.no)
API for the Danish Meteorological Institute (DMI)
统计信息
- 总下载量: 8.42k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 45
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-05-01