4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【静岡県民必見!?】遠鉄バスどこ!?(PC版)作ってみた

Last updated at Posted at 2024-06-25

遠鉄バスどこ!?って何?

この記事を読む前に...

  • 遠鉄バスについて既にご存じの方はこの章をスキップ!
  • 動作画面だけ見たい方は、ページの一番下までスキップ!

静岡県では「遠鉄バス」(遠州鉄道株式会社)が広く普及しています。静岡県で暮らしている方なら、一度は乗ったことがある(はずの)バスですね。
そんな遠鉄バスには「遠鉄バスどこ!?」というモバイルアプリがあります。

モバイルアプリ「遠鉄バスどこ!?」
乗車バス停と降車バス停を入力すると、そのルートを通るバスが、あとどのくらいで乗車バス停に到着するのかを確認できるアプリです。

しかし、このアプリはモバイル専用なので、PCでは利用できません。公式ホームページにもPC向けの確認ページはありますが、アクセスするのにやや手間がかかります。

さっそく作っていく

本記事では、コードの細かい説明よりも、どのような仕組みで実装したかの概要を説明していきます。

全体概要図

システム概要図

まずは基本設計から。このシステムには2種類のAPIが必要です。

  1. 遠鉄バス公式HPのページに自動入力して運行情報を取得し、JSON形式に整形して返すAPI
  2. 地域を入力すると、その周辺のバス停をリストアップし、JSON形式に整形して返すAPI

こうすることで、「バス停の入力が手間」「正確なバス停名を覚えていない」といったユーザーの不便を解消でき、利便性が向上します。

API作成

作成したAPIは以下の2つです:

  • 遠鉄バスHPから最新のバスの運行状況を取得するAPI
  • 任意の地域のバス停を取得するAPI

前者は遠鉄バスHPから、後者はNAVITIMEから情報を取得しています。

  • 遠鉄バスHP:

  • NAVITIME:

以下はFastAPIで作成したAPIコードの一部です。

from fastapi import FastAPI
from _getbustable import GetBusTable
from _getbusstop import GetBusStop
from starlette.middleware.cors import CORSMiddleware

app = FastAPI()

# CORS対策
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"]
)

# 遠鉄バスHPから最新のバスの運行状況を取得するAPI
@app.get("/latest")
def read_bustable(from_station:str, to_station:str):
    try:
        getbustable = GetBusTable()
        result = getbustable.get_bustable(from_station=from_station, to_station=to_station)
        return result
    except:
        return None

# 任意の地域のバス停を取得するAPI
@app.get("/busstop")
def read_busstop(erea:str):
    try:
        getbusstop = GetBusStop()
        result = [getbusstop.get_busstop(erea=erea)]
        return result
    except:
        return None

APIはGitHubのリポジトリに公開しているので、詳細が知りたい方はそちらをご覧ください。また、GitHub Railwayにデプロイして、誰でも使えるWebアプリケーションとして公開しました。

HTMLを作成

APIが完成したら、HTMLファイルを作成してAPIを実際に叩いてみます。

具体的には、乗車バス停と降車バス停をセレクトボックスで選択し、検索ボタンを押すと、現時点での運行状況が表形式で表示されるページを作成しています。コードはGitHubに公開しています。

Koyebにデプロイ

完成したAPIをKoyebにデプロイしました。
(詳細な手順は時間があれば後ほど紹介予定です)

実際の動作画面

  • セレクトボタンで選択し、検索する様子

動作サンプル

GitHubリンク

2024/7/2 更新

7月1日に遠鉄バスの公式HPがリニューアルされ、PC版の「遠鉄バスどこ!?」が使いやすくなりました(少し複雑な気持ちです...)

  • 遠鉄バスPC版:

  • NAVITIME遠鉄バス:

マイページ紹介

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?