vemcogroup/laravel-weather

Laravel的天气包,使用不同的提供商获取天气信息

3.0.2 2024-01-15 08:53 UTC

This package is auto-updated.

Last update: 2024-09-13 15:29:29 UTC


README

Latest Version on Packagist Total Downloads tests

描述

此包允许您从不同的天气提供商获取天气数据

安装

您可以通过composer安装此包

composer require vemcogroup/laravel-weather

包将自动注册其服务提供者。

要发布配置文件到 config/weather.php,运行

php artisan vendor:publish --provider="Vemcogroup\Weather\WeatherServiceProvider"

默认配置可在此处查看 https://github.com/vemcogroup/laravel-weather/blob/master/config/weather.php

用法

目前此包支持以下天气服务,您可以将 WEATHER_PROVIDER 更改为以下之一

对于其他天气服务,请随意创建问题或发起Pull Request。

对于 手动 地理编码,您需要一个Google geocode API密钥。
在此获取它 https://developers.google.com/maps/documentation/geocoding/start 并将其插入到您的.env文件中。

GOOGLE_MAPS_GEOCODING_API_KEY= 

请求

首先设置您的请求

$request = (new Vemcogroup\Weather\Request('1 Infinite Loop, Cupertino, CA 95014, USA'));

默认情况下,它将天气响应缓存24小时(86.400秒),这可以通过设置第二个参数来更改缓存超时(以秒为单位)

$request = (new Vemcogroup\Weather\Request('1 Infinite Loop, Cupertino, CA 95014, USA', 600));

单位
有两种可用的单位类型,默认为公制

公制(m):Vemcogroup\Weather\Providers\Provider::WEATHER_UNITS_METRIC
华氏度(f):Vemcogroup\Weather\Providers\Provider::WEATHER_UNITS_FAHRENHEIT

要更改响应单位,您可以执行以下操作

$request->withUnits(Vemcogroup\Weather\Providers\Provider::WEATHER_UNITS_FAHRENHEIT);

区域设置
要更改描述、摘要和其他文本中的区域设置,请执行以下操作

$request->withLocale('nl');

区域设置需要是您首选语言的2字母ISO代码。

日期 如果您需要选择日期来获取天气数据,例如获取历史数据,请按如下设置日期

$request->withDates([$date, ...]);

数组中的所有日期都需要是 Carbon 对象。

选项
如果您需要根据所选天气提供商设置任何其他选项,您可以执行以下操作

$request->withOption('name', 'value');

当前天气和预报

要获取当前天气和预报响应,您可以这样做

$weather = weather()->getForecast($request);

天气响应始终是一个 Collection 响应。
预报天数取决于天气服务提供商。

要获取当前天气数据

$weather->first()->getCurrently(); // DataPoint

要获取预报,您可以获取响应的第一个元素并按如下方式获取预报

$weather->first()->getDaily()->getData(); // array

然后通过数组遍历,每个元素代表预报中的每一天的 DataPoint 对象。

历史数据

要获取历史数据,您可以这样做

$weather = weather()->getHistorical($request);

请记住在请求上设置日期。
响应将是一个包含代表历史数据日期的键的集合。

响应

要查看响应数据,请查看源代码 /src/Objects