cbartolo / trip-calculator
用于计算车辆行程成本的库
dev-main
2021-04-07 09:09 UTC
Requires
- php: ~7.4
- ext-decimal: *
- ext-json: *
- alexpechkarev/geometry-library: 1.0.2
- doctrine/annotations: ^1.12
- guzzlehttp/guzzle: ^7.3
- php-di/php-di: ^6.3
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: 9.5.*
This package is auto-updated.
Last update: 2024-09-07 16:23:58 UTC
README
行程成本计算器提供了方便的功能,用于评估车辆将行驶的预定义路线的总成本。在成本计算中考虑的支持的参数包括:
- 路线距离(公里)
- 路线行驶时间
- 驾驶员时薪
- 车辆磨损成本
该库使用PHP-DI
基本用法
<?php
use DI\ContainerBuilder;
use Trip\Calculator\TripCalculator;
use Trip\Calculator;
$apiKey = "";
$diBuilder = new ContainerBuilder();
$diBuilder->addDefinitions(
[
'Trip\Calculator\Interfaces\GeoService' => function (ContainerInterface $c) {
return $geoService = new OpenRoute($apiKey);
}
]
);
$diContainer = $diBuilder->build();
$tripCalculator = $diContainer->get("Trip\Calculator\TripCalculator");
在上面的代码段中,我们使用PHP-DI来自动注入依赖项。我们还配置了要使用的Geo Service API。上面,我们设置了OpenRoute服务。计划在将来的版本中为库添加其他替代方案。
使用说明
为了正确计算行程成本,您需要分配不同的值。
车辆配置
$vehicle = $tripCalculator->getVehicle();
$vehicle->name = "Vehicle 1";
$vehicle->fuelLitrePerHundred = "9";
$vehicle->wearTearHourly = "5";
驾驶员配置
$driver = $tripCalculator->getDriver();
$driver->name = "Chris";
$driver->hourlyRate = "10.50";
行程配置
$trip = $tripCalculator->getTrip();
$trip->name = "Test trip";
## set the points (coordinates) that need to be included in the trip calculation
$trip->addPoint(new Point(14.4819237, 35.920715));
$trip->addPoint(new Point(14.4526501, 35.9366694));
计算
在设置如上定义的对象所需配置后,您需要调用计算过程,这将使用第三方API。
$totalCost = $tripCalculator->calculateCost();
这将为您提供以欧元为单位的总成本,但在行程对象中还有更多详细信息。
$travelledKilometers = $trip->travelledKilometers;
$travelTimeMinutes = $trip->travelTimeMinutes;
$geometryDirections = $tripCalculator->getGeoService()->getDirections();
第三方包
所有第三方库都在composer.json中列出,且未进行修改。
需求
- php 7.4或更高版本
- ext-decimal / php-decimal
- composer
作者
Chris Bartolo - chris@chrisbartolo.com
许可
行程成本计算器根据MIT许可证授权