こんにちは、白川秋です。
今日は、くまモビ開発史に残る1日でした。僕が作っている熊本の乗り換えアプリ「くまモビ」に、ついにJRと南阿蘇鉄道が乗ってきたんです。
ただし、その裏側はなかなかの泥仕合。時刻表のスクショを何百枚と撮っては読み込み、撮っては読み込み……。今回は、そんな「JR対応の戦い」を振り返ってみます。
なお、くまモビ自体をまだ知らないという方は、先にこちらの記事をどうぞ。
👉 【祝リリース】熊本の乗り換え・観光アプリ「くまモビ」のすべてを開発者が語ります
この記事のポイント
- JR豊肥本線(熊本〜肥後大津)と南阿蘇鉄道がくまモビの乗り換え検索に登場
- 使えるデータがなかったので、時刻表データ(GTFS)を自分で作りました
- 残る鹿児島本線・三角線も、限られた時間の中で実装に挑みます
なぜ熊本の乗り換えアプリにJRを入れるのは大変なのか
まず前提として、くまモビの乗り換え検索は「GTFS」という公共交通のデータ形式で動いています。熊本のバスや市電、電鉄はこのデータが公開されているため、取り込めば経路検索ができるわけです。
ところが、JR九州にはそのまま使えるGTFSがありません。
研究用に作られたデータは見つかりました。しかし、利用条件は研究目的に限られていて、乗り換え案内のようなサービスには使えません。さらに、ある乗り換え案内サービスのAPIの無料プランにも申し込んでみました。ところが、肝心の経路・時刻・運賃のデータは返ってこない内容で、統合には使えないことがわかりました。
つまり、道は一つしかありません。
「だったら、自分で作るしかない」
こうして、時刻表を1本ずつデータに起こす日々が始まりました。
ちなみに、くまモビでGTFSを自作するのは今回が初めてではありません。以前、高速バス「なんぷう号」でも同じことをやっています。その時の様子はこちらです。
👉 【くまモビ開発日記】今週の大型アップデートまとめ|スタンプ帳と人吉ルート対応
南阿蘇鉄道は全列車を収録、トロッコ「ゆうすげ」も
先に完成したのは南阿蘇鉄道 高森線です。
普通列車はもちろん、観光トロッコ列車「ゆうすげ」も収録しました。さらに、肥後大津まで直通する便にも対応しています。運賃は令和5年4月1日改定の運賃表から入力しました。
熊本地震で大きな被害を受けた南阿蘇鉄道は、全線運転再開を経て、いまや阿蘇観光の主役のひとつです。阿蘇を旅する人に使ってほしいアプリだからこそ、ここはどうしても外せませんでした。
JR豊肥本線、スクショ数百枚との死闘
そして、今日のメインイベントがJR九州の豊肥本線(熊本〜肥後大津)です。
やり方は、とにかく地道です。駅の時刻表をスクショして、文字を読み取り(OCR)、データに変換する。この作業を、駅ごと・上下線ごとに繰り返しました。
言葉にすると一行ですが、実際は次の繰り返しです。
- スクショを撮る
- 読み取る
- 誤読を見つけて直す
- 駅の順番と時刻の整合性を確認する
- また次のスクショへ
気づけばフォルダはスクショで埋まり、何百枚あるのか数えるのもやめました。とはいえ、1本でも時刻がずれていれば「乗れるはずの列車に乗れない案内」になってしまいます。そのため、手を抜くわけにはいきません。
最終的に、下り53本・上り55本、合計108本を収録しました。阿蘇へ向かう人気の特急「九州横断特急」も、「特急」として検索結果に出るようにしています。一方で、観光特急「あそぼーい!」は運転日が不定期なので、今回は見送りました。
熊本の乗り換えアプリへJR取り込み成功!運賃も線路の形も100%
データができたら、いよいよアプリへの取り込みです。
くまモビには、GTFSをアプリ用のデータに変換する自作スクリプトがあります。そこへJRと南阿蘇鉄道を新しく登録して、実行しました。
結果は……取り込み成功。
- JRの運賃ペアは充足率100%(営業キロから運賃を自動計算)
- 線路の形状は、国土数値情報の鉄道データを使って直線でごまかした区間はゼロ
- 駅での乗り換えは、バス停から少し歩く距離も考えて徒歩450mまでを許容
画面の地図上に、JRの線路に沿ってルートがすっと引かれた瞬間は、思わずガッツポーズでした。
加えて、特急やトロッコは運賃とは別に料金がかかります。そこで、検索結果に「別途料金が必要です」という注記を出す仕組みも入れました。多言語対応のくまモビらしく、事業者名も日本語・英語・繁体字中国語・タイ語で表示できるようにしています。
次は鹿児島本線・三角線、でも時間との戦い
ここまで来ると、欲が出てきます。
まだ収録できていないのが、JR鹿児島本線(荒尾〜八代)とJR三角線です。どちらもJR九州の路線で、この2つが入れば熊本県内のJR主要路線がそろいます。
特に鹿児島本線は、熊本の南北をつなぐ大動脈です。荒尾から八代まで駅数も本数も多いので、正直、豊肥本線以上の戦いになるのは目に見えています。三角線も、天草方面への玄関口として欠かせません。
本当は明日にでも実装したいところです。ただ、ここで立ちはだかるのが時間の壁。
実は、今のくまモビ開発はコードもデータ整理もClaudeと二人三脚で進めています。しかし、作業に熱が入るほど、あっという間に使用制限に到達してしまうんです。「よし、ここから!」というところで手が止まる。この悔しさは、AIと開発している人ならきっとわかってもらえるはず。
それでも、止まるつもりはありません。制限が明けたらまたスクショを開いて、1本ずつ時刻を積み上げていきます。
個人開発のリアルな日々は、開発日記シリーズでも書いています。
👉 この数日、4つのアプリを同時に育ててた話【くまモビ・ニコ生ビューア・まる見えくん・閲覧くん】
まとめ:熊本の乗り換えアプリとしてJR全線対応を目指す
今日の成果をまとめます。
- 南阿蘇鉄道 高森線:全列車・運賃まで収録完了
- JR豊肥本線(熊本〜肥後大津):108本を収録、特急にも対応
- 残りはJR鹿児島本線と三角線
熊本の交通は、放射状に広がる路線の「横移動」が大変です。だからこそ、バスも鉄道もまとめて検索できる、熊本の乗り換えアプリの決定版にしたい。今日はその目標に、確実に一歩近づけた日でした。
くまモビはGoogle Playで無料配信中です。ぜひ使ってみてください。
また、10月5日からはCAMPFIREでクラウドファンディングにも挑戦します。こちらも応援していただけるとうれしいです。
👉 震災後の熊本に観光客を呼び戻したい。観光×乗換アプリ「くまモビ」を育てる挑戦
鹿児島本線・三角線の実装も、完了したらこのブログでご報告します。
ではでは、参考までに

