以前開発した、横浜市営バスの混雑度を収集し、混雑の平均とともに接近情報を提供する「バスコム」に、2025年10月13日、新たにマップ式のバスロケーション情報機能を追加しました!そこで、改めて「バスコム」の紹介をおこないたいとおもいます。

バスコムは、次のリンクから利用できます。登録不要、無料です。ブラウザで動作するWebアプリケーションのため、ダウンロード・インストール不要で、すぐに利用できます。
バスコムとは?
バスコムは、主に横浜市営バスの混雑状況や接近情報を可視化する、大学生が開発したWebアプリケーションです。
バスコムという名称は、バスが混む、というそのままのネーミングです。
開発者は私です!プログラミングに自信があるため、「バスの混雑が激しい」という課題を解決するために自分で作った、もともとは個人的なアプリなのですが、公共性・実用性が高いため、UD(ユニバーサルデザイン)フォントを採用するなどデザインを改良して誰でも使える形にしたものです。
専門用語が入りますが、ODPT(公共交通オープンデータセンター)が提供するGTFSなどのデータを利用し、AWSのEC2とDynamoDBで構築しています。
データの仕様上、混雑状況は横浜市営バスしか取れないのですが、臨港バス、都バスについても接近情報のみ対応しています。
マップ式バス案内
2026年1月、不具合発生中です。暇なときになおします
10/13追加、新機能のマップ式接近案内の機能紹介です。この機能は、現在横浜市営バスのみの対応です。
バスの現在地と混雑度がマップ式で直感的にわかります。実際にバスを利用する際に便利な位置情報取得機能もあるため、従来のバスコムとあわせて是非ご利用ください。

この機能では、地図上にバス路線と停留所が表示され、さらにリアルタイムのバス車両の位置が色付きの丸で示されます。この車両を示す丸は、混雑度によって色が変わります。
- 空いている……青
- 混んでいる……緑
- 非常に混んでいる……橙
- 満員(乗車不可)……赤
さらに、この丸をクリックすると、路線の詳細が表示され、路線図式で現在位置が表示されます。
上の画像では、鶴見駅前発 一の瀬行の13系統のバスが、佃野と森永工場前の間にいて、空いていることがわかります。
ジャンプ機能・検索機能
アクセス時、位置情報の許可を求められます。許可した場合、右下の「現在地」をクリックすることで、画面が今いる位置に移動します。外出時に便利な機能です。
なお、位置情報の収集は行っていませんのでご安心ください。拒否してしまい、あとから許可したい場合はブラウザの設定画面から許可する必要があります。

さらに、左上の検索窓に停留所名を入力することで、停留所の検索が可能です。
変換が難しい「行定庵前(ぎょうじょうあんまえ)」などの停留所は、ひらがなでの検索が可能です。また、停留所名の一部だけで検索が行えますので、上の画像では「北寺尾」と入力して「北寺尾別所」が候補に出ています。
候補を選択すると、画面がその停留所の位置に移動し、そこを発着する経路の一覧が表示されます。
混雑予測機能 (従来)
従来からある混雑状況の予測(平均)機能です。
マップ式と同じ要領で停留所を検索し、その停留所を発着する便が時刻表形式で表示されます、そこに混雑予想(平均値)と、運行中のバスの場合は接近情報も表示されます。

混雑予測はあくまでも平均のため、天候やイベントなどの情報は加味していません。実際、「空いています」と思って乗ったら満員だったこともありました。しかし、混雑する便を避けるための参考にはなります。

【10/14追加】横浜市営バスの接近情報において、バスの現在地を数字だけでなく、停留所名でも表示するようにしました。また、データ更新間隔を30秒から15秒に短縮しました。

こちらも停留所のひらがな検索に対応しています。以前製作したテスト版をボランティア活動先で紹介した際に、「ひらがなで検索出来たら良い」という意見があったため、それを反映させました。また、停留所名を入力中にも候補を表示します。変換のできない停留所を簡単に調べることができます。
検索結果は、のりばごとに存在します。バス停のポール1本につき1個、といったほうがわかりやすいでしょうか。ですので、注意点として循環系統(始発停留所を発車後、ぐるっと回り始発停留所に戻ってくる路線)で内回り・外回りがある場合、どちらも同じ行先として表示されますので、乗り間違いのないよう、バス停に掲出されている時刻表などの一次情報を参照するようにしてください。
オープンデータを使用していますが、データの欠落や障害等も考えられますし、個人が開発したアプリのためデータの正確性の保証もできません。バスコムの利用は自己責任でお願いします。
混雑状況の目安
実際にバスを利用する中で、混雑状況の判定閾値の調整も行いました。現在、概ね次のような感じです。

「空いています」
空席がある状態です。まれに、座席がすべて埋まっていてもこの表示のことがありますが、座ることのできる状態です。「誰も乗っていない」場合も「座席が1つしか空いていない」場合もあります。

「混んでいます」
空席がなく、立つ必要がある状態です。「座席がすべて埋まっている」場合も「立っている人が多い」場合もあります。

「非常に混んでいます」
立っている人が多く、狭いくらいの混雑です。具体的にどの程度の人数でこのレベルになるのかはわかりません。

「満員です」
乗車不可能な状態です。車内は前扉付近までギューギューで、これ以上乗ることはできないかもしれません。
平均値は、切り上げて上記のレベルに置き換えています。例えば、混雑平均値が2であれば「混んでいます」ですが、2.01の場合「非常に混んでいます」と表示します。
【10/17追加】履歴・お気に入り登録機能
2025/10/17 新機能として、閲覧した停留所の履歴・お気に入り登録を保存し、よく利用する停留所をすぐに呼び出せるようにしました。また、現在時刻付近の発車案内にジャンプする機能も追加しました(今までは、スクロールして現在時刻を探す必要がありました)。
なお、履歴・お気に入り機能には、JavaScriptのLocal Storageという機能を使っています。ブラウザにデータを保存することができるものなのですが、登録不要であるため、異なるデバイス間で同期させることはできません。また、ブラウザのデータを削除した場合、リセットされますのでご注意ください。
履歴機能
検索し、閲覧した停留所が「履歴」タブに追加されます(最大10件)。
「履歴の保存」というトグルスイッチをクリックすると、履歴保存の無効化ができます。「履歴を削除」を押せば、履歴を削除できます。履歴の保存を無効化しても履歴は削除されませんので、履歴機能を一切使いたくない場合は、無効化したうえで削除をおこなってください。

お気に入り機能
発車案内画面の右下「お気に入り」ボタン(星マーク)を押すと、「お気に入り」タブに追加します。
星マークがグレーの場合、未登録のため、クリックすることで色が変わり、登録されます。色がついている場合はお気に入り登録されている状態ですので、もう一度クリックすればお気に入り登録解除ができます。
登録したお気に入り停留所をすべて削除するには、「お気に入り」タブの「お気に入りを全削除」を押します。確認ダイアログが出るので、OKすれば、すべて削除されます。



現在時刻機能
お気に入りボタンの上に、時計マークの「現在時刻」ボタンがあります。
これを押すと、現在時刻付近の便を表示します。特に、本数が多い停留所では直近に発車する便を確認するためにスクロールして探す必要がありましたが、この機能により、すぐに確認ができるようになりました。

不安定な場合(障害)
頻繁に障害が発生します。
具体的な原因は、EC2のEBS (Elastic Block Store) ボリュームの、読み取りオペレーション(OPS)が急上昇した際に、IOPSの設定値が低いためにデータ読み込みができず、応答しなくなります。
GTFS-RTデータの配信サーバーへ負担をかけないよう、一定間隔で取得したリアルタイムデータを、一旦サーバー内に保存し、リクエストがある度にそれを読み込んで、処理しています。GTFS-RTデータには横浜市営バス全路線の車両情報が含まれているほか、それに附属して停留所情報の取得などの静的データの処理もおこなっているため、どうしてもデータ読み込みに負荷がかかってしまいます。
IOPSの値を増やせば安定しますが、その分料金がかかるため、収入がゼロであるアプリケーションに対して維持費をかけるのは、学生の私には厳しいところです。
専門用語をなくして説明すると、「データを取得する量の制限を超えてしまう。その制限値を増やすのは、維持費の関係で厳しい」という感じでしょうか。パソコンが重いのと同じ状態です。

これは、読み取りオペレーションが急上昇するのと同時に、アイドル時間が0%付近まで落ちている状態です。
この状態でアクセスしようとすると、さらにファイルを読み込もうとするため、余計に負荷が増えてしまいます。不安定な際は、無理にアクセスしようとせず、しばらく待ってからアクセスをお願いします。
【2026年1月から】サーバースペックダウン(しませんでした)
使用しているAmazon EC2のt4g.small インスタンスは、2025年中は無料で利用できたのですが、年末をもって無料トライアルが終了するため、2026年からサーバーのスペックダウンを予定しています。
大学生であるために維持費が問題になる、とは言いましたが、さらに家庭の事情もあり金銭的に厳しい状況にあります。ご理解とご協力をお願いします。
また、バックエンドのリファクタリングや将来の拡張を見据えた大規模アップデートも予定しています。UI(見た目)・UX(使い勝手)は変わらない予定です。
実際にスペックダウンしてみたところ、そもそも動作しなくなりました。一時的にスペックアップも試して、確かに応答は良くなりましたが高いので、現在のt4g.smallが妥協点かなとおもいます。当分はこれでいきます。
今後のアップデート予定
今後もアップデートをおこない、改良を重ねていきます。現段階でのアップデート予定です。
いずれも時期等は未定ですが、今後にご期待ください!
機械学習の導入
GTFSデータと連携し、ユーザーに対して利用した便についてアンケートを取ります。
データは匿名で収集し、所要時間、待ち時間、運賃の差(臨港バスor市営バス)、混雑度といったバスに関するパラメータと、年代、利用目的、定期券の有無といった利用者の属性を集計し、機械学習のモデルに利用します。
間や難易度は高いものの、予測精度の大幅な向上が期待できます。雨の日はバスを利用する、といった方もいるため、天候データも含めると良いでしょう。
スマホアプリ化
ウィジェットやプッシュ通知、位置情報などといった端末の機能を活用でき、利用しやすいといった特徴があるスマートフォンアプリ化します。
現在は、ブラウザ上で動作するWebアプリケーションとしての提供です。開発も容易で環境に依存しない互換性、ユーザーにとってもインストールが不要であるというメリットはありますが、スマートフォンのハードウェアやOSの機能をフルに活用することができません。
スマートフォンアプリ化すれば、高機能でより便利なアプリケーションが作れるでしょう。
アプリリリース後、Webアプリケーションは提供終了、ではなく、Web版として両方を提供することで、「ちょっと使いたい」「PCで使用したい」といったニーズにも応えられます。
