ちどりーど：GTFS-RT・OpenTripPlannerを使ったかんたんバス案内アプリ（コンセプト）

# ちどりーどについて
地方には数多くのバスが走っています。しかし、そのあまりに複雑なシステムのため、多くの人にとって、手軽に使いこなすことができません。乗りたいときにバスが乗れるかわからない！Googleマップもあるけど、ボタンを押すような簡単操作でバスに乗れれば、きっと酔っ払いでも安心！タクシー代も節約できます。

~~[旧「ちどりーど」サイト](https://summer.hori-s.net/)：2019年3月20日に閉鎖~~
[新「ちどりーど」サイト](https://chido.summarcat.work/)：現在公開中

[UDC2018でのちどりーど発表資料、時間切れで出せなかった動画付きw](https://www.slideshare.net/natsukoy/ss-136812471)（2018-03-15および16）
（ちどりーどはアプリケーション部門の情熱枠でしぶとく爪痕を残しました👍）

概要チラシは[こちら（PDF）](https://chido.summarcat.work/leaflet.pdf)
PDFを画像にしたもの↓

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/e4c0454c-6687-d7b9-a858-fb5a5ed1e85b.png" width="50%">

技術の話は[ちどりーど：GTFS-RT・OpenTripPlannerを使ったかんたんバス案内アプリ（技術）](https://qiita.com/nikolito/items/8b39f8ec16f28fe2700f)で解説中。

（関連資料）
公共交通オープンデータ最前線 in インターナショナルオープンデータデイ2019 での登壇資料 (2019-3-2 東京大学 生産技術研究所 An棟2階 コンベンションホール)
[「GTFSリアルタイムで変わるバスの世界 - Code for Sagaでのバスオープンデータに対する取り組み」資料](https://www.slideshare.net/natsukoy/gtfs-code-for-saga)

[Code for Sagaのブログ（活動紹介）](https://code4saga.org)

# 主な機能

- 飲食店に入ったその場で、アプリのバスボタンを押すと、飲食店最寄りのバスの発車時間や経路をお知らせ
アプリのバスボタンです。「次、とまります。」とチャイムが鳴りますw

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/f6e93a94-3287-0ced-c391-2bba29cba36e.jpeg" width="50%">

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/dd1be3fb-5b62-f858-c03b-c32670e4b31e.jpeg" width="50%">

おそらく徒歩データが足りてないため、多少表示は大雑把ですが、地図での経路表示、複数バス会社の混ざったリアルタイム時刻表ができます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/89fa52fb-fb9f-567e-be64-c55f018a8fd2.jpeg" width="50%">

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/fb58d6e9-a922-c6c2-d5b1-7361ac1b1ff8.jpeg" width="50%">

- バスに乗った後も、バス位置と通過バス停をリアルタイム確認したり、降りるタイミングをお知らせ

バスに乗ると、バスの速度（5m/s以上）を検知して、「乗車モード」と呼ぶ以下の画面に遷移します。目的のバス停まで、後何mか逐次表示します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/213204/a0a3e2d5-7c45-b8ba-1a7a-4703c771da11.jpeg" width="50%">


「ちどりーど」は、佐賀県・バス情報をはじめとするオープンなデータ、ツールのみを使い、上記コンセプトを基に作ったWebアプリです。ただし、2019年3月末までの限定公開の予定です。公開サーバが閉鎖される前に、コンセプトや技術的な部分は皆さんと共有できると思ったので、ここに記録します。GTFS-RT、OpenTripPlannerの日本語技術記事は思いの外少ないですね。

# オープンなものだけを使う！という意味

## 公共利用に向いているものにベンダーロックイン・依存なサービスは不向き

Googleマップを使えばいいじゃないと思われた方もいると思います。個人が公共交通の経路検索に使うだけなら、タダだし問題ないですよね。でも、アプリを作る側が、Googleよりもっと簡単でユニークなアプリを作りたい！と思った時、Googleのシステムは、地図の共有に制限があり、突然の大量アクセスによる高額請求の可能性など、かえって足かせになってきます。実質的に公共財が絡むサービス、アプリを作るには躊躇する要素満載です。

## バスと私

佐賀市のバス路線とサービスには、以下のような、おそらくどこの地方でも抱えている問題があります。

時代の変遷により公共交通と街の形、需要がマッチしていない→自家用車がないと行きたいところに行けない→ご年配や子供連れでも運転を余儀無くされる→主要道路が渋滞・事故多発で長らく交通事故率全国トップ5圏内・駐車場不足

私は、佐賀市にかれこれ15年くらい住んでいます。運転すること自体に興味は特になく、経費が嵩むのでギリギリまで躊躇したのですが、子供ができたことで生活全般に限界を感じ、運転免許を取らざるを得ませんでした。

佐賀市内の移動では、タクシー以外に、自転車、バスの選択肢があります。ありがたいことに、佐賀平野はアムステルダムのような低平地のため、自転車乗りには最高の地形です。しかし、安全面を考えると、当時小さな子供を自転車に載せる勇気は私にありませんでした。一方、バスは複雑な時刻表と地図をにらめっこする必要があるし、調べたところで時間通り来るのかもわからないのです。便利な佐賀市バスのサイトで検索すれば良いのですが、それでも現実のバスと検索上のバスってなんだか違う。そのため、私の脳内からはバスという選択肢は割と消えてしまっていました。

## きっかけはたった一人の県職員の熱意と行動力

[Code for Saga](https://code4saga.org/)というITの力で自分たちの街を楽しみながらよくしようという市民団体があります。私も2018年の春くらいから参加しています。そこで、「GTFS」（General Transit Feed Specification）という革命的なデータ（規格）を知りました。GTFSというのは、公共交通の経路検索ができるようになる、地図座標や運行スケジュールなどのデータセットを作る規格です。しかも、オープンソース！これまで、バスの運行データはビジネスで取引されるようなものだと思っていたので本当にびっくりしました。そもそも、この日本でこういうの受け入れてくれるのかと。

それにも関わらず、水面下で我が街のデータがもうできている！！なんでバルーン県の佐賀から？wと面食らいました。

経緯詳細は、[このリンク](https://sagabus-data-udc2018-cfs.firebaseapp.com)の先に情報あります。要は、オープンデータという言葉が浸透する前の段階で、費用対効果も見えない中、たった一人の県職員が立ち上がってくれたことで、今、佐賀市でGTFSの配信が実現し、全国でもかなり早い段階でGoogleマップなどのナビツールで運行遅れなども含めた「リアルタイム」の情報を見ることができます。さらに、ちどりーどのようなアプリ開発が個人、小団体レベルで作れるようになりました。

## GTFSリアルタイムでバスの世界は変わる

GTFSには、あらかじめ決まった予定やバス停位置などの「静的データ」と、バスにGPSを仕込んでリアルタイム運行情報を配信する「動的データ」があります。一般に、動的データの方は、GTFS-RT（リアルタイム）と呼ばれています。

リアルタイム情報をルート検索、時刻表に組み込むことで、街中で、他の車や人に影響されやすく、遅れが当たり前のバスの運行を、手軽に把握できるようになります。

## 使用オープンソースツール、フリー素材一覧

- [佐賀県・バス情報オープンデータ](http://opendata.sagabus.info/)
- [OpenTripPlanner](http://www.opentripplanner.org/)
- [Leaflet](https://leafletjs.com/)
- [OpenStreetMap](https://www.openstreetmap.org/)
- [魔王魂](https://maoudamashii.jokersounds.com/)・音素材の一部
- [ニコニ・コモンズ](https://commons.nicovideo.jp/)・音素材の一部
- アイコンなどは[Code for Saga](https://code4saga.org/)メンバー作
- [GitHub](https://github.com/nikolito/chido-lead) ソースコード公開中：forkして使ってください。

様々なツール、技術、人々の意識がちょうどこの時代に集まってきて、公共サービスにも、ITを真面目に導入できる素地ができてきた感。

## 経路検索ツールOpenTripPlanner（OTP）

経路検索システムというのは、想像以上に奥が深く、作るのが難しいものですが、このツールのおかげでGoogleの経路探索ツールに近いものをアプリに導入することができるようになりました。

実際、ちどりーどはOTPにGTFS-RTを導入したものを使って、運行時間を提示したり、バスの現在位置を表示したりしています。

今回は、コンセプト編ということで、この辺で。
[技術編](https://qiita.com/nikolito/items/8b39f8ec16f28fe2700f)に続きます。