luizcesar / olho-vivo-api
OlhoVivoAPI 是 SPTrans' OlhoVivo 的 PHP 实现。
2.2
2017-05-31 13:02 UTC
Requires
- php: >=5.5
- guzzlehttp/guzzle: *
This package is not auto-updated.
Last update: 2024-09-25 01:45:42 UTC
README
PHP 实现 SPTrans' OlhoVivo API v2.1。
目录
简介
这是一个纯 PHP 面向对象的 SPTrans' OlhoVivoAPI v2.1 实现。OlhoVivo 官方 API 提供了巴西圣保罗(BR)公共交通巴士系统的实时数据。官方 API 中记录的所有方法都已实现。
此 API 可以
- 按路线(可选)搜索巴士线路。
- 搜索巴士站点。
- 搜索由特定巴士线路服务的巴士站点。
- 列出实际的圣保罗巴士快线(BRT)。
- 报告在某一时间提供交通服务的所有公司。
- 报告在某一时间由巴士线路服务的所有车辆及其位置。
- 报告在某一时间特定巴士线路上的所有车辆及其位置。
- 报告从运营商的停车场(可选)通过巴士线路传输位置的所有车辆。
- 预测特定巴士站点在特定巴士线路上的到达时间。
- 预测特定巴士线路服务的所有巴士站点的到达时间。
- 预测在某一时间服务于特定巴士站点的所有巴士线路的到达时间。
- 获取包含实际交通状况的 KMZ 文件。
此包的对象可以与 GTFS 表 本地一起使用。
此代码可在 Github 上找到。欢迎提交拉取请求。
说明
获取令牌
- 注册 SPTrans 开发者区域。
- 登录后,您需要创建一个应用程序名称并申请令牌。
使用 Composer 需求此包
通过 Composer 安装此包。编辑您的项目 composer.json
文件以需求 luizcesar/olho-vivo-api
。
创建 composer.json 文件
{ "name": "yourproject/yourproject", "type": "project", "require": { "php": ">=5.6", "luizcesar/olho-vivo-api": "*" } }
并运行 composer update
或者
在您的命令行中运行此命令
composer require luizcesar/olho-vivo-api
配置
打开 olhoVivo.php 并填写您的 api-key。
使用示例
use LuizCesar\OlhoVivoAPI\Bulletins\ArrivalForecast; use LuizCesar\OlhoVivoAPI\Entities\BusLine; use LuizCesar\OlhoVivoAPI\Entities\BusStop; use LuizCesar\OlhoVivoAPI\OlhoVivo; //get an instance of OlhoVivo object $spTrans = OlhoVivo::getInstance(); $aBusLine = ($spTrans->seekLines("875A",BusLine::WAY_FIRST_LEG))[0]; //The first match of a line search $busStops = $spTrans->seekBusStopsByLine($aBusLine); //all stops served by $aBusLine $aBusStop = $busStops[rand(0,count($busStops)-1)]; //get a random bus stop of $busStops' //Get a Map of all Lines that have buses forecasted to arrive on the chosen bus stop. $arrivalForecast = $spTrans->getArrivalForecastByStop($aBusStop); $arrivalsMap = $arrivalForecast->getArrivalsMap(); //Map of Lines and array of buses echo "Arrival forecast for bus stop at {$aBusStop->getName()}" . PHP_EOL . "Issued at: {$arrivalForecast->getTime()}" . PHP_EOL; //The way to iterate over SplObjectStorage objects. foreach($arrivalsMap as $line) { echo "{$line->getFullSignCode()} {$line->getActualSignName()}" . PHP_EOL . "\t_______________________________" . PHP_EOL . "\t| Time | Bus Id | Accessible |" . PHP_EOL . "\t|-------|--------|------------|" . PHP_EOL; foreach($arrivalsMap[$line] as $busForecast) echo "\t| {$busForecast->getTime()} | {$busForecast->getBus()->getId()} | " . ($busForecast->getBus()->isAcc() == true ? ' YES' : ' NO ') . " |" . PHP_EOL; echo "\t===============================" . PHP_EOL . PHP_EOL; }
以下是一个示例输出
Arrival forecast for bus stop at R DR. ALBUQUERQUE LINS
Issued at: 13:41
8000-10 TERM. LAPA
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
===============================
8622-10 MORRO DOCE
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
===============================
8400-10 TERM. PIRITUBA
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
| 13:46 | 11402 | YES |
===============================
8615-10 PQ. DA LAPA
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
| 13:46 | 11402 | YES |
| 13:46 | 82496 | YES |
===============================
8594-10 CID. D'ABRIL
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
| 13:46 | 11402 | YES |
| 13:46 | 82496 | YES |
| 13:48 | 11448 | YES |
===============================
874T-10 LAPA
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
| 13:46 | 11402 | YES |
| 13:46 | 82496 | YES |
| 13:48 | 11448 | YES |
| 14:08 | 52214 | YES |
===============================
875A-10 PERDIZES
_______________________________
| Time | Bus Id | Accessible |
|-------|--------|------------|
| 13:45 | 12125 | NO |
| 13:46 | 12119 | NO |
| 13:45 | 11771 | NO |
| 13:46 | 11402 | YES |
| 13:46 | 82496 | YES |
| 13:48 | 11448 | YES |
| 14:08 | 52214 | YES |
| 14:22 | 62106 | NO |
| 14:46 | 62096 | NO |
===============================
变更日志
v2.2
- 在
Bus
对象上实现getOwners()
。 - 问题修复。
- 现在通过
getInstance()
方法检索 OlhoVivo 对象。
v2.1.0.1
- 修复错误。
v2.1.0
- 实现了 SPTrans API 的新版本(v2.1)。
- 所有方法都已实现。
- 公司对象。
- 更好的错误处理。
- 对象重新设计。
v0.2
- 修复错误。
- 能够检索巴士颜色。
v0.1
- 发布第一个版本。
故障排除
如果您发现任何错误,请在 问题 页面上报告。
许可
请参阅本存储库中包含的授权协议,以获取完整的MIT授权协议副本,本项目的授权依据此协议。