bugrov/yandex-schedule

PHP SDK Яндекс.Расписаний

dev-main 2022-10-23 15:31 UTC

This package is auto-updated.

Last update: 2024-09-10 16:48:30 UTC


README

安装

支持通过包管理器安装。

$ composer require bugrov/yandex-schedule dev-main

或者

$ php composer.phar require bugrov/yandex-schedule dev-main

如何连接到 Яндекс.Расписания

在使用可用方法之前,调用 setApiKey 方法,并传入 API 密钥

\BugrovWeb\YandexSchedule\Transport::setApiKey('your-api-key');

配置和获取参数

setApiKey 方法

设置访问 Яндекс站点的密钥

public static function setApiKey(string $apiKey)

$apiKey - API 密钥(更多获取信息在此

使用示例

\BugrovWeb\YandexSchedule\Transport::setApiKey('your-api-key');

getApiKey 方法

获取先前设置的 API 密钥

public static function getApiKey()

使用示例

echo \BugrovWeb\YandexSchedule\Transport::getApiKey();

setFormat 方法

设置返回数据的格式

public static function setFormat(string $format)

$format - 返回数据的格式。允许的值 - jsonxml

使用示例

\BugrovWeb\YandexSchedule\Transport::setFormat('xml');

getFormat 方法

获取先前设置的返回数据格式

public static function getFormat()

使用示例

echo \BugrovWeb\YandexSchedule\Transport::getFormat();

setLang 方法

设置返回信息的语言

public static function setLang(string $lang)

$lang - 语言代码,格式为 <语言代码>_<国家代码>。支持的值 - ru_RUuk_UA

使用示例

\BugrovWeb\YandexSchedule\Transport::setLang('ru_RU');

getLang 方法

获取先前设置的返回信息语言

public static function getLang()

使用示例

echo \BugrovWeb\YandexSchedule\Transport::getLang();

操作 Яндекс.Расписания

getScheduleBetweenStations 方法

获取从指定出发站到指定到达站的航班列表以及每个航班的详细信息

public static function getScheduleBetweenStations(string $from, string $to, string $system = Transport::SYSTEM_TYPE_YANDEX,
                                   string $showSystems = Transport::SYSTEM_TYPE_YANDEX, string $date = null,
                                   string $transportTypes = null, int $offset = 0, int $limit = 100,
                                   bool $addDaysMask = false, bool $transfers = false)
  • $from - 出发站代码。必须在 编码系统 中指定
  • $to - 到达站代码。必须在 编码系统 中指定
  • $system - 编码系统,用于指定请求中的出发站和到达站代码(from,to)参数。可能的值
    • yandexTransport::SYSTEM_TYPE_YANDEX(默认值)
    • iataTransport::SYSTEM_TYPE_IATA
    • sirenaTransport::SYSTEM_TYPE_SIRENA
    • expressTransport::SYSTEM_TYPE_EXPRESS
    • esrTransport::SYSTEM_TYPE_ESR
  • $showSystems - 编码系统,其代码应添加到搜索结果中站点的描述(from 和 to 中的 codes 元素)。支持的值
    • yandexTransport::SYSTEM_TYPE_YANDEX(默认值)
    • esrTransport::SYSTEM_TYPE_ESR
  • $date - 需要获取航班列表的日期。可选
  • $transportTypes - 交通工具类型。可选。可能的值
    • planeTransport::TRANSPORT_TYPE_PLANE
    • trainTransport::TRANSPORT_TYPE_TRAIN
    • suburbanTransport::TRANSPORT_TYPE_SUBURBAN
    • busTransport::TRANSPORT_TYPE_BUS
    • waterTransport::TRANSPORT_TYPE_WATER
    • helicopterTransport::TRANSPORT_TYPE_HELICOPTER
  • $offset - 相对于第一个搜索结果的偏移量。默认为 0
  • $limit - 响应中搜索结果的最大数量。默认为 100
  • $addDaysMask - 标志,指示对于每个结果应返回行程日历 - segments 元素中的 schedule 元素。支持的值
    • false - 不返回行程日历(默认值)
    • true - 对于每个线程返回行程日历
  • $transfers - 允许将带有转乘的路线添加到搜索结果中。支持的值
    • false - 搜索结果中不应包含带有转乘的路线(默认值)
    • true - 将带有转乘的路线添加到搜索结果中

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getScheduleBetweenStations('c146', 'c213');

getScheduleOfFlightsByStation 方法

获取从指定站出发的航班列表以及每个航班的详细信息

public static function getScheduleOfFlightsByStation(string $station, string $system = Transport::SYSTEM_TYPE_YANDEX,
                            string $showSystems = Transport::SYSTEM_TYPE_YANDEX, string $date = null,
                            string $transportTypes = null, string $direction = null,
                            string $event = Transport::EVENT_TYPE_DEPARTURE)
  • $station - 站点代码。必须在 编码系统 中指定
  • $system - 编码系统,其中指定了请求中站点的代码(station 参数)。可能值
    • yandexTransport::SYSTEM_TYPE_YANDEX(默认值)
    • iataTransport::SYSTEM_TYPE_IATA
    • sirenaTransport::SYSTEM_TYPE_SIRENA
    • expressTransport::SYSTEM_TYPE_EXPRESS
    • esrTransport::SYSTEM_TYPE_ESR
  • $showSystems - 编码系统,在其中需要获取站点的代码(在响应中的 station 元素内嵌的 codes 元素)。可能值
    • yandexTransport::SYSTEM_TYPE_YANDEX(默认值)
    • esrTransport::SYSTEM_TYPE_ESR
    • allTransport::SYSTEM_TYPE_ALL
  • $date - 需要获取航班列表的日期。可选
  • $transportTypes - 交通工具类型。可选。可能的值
    • planeTransport::TRANSPORT_TYPE_PLANE
    • trainTransport::TRANSPORT_TYPE_TRAIN
    • suburbanTransport::TRANSPORT_TYPE_SUBURBAN
    • busTransport::TRANSPORT_TYPE_BUS
    • waterTransport::TRANSPORT_TYPE_WATER
    • helicopterTransport::TRANSPORT_TYPE_HELICOPTER
  • $direction - 需要获取车站电车的航班列表的方向代码(例如,“arrival”、“all”或“去莫斯科”)
  • $event - 需要从时刻表中过滤线程的事件。支持的值
    • departureTransport::EVENT_TYPE_DEPARTURE(默认值)
    • arrivalTransport::EVENT_TYPE_ARRIVAL

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getScheduleOfFlightsByStation('s9600213');

方法 getListOfStations

获取线程指定标识符的行程列表,每个线程的信息以及线程的中间站信息

public static function getListOfStations(string $uid, string $showSystems = null, string $date = null,
                            string $from = null, string $to = null)
  • $uid - 谷歌.时刻表中的线程标识符
  • $showSystems - 编码系统,在其中需要获取站点的代码(在响应中的 station 元素内嵌的 codes 元素)。可选。可能值
    • yandexTransport::SYSTEM_TYPE_YANDEX
    • esrTransport::SYSTEM_TYPE_ESR
    • allTransport::SYSTEM_TYPE_ALL
  • $date - 需要获取航班列表的日期。可选
  • $from - 出发站代码。必须在 编码系统 中指定
  • $to - 到达站代码。必须在 编码系统 中指定

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getListOfStations('932X_1_2');

方法 getListOfNearestStations

获取距离指定点指定半径内的站点列表。返回的站点最大数量为 50

public static function getListOfNearestStations(string $lat, string $lng, int $distance, int $offset = 0, int $limit = 100,
                            string $stationTypes = null, string $transportTypes = null)
  • $lat - 纬度
  • $lng - 经度
  • $distance - 在其中搜索站点的半径,单位为公里
  • $offset - 相对于第一个搜索结果的偏移量。默认为 0
  • $limit - 响应中搜索结果的最大数量。默认为 100
  • $stationTypes - 要查询的站点类型(可以通过逗号分隔多个类型)。可选。支持的值
    • station - 站点
    • platform - 月台
    • stop - 乘车站点
    • checkpoint - 检查站
    • post - 邮政局
    • crossing - 分岔口
    • overtaking_point - 超车点
    • train_station - 车站
    • airport - 机场
    • bus_station - 客运站
    • bus_stop - 公交车站
    • unknown - 没有类型的站点
    • port - 港口
    • port_point - 港口点
    • wharf - 码头
    • river_port - 河港
    • marine_station - 海港
  • $transportTypes - 要搜索的交通工具类型。可以通过逗号同时指定多个类型,例如,plane,train,bus。可选。支持的值
    • planeTransport::TRANSPORT_TYPE_PLANE
    • trainTransport::TRANSPORT_TYPE_TRAIN
    • suburbanTransport::TRANSPORT_TYPE_SUBURBAN
    • seaTransport::TRANSPORT_TYPE_SEA
    • riverTransport::TRANSPORT_TYPE_RIVER
    • helicopterTransport::TRANSPORT_TYPE_HELICOPTER

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getListOfNearestStations('50.440046', '40.4882367', 50);

方法 getNearestCity

获取距离指定点最近的城市的详细信息

public static function getNearestCity(string $lat, string $lng, int $distance = 10)
  • $lat - 纬度
  • $lng - 经度
  • $distance - 在其中搜索最近城市的半径,单位为公里(默认值为 10)

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getNearestCity('50.440046', '40.4882367', 50);

方法 getCarrierInfo

根据指定的运营商代码获取运营商信息

public static function getCarrierInfo(string $code, string $system = Transport::SYSTEM_TYPE_YANDEX)
  • $code - 运营商代码
  • $system - 编码系统,在其中指定运营商代码(参数 code)在请求中。可能值
    • yandexTransport::SYSTEM_TYPE_YANDEX(默认值)
    • iataTransport::SYSTEM_TYPE_IATA
    • sirenaTransport::SYSTEM_TYPE_SIRENA
    • expressTransport::SYSTEM_TYPE_EXPRESS
    • esrTransport::SYSTEM_TYPE_ESR

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getCarrierInfo('TK', Transport::SYSTEM_TYPE_IATA);

方法 getAllAvailableStations

获取由谷歌.时刻表提供信息的所有站点的完整列表

public static function getAllAvailableStations()

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getAllAvailableStations();

方法 getCopyright

获取有关谷歌.时刻表的数据:服务器的 URL、不同颜色表示的横幅和通知文本

public static function getCopyright()

使用示例

Transport::setApiKey('your-api-key');
$res = Transport::getCopyright();