cbartolo/trip-calculator

用于计算车辆行程成本的库

dev-main 2021-04-07 09:09 UTC

This package is auto-updated.

Last update: 2024-09-07 16:23:58 UTC


README

codecov Build Status

行程成本计算器提供了方便的功能,用于评估车辆将行驶的预定义路线的总成本。在成本计算中考虑的支持的参数包括:

  • 路线距离(公里)
  • 路线行驶时间
  • 驾驶员时薪
  • 车辆磨损成本

该库使用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许可证授权