daison/bus-router-sg

一款路线查找器,帮助你找到最适合乘坐的公交车前往目的地。

V0.1.2 2018-02-11 05:47 UTC

This package is auto-updated.

Last update: 2024-09-15 07:35:49 UTC


README

此包使用laravel的模型,因此它本身不是通用的,但稍后我会将此包转换为支持其他框架,并且不绑定模型。

安装

您需要一个至少 ~5.x 的laravel应用程序,最好使用Laravel 5.5以进行包发现。

要将此包安装到您的laravel应用程序中,您需要运行以下命令:

composer require daison/bus-router-sg

如果您的laravel应用程序不支持包发现,则需要将此类添加到您的 config/app.php@providers

    'providers' => [
        // ...
        Daison\BusRouterSg\BusRouterSgServiceProvider::class
    ],

安装后,您需要创建一个数据库表并将其分配给您的 .env 文件

执行 php artisan migratephp artisan bus-router-sg:parse-json

类API测试

为了测试类匹配逻辑,以下示例将帮助您。

$instance = new Daison\BusRouterSg\Util\Match(
    $myLat = 1.37313809346006,
    $myLng = 103.89156818388481,
    $destLat = 1.38372439268243,
    $destLng = 103.76068878232401
);

$instance->handle();

目前,上述代码将为您提供可用于渲染到Google Map Api的路径列表。

array:35 [
  0 => "1.37313809346006:103.89156818388481",
  1 => "1.37060695394614:103.89266808874676",
  2 => "1.36756333302324:103.8927594439902",
  3 => "1.36623834226067:103.89129134480065",
  // ...,
  32 => "1.37961719959059:103.76390959462616",
  33 => "1.38178063199093:103.76285898246775",
  34 => "1.38372439268243:103.76068878232401",
]

我目前正在根据返回的路线开发可以乘坐的公交车,您可以在以下 待办事项 中找到它们。

测试

为了测试此包,我在 tests/ 文件夹中编写了一个简单的测试类。

在此根文件夹下运行 phpunit

此原型的待办事项

  • 匹配逻辑
    • 找到最近的公交车和最近的公交车前往您的目的地。
    • 使用Dijkstra算法连接每条公交路线(经纬度)。
    • 根据路线(经纬度)编译公交车的列表。
    • 测试
  • 用户界面
    • 用户登录
    • 需要填写当前位置或使用浏览器API获取当前用户位置的表单。
  • 公交车的CRUD操作
  • 公交车站的CRUD操作
  • 位置的CRUD操作
  • 使用邮政编码进行搜索
  • 使用自由格式地址输入进行搜索并确定邮政编码