---
# System prepended metadata

title: Transport for Taiwan - Buses Documentation
tags: [taiwan-bus]

---

---
title: 'Transport for Taiwan - Buses Documentation'
---

###### tags: `taiwan-bus`

Transport for Taiwan - Buses
===

[TOC]

### [page] 路線資訊:

<div style="display:flex; gap: 3rem;">
    <div>
        <img src="https://i.imgur.com/MYBf7Be.png">
    </div>
    <div>
        <h4>features</h4>
        <ol>
            <li>路線x2 (雙向)</li>
            <li>緩衝區範圍</li>
            <li>當前有發車的車輛在哪</li>
            <li>user最靠近哪站</li>
            <li>各站最靠近的車輛預估到時(絕對時間與相對時間)</li>
            <li>相似路線車輛到當前站建議與狀態</li>
            <li>定時刷新車輛到各站狀態</li>
        </ol>
        <h4>links</h4>
        <ol>
            <li>點擊站牌->??->可切換至站牌資訊業</li>
            <li>點擊車輛車牌->??->設定班次追蹤與預報</li>
        </ol>
    </div>
</div>

---
### data flow(?)

1. 路線資料(後端整合多筆TPX API)
    * `GET /v2/Bus/Route/City/{City}/{RouteName}` 取得指定[縣市],[路線名稱]的路線資料
    * `GET /v2/Bus/DisplayStopOfRoute/City/{City}/{RouteName}` 取得指定[縣市],[路線名稱]的市區公車顯示用路線站序資料
    * `GET /v2/Bus/Schedule/City/{City}/{RouteName}` 取得指定[縣市],[路線名稱]的市區公車路線班表資料
    * 基本資訊，含 RouteUID SubRoutes 起訖 票價 緩衝區 地圖簡圖
    * [ ] 資料待實測PTX API
2. 車輛資訊(後端整合多筆TPX API)
    * `GET /v2/Bus/EstimatedTimeOfArrival/City/{City}/{RouteName}` 取得指定[縣市],[路線名稱]的公車預估到站資料(N1)[批次更新]
    * `GET /v2/Bus/StopOfRoute/City/{City}/{RouteName}` 取得指定[縣市],[路線名稱]的市區公車路線站序資料
    * `GET /v2/Bus/Vehicle/City/{City}` 取得指定[縣市]的市區公車車輛資料
    * [ ] 資料待實測PTX API
3. user定位與站點判定
    * 前端自行判斷
4. 其他建議路線
    * 後端搜尋同方向
    * [ ] 須事前彙整各路線(小麻煩)，可簡化成等user設定下車站牌後跳出，複雜版則根據各路線經過站牌自動挑選

### APIs

1. 路線資訊整合版

<details>
<summary>GET /buses/:bus_id/infomations</summary>

#### Parameters

</details>


    * `GET /buses/:bus_id/stations`
3. 當前車輛資訊整合版
    * `GET /buses/:bus_id/schedules`


API
---

### `Query`

Every search actions from client will created a `Query` object.

<details>
<summary>Detail</summary>

#### Attributes

- Title: string
- Type: string
- URL: string

</details>

#### `POST /queries`

#### `GET /queries/recommend`

Returns a list of recommend query.

<details>
<summary>Detail</summary>

#### Parameters

- GeoLocation

- Query

</details>

--- 

### `Station`

#### `GET /stations`

Returns a list of stations.

<details>
<summary>Detail</summary>

#### Parameters
</details>

#### `GET /stations/:station_id`

Get station by name.

<details>
<summary>Detail</summary>

#### Parameters
</details>

#### `GET /stations/:station_id/routes`

Returns a list of routes.

<details>
<summary>Detail</summary>

#### Parameters
</details>

---

### `Routes`

#### `GET /routes/:route_id/stops` 
行經站牌

#### `GET /routes/:route_id/line_string` 
路線線圖 geojson

#### `GET /routes/:route_id/infomations` 
路線資料


## Redis

### Route

key: `route:<id>`
