randomhost/weather

此软件包已被废弃,不再维护。没有建议的替代软件包。

封装了从Yahoo天气API获取天气数据的函数,以便轻松检索。

1.1.2 2018-05-21 15:48 UTC

This package is auto-updated.

Last update: 2022-12-27 04:05:44 UTC


README

Build Status

注意:由于雅虎关闭了对天气API的免费访问,此软件包自2019年1月起已被废弃。

randomhost/weather

此软件包封装了从Yahoo天气API获取天气数据的函数,以便轻松检索。它是作为randomhost/webcamoverlay的一部分创建的,但作为独立的组件发布,以便在其他软件包中使用。

由于它是作为randomhost/webcamoverlay的依赖项创建的,因此它只支持可用天气数据的一个子集。

用法

使用此软件包的基本方法可能如下所示

<?php
namespace randomhost\Weather;

require_once '/path/to/vendor/autoload.php';

// get Yahoo Weather API Feed instance
$feed = new Yahoo\Feed('Cologne', Yahoo\Feed::UNITS_INTL);

echo sprintf(
    'Temperature: %s°%s, Humidity: %s%%',
    $feed->getCondition()->getTemperature(),
    $feed->getUnits()->getTemperature(),
    $feed->getAtmosphere()->getHumidity()
);

这将实例化类,获取天气数据并显示当前温度和湿度。

假设您将此文件命名为weather.php,现在您应该能够在http://example.com/weather.php访问天气数据。

更详细的示例可以在src/www/weather.php中找到。

Feed对象

Feed对象是在您的应用程序中将与之交互的主要对象。它提供了从Yahoo!天气API检索数据所需的所有方法。

构造函数

构造函数接受3个参数,它们都是可选的

  • $locationName
    用于从Yahoo天气API检索天气数据的地点名称。

  • $systemOfUnits
    由馈送返回的单位系统。这必须是Feed::UNITS_INTLFeed::UNITS_US之一。

  • $feedUrl
    用于从Yahoo天气API检索天气数据的馈送URL。

如果提供了$locationName,则将隐式调用Feed::fetchData(),这将自动检索指定位置ID的天气数据并相应地填充数据访问对象。
如果您不希望这样做,可以省略$locationName或将它设置为''(一个空字符串),然后使用Feed::setLocationName()自行配置地点名称。

可以设置$systemOfUnits参数以确定天气馈送要使用的单位系统。如果没有提供或设置为''(一个空字符串),则默认使用国际单位(摄氏度、千米、毫巴)。

$feedUrl定义了从Yahoo!天气API检索天气数据的馈送URL。除非雅虎更改其API,否则通常不需要更改此参数。

配置馈送

以下公共方法可用于配置天气馈送

  • setFeedUrl($feedUrl)
    设置用于从Yahoo天气API检索天气数据的馈送URL。

  • getFeedUrl()
    返回最后设置的天气API馈送URL。

  • setLocationName($name)
    设置用于从Yahoo天气API检索天气数据的地点名称。

  • getLocationName()
    返回用于检索天气数据的最后设置的地点名称。

  • setSystemOfUnits($systemOfUnits)
    设置由数据源返回的单位系统。

  • getSystemOfUnits()
    返回最后设置的单位系统。

从数据源获取数据

以下公共方法可用于从数据源获取数据:

  • fetchData()
    从Yahoo天气API获取天气数据,并相应地填充数据访问对象。
    在使用以下任何方法之前,必须至少调用此方法一次。

  • getLocation()
    返回一个包含此预报位置的 Data\Location 对象。

  • getUnits()
    返回一个包含预报各个方面单位的 Data\Units 对象。

  • getWind()
    返回一个包含关于风的预报信息的 Data\Wind 对象。

  • getAtmosphere()
    返回一个包含关于当前大气压力、湿度和能见度的预报信息的 Data\Atmosphere 对象。

  • getAstronomy()
    返回一个包含关于当前天文条件的预报信息的 Data\Astronomy 对象。

  • getCondition()
    返回一个包含当前天气条件的 Data\Condition 对象。

  • getForecast()
    返回一个包含特定一天天气预报的 Data\Forecast 对象数组的数组。

  • getTitle()
    返回Yahoo返回的天气数据标题。

  • getLink()
    返回将天气数据链接回Yahoo的链接。

Data\Location 对象

Data\Location 对象表示预报的位置信息。

以下公共方法可用于获取数据:

  • getCity()
    返回城市名称。(字符串)

  • getRegion()
    返回州、领地或地区。(字符串)

  • getCountry()
    返回国家名称。(字符串)

Data\Units 对象

Data\Units 对象表示预报的各个方面单位。

以下公共方法可用于获取数据:

  • getTemperature()
    返回温度的度数单位。(字符串)

  • getDistance()
    返回距离的单位。(字符串)

  • getPressure()
    返回气压的单位。(字符串)

  • getSpeed()
    返回速度的单位。(字符串)

Data\Wind 对象

Data\Wind 对象表示关于风的预报信息。

以下公共方法可用于获取数据:

  • getChill()
    返回风的温度(以度为单位)。(浮点数)

  • getDirection()
    返回风向,以度为单位。(浮点数)

  • getSpeed()
    返回风速。(浮点数)

Data\Atmosphere 对象

Data\Atmosphere 对象表示关于当前大气压力、湿度和能见度的预报信息。

以下公共方法可用于获取数据:

  • getHumidity()
    返回湿度,以百分比表示。(浮点数)

  • getVisibility()
    返回能见度。(浮点数)

  • getPressure()
    返回气压。(浮点数)

  • getRising()
    返回气压状态:稳定(0)、上升(1)或下降(2)。(整数)

Data\Astronomy 对象

Data\Astronomy 对象表示关于当前天文条件的预报信息。

以下公共方法可用于获取数据:

  • getSunrise()
    返回今天的日出时间。(DateTime)

  • getSunset()
    返回今天的日落时间。(DateTime)

Data\Condition 对象

Data\Condition 对象表示当前的天气条件。

以下公共方法可用于获取数据:

  • getText()
    返回条件的文本描述。(字符串)

  • getCode()
    返回此预报的条件代码。您可以使用此代码选择预报的文本描述或图像。
    此元素的可能的值在 条件代码 中描述。(int)

  • getTemperature()
    返回当前温度。(float)

  • getDate()
    返回适用于此预报的当前日期和时间。(\DateTime)

数据\预报对象

Data\Forecast 对象表示特定一天的天气预报。

以下公共方法可用于获取数据:

  • getDate()
    返回此预报适用的日期。(\DateTime)

  • getLow()
    返回此日的预报最低温度。(float)

  • getHigh()
    返回此日的预报最高温度。(float)

  • getText()
    返回条件的文本描述。(字符串)

  • getCode()
    返回此预报的条件代码。您可以使用此代码选择预报的文本描述或图像。
    此元素的可能的值在 条件代码 中描述。(int)

归属指引

请注意,您必须使用 Feed::getLink() 提供的链接 URL 并使用 Yahoo 提供的一个标志链接回 Yahoo。请参阅 Yahoo 的 Yahoo API 归属指引 了解详情。

许可证

有关完整许可证详情,请参阅 LICENSE.txt。