Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mokkun55/iga-bus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

バス到着予測 API

GTFS(General Transit Feed Specification)データを使用して、バスの到着時刻を予測する RESTful API サービスです。

データソース

このプロジェクトは三重交通のバス運行データを参考にしています。GTFS データは三重交通の運行スケジュールに基づいて作成されています。

技術スタック

  • 言語: TypeScript
  • ランタイム: Node.js
  • フレームワーク: Express.js
  • データ形式:
    • GTFS(静的データ)
    • GTFS-Realtime(リアルタイムデータ)
  • パッケージ:
    • csv-parse: GTFS 静的データのパース
    • gtfs-realtime-bindings: GTFS-Realtime データのパース
    • express: Web API フレームワーク

機能

  • GTFS 静的データの読み込みと管理
  • GTFS-Realtime データの定期的な取得と更新
  • バス停ごとの到着予測
  • リアルタイムの遅延情報の反映
  • RESTful API による予測情報の提供

API 仕様

基本情報

  • ベース URL: http://localhost:3000/api/v1
  • レスポンス形式: JSON
  • 文字コード: UTF-8

エンドポイント

バス停の到着予測を取得

GET /stops/{stop_id}/arrivals
パスパラメータ
パラメータ名 必須 説明
stop_id string 必須 バス停 ID(例: "5803_1")
クエリパラメータ
パラメータ名 必須 デフォルト値 説明
limit number 任意 5 取得する予測件数(1 以上の整数)
レスポンス
{
  "stop_id": "5803_1",
  "current_time": "2024-03-21T12:34:56.789Z",
  "predictions": [
    {
      "route_name": "25",
      "destination": "つつじが丘南八番町",
      "scheduled_arrival_time": "12:40:00",
      "predicted_arrival_time": "12:40:00",
      "remaining_time": "あと5分",
      "delay": 0,
      "is_realtime": true,
      "vehicle_id": "30"
    }
  ]
}
レスポンスフィールド
フィールド名 説明
stop_id string バス停 ID
current_time string 現在時刻(ISO 8601 形式)
predictions array 到着予測の配列
predictions[].route_name string 路線名
predictions[].destination string 行先
predictions[].scheduled_arrival_time string 予定到着時刻(HH:mm:ss 形式)
predictions[].predicted_arrival_time string 予測到着時刻(HH:mm:ss 形式)
predictions[].remaining_time string 残り時間(日本語表記)
predictions[].delay number 遅延時間(秒)
predictions[].is_realtime boolean リアルタイム情報の有無
predictions[].vehicle_id string 車両 ID(リアルタイム情報がある場合のみ)
エラーレスポンス
{
  "error": "Not Found",
  "message": "Bus stop ID 9999 does not exist"
}
ステータスコード
コード 説明
200 成功
400 不正なリクエスト(パラメータエラー)
404 バス停が見つからない
500 サーバーエラー
使用例
# 基本的なリクエスト
curl http://localhost:3000/api/v1/stops/5803_1/arrivals

# limitパラメータを指定
curl http://localhost:3000/api/v1/stops/5803_1/arrivals?limit=3
注意事項
  • リアルタイムデータは定期的に更新されます(現在は 30 秒間隔)
  • 予測時刻は現在時刻から 24 時間以内の便のみを返します
  • 遅延情報はリアルタイムデータが利用可能な場合のみ反映されます

開発環境のセットアップ

  1. リポジトリのクローン
git clone [repository-url]
cd bus_time
  1. 依存パッケージのインストール
npm install
  1. 開発サーバーの起動
npx ts-node src/server.ts

プロジェクト構造

src/
├── config/          # 設定ファイル
├── controllers/     # APIコントローラ
├── routes/         # ルーティング
├── services/       # ビジネスロジック
├── types/          # 型定義
└── test/           # テストコード

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published