previousnext/bom-weather
Composer 安装命令:
composer require previousnext/bom-weather
包简介
PHP lib for accessing the Australian Bureau of Meteorology (BOM) weather forecasts and observations.
README 文档
README
A PHP library for fetching data from the Australian Bureau of Meteorology API.
Installation
composer require previousnext/bom-weather php-http/discovery
The library requires a PSR-18 HTTP client and PSR-17 HTTP factories. We recommend using Guzzle.
Usage
Forecasts
$httpClient = new GuzzleHttp\Client(['base_uri' => 'http://www.bom.gov.au/']); $requestFactory = new Http\Factory\Guzzle\RequestFactory(); $client = new BomClient($httpClient, $requestFactory, new NullLogger()); $forecast = $client->getForecast('IDN10031'); $issueTime = $forecast->getIssueTime(); $regions = $forecast->getRegions(); $metros = $forecast->getMetropolitanAreas(); $locations = $forecast->getLocations(); foreach ($locations as $location) { $aac = $location->getAac(); $desc = $location->getDescription(); /** @var \BomWeather\Forecast\ForecastPeriod[] $periods */ $periods = $location->getForecastPeriods(); // Usually 7 days of forecast data. foreach ($periods as $period) { $date = $period->getStartTime(); $maxTemp = $period->getAirTempMaximum(); $precis = $period->getPrecis(); } }
Warnings
$httpClient = new GuzzleHttp\Client(['base_uri' => 'http://www.bom.gov.au/']); $requestFactory = new Http\Factory\Guzzle\RequestFactory(); $client = new BomClient($httpClient, $requestFactory, new NullLogger()); $warning = $client->getWarning('IDN20400'); $issueTime = $warning->getIssueTime(); // Warning info contains the title and advice. $warningInfo = $warning->getWarningInfo(); $title = $warningInfo->getWarningTitle(); $nextIssue = $warningInfo->getWarningNextIssue(); // Areas affected by the warning. $regions = $warning->getRegions(); $coasts = $warning->getCoasts(); foreach ($regions as $region) { $aac = $region->getAac(); $description = $region->getDescription(); }
Observations
$httpClient = new GuzzleHttp\Client(['base_uri' => 'http://www.bom.gov.au/']); $requestFactory = new Http\Factory\Guzzle\RequestFactory(); $client = new BomClient($httpClient, $requestFactory, new NullLogger()); $observationList = $client->getObservationList('IDN60901', '95757'); $refreshMessage = $observationList->getRefreshMessage(); // Get the latest observation. $observation = $observationList->getLatest(); $rain = $observation->getRainSince9am(); // Station information. $station = $observation->getStation(); $name = $station->getName(); // Temperature observations. $temperature = $observation->getTemperature(); $airTemp = $temperature->getAirTemp(); $apparentTemp = $temperature->getApparentTemp(); $relativeHumidity = $temperature->getRealtiveHumidity(); // Wind observations. $wind = $observation->getWind(); $direction = $wind->getDirection(); $speedKmh = $wind->getSpeedKmh(); $gustKmh = $wind->getGustKmh(); // Pressure observations. $pressure = $observation->getPressure(); $qnh = $pressure->getQnh(); $meanSeaLevel = $pressure->getMeanSeaLevel();
Developing
PHP CodeSniffer
./bin/phpcs
PHPUnit
./bin/phpunit
PHPStan
./bin/phpstan
统计信息
- 总下载量: 504
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2018-06-25