justincdotme / laravel-open-charge
Laravel Open Charge 为 Open Charge Map POI API 提供了一个流畅的包装器,支持 Laravel 5.x、Lumen 5.x
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: ~5.3|~6.0
- illuminate/support: ~5
Requires (Dev)
- phpunit/phpunit: ~6
This package is not auto-updated.
Last update: 2024-09-29 02:57:59 UTC
README
Laravel Open Charge 为 Open Charge Map POI API 提供了一个流畅的包装器
该项目目标是使开发者能够通过在 Open Charge API 上创建一个抽象层,从而更容易地关注其应用程序。
安装
######此应用程序需要 Laravel 5.* 或 Lumen 5.*
Lumen 5.* 安装
使用 Composer 安装包
composer require justincdotme/laravel-open-charge
您可以选择取消注释以下内容以启用 Facades bootstrap/app.php
$app->withFacades();
通过向 bootstrap/app.php 添加以下内容来注册 Service Provider
$app->register(Justincdotme\OpenCharge\Providers\OpenChargeServiceProvider::class);
Laravel 5.* 安装
使用 Composer 安装包
composer install justincdotme/loc
将 Service Provider 注册到 config/app.php 中的 providers 数组
'providers' => [
...
Justincdotme\OpenCharge\Providers\OpenChargeServiceProvider::class,
...
]
可选:使用以下命令在 Laravel 中发布配置
php artisan vendor:publish and edit app/config.php
使用
####使用 Illuminate\Http\Request;
OpenCharge::latitude($request->latitude)
->longitude($request->longitude)
->distance(10)
->compactData()
->verbose(false)
->limit(4)
->get();
####构造函数/方法注入 use Illuminate\Http\Request; use Justincdotme\OpenCharge\Interfaces\OpenChargeInterface;
public function foo(OpenChargeInterface $openCharge, Request $request)
{
return $openCharge->latitude($request->latitude)
->longitude($request->longitude)
->distance(10)
->compactData()
->verbose(false)
->limit(4)
->get();
}
####使用 OpenCharge::filters() 方法而不是链式调用过滤方法
OpenCharge::filters([
'distance' => 10,
'maxresults' => 20
])->get();
注意
请注意,get() 方法从 JSON 字符串返回一个 Collection,因此不兼容 JSON 以外的输出类型。如果您想使用其他输出格式,请结合使用 OpenCharge::getRaw() 方法和 OpenCharge::output() 方法。getRaw() 方法返回一个字符串。
虽然不是必需的,但建议您提供纬度和经度。否则,结果可能无法根据用户的位置定制。
关于 Open Charge Map API 的其他文档超出了本说明书的范围,可在 Open Charge Map POI API 找到
可用方法
获取一系列站点的集合。必须是链中的最后一个方法。
OpenCharge::get()
以原始字符串形式获取一系列站点。必须是链中的最后一个方法。
OpenCharge::getRaw()
使用数组形式的过滤条件,而不是逐个调用过滤方法。过滤条件应是一个关联数组,其键与在 https://openchargemap.org/site/develop/api 可用的服务参数列表匹配
OpenCharge::filters( $filters )
距离计算的纬度参考
OpenCharge::latitude( $latitude )
距离计算的经度参考
OpenCharge::longitude( $longitude )
输出格式:json、xml、kml。建议使用 JSON 格式,因为它具有最高的保真度
OpenCharge::output( $output )
设置为 false 以获取一个较小的结果集,其中包含 null 项被移除。
OpenCharge::verbose( $verbose = true )
设置为 true 以从输出中删除参考数据对象。仅返回常见参考数据(如 DataProvider 等)的 ID。
OpenCharge::compactData( $compact = true )
设置为 true 以获取 camelCase 格式的属性名称。
OpenCharge::camelCase( $camelCase = true )
英里或千米
OpenCharge::distanceUnit( $distanceUnit )
根据指定的距离返回结果。需要 lattitude() 和 longitude() 方法。
OpenCharge::distance( $distance )
指定 JSONP 回调函数的名称(如果需要),仅 JSON 响应类型。
OpenCharge::callback( $callback )
设置为 true 以包括每个充电位置的用户评论和媒体项目(照片)。
OpenCharge::comments( $includeComments = true )
ISO 国家代码。例如:GB,US
OpenCharge::countryCode( $countryCode )
精确匹配数组形式的国家 ID。例如:GB,US
OpenCharge::countryIds( array $countryIds )
返回的最大结果数限制。
OpenCharge::limit( $maxResults )
精确匹配数组形式的充电点 ID。请参阅 Open Charge Map Reference Data
OpenCharge::statusTypes( array $statusTypeIds )
精确匹配数组形式的充电点 ID。请参阅 Open Charge Map Reference Data
OpenCharge::chargePoint( array $chargePointIds )
设置为 false 以仅返回非开放许可数据。设置为 true 以仅包含开放数据许可内容。
OpenCharge::openData( $opendata )
数据提供者ID数组中的精确匹配。Open Charge Map参考数据
OpenCharge::dataProviderIds( array $dataProviderIds )
使用类型ID数组中的精确匹配。Open Charge Map参考数据
OpenCharge::usageTypes( array $usageTypeIds )
EVSE运营商ID数组中的精确匹配。Open Charge Map参考数据
OpenCharge::operators( array $operatorIds )
连接类型ID数组中的精确匹配。
OpenCharge::connectionTypes( array $connectionTypeIds )
充电等级ID数组中的精确匹配。
OpenCharge::chargingLevels( array $chargingLevelIds )
自给定日期(UTC)以来修改的POI。
OpenCharge::modifiedSince( $modifiedsince )
许可证
MIT许可证(MIT)
版权所有(c)2017 Justin Christenson
特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许将软件提供给他人,以便他们可以进行上述操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他原因,以及源于、因之或与软件的使用或其他操作有关。