2024/09/02

OpenTripPlannerをJavaのライブラリとして使ってみた

こんにちは。おもに公共交通の分野を研究している修士2年の宮西です。
今日はOpenTripPlannerというとっても便利なアプリケーションを見つけましたので、共有させていただきたいと思います。

OpenTripPlanner(OTP)とは?

OTPは、乗客情報と交通ネットワーク分析サービスを提供するオープンソースソフトウェアの一群です。オープンスタンダードのOpenStreetMap(OSM)とGTFSデータから構築されたネットワークを通じて、公共交通をはじめ、徒歩、自転車、自動車のトリップを作成する機能を有しています。
簡単に言ってしまうと、GoogleMapやYahoo路線検索のように、出発地から目的地までの最適なルートを見つけ出してくれるサービスです。

どこが便利なのか?

GoogleやYahooのサービスを挙げましたが、実際に生活しているシーンにおいては、これらのサービスで十分に利便性を享受されているかと思います。
しかし、研究等のシーンになるとこれらのサービスでは手の届かない場面に遭遇します。
実際にある地域の、公共交通の利便性を評価するために、病院までの平均移動所要時間を算出するためには、大量に出発地点から到着地点までのルート検索を行う必要があります。
そのようなシーンではサービス提供者にかけてしまう負荷も必然的に増大するため、有料のAPI等への契約が必要になります。
”無料で大量にルート検索をしたい”そんなニーズにこたえてくれるのがこのOpenTripPlannerなのです。

実際に使ってみた

1.必要なデータについて

OTPの実行にはOpenStreetMapの道路データ(osm.pbf)と公共交通機関のダイヤデータ(GTFSデータ)が必要になります。
OpenStreetMapは右記(https://download.geofabrik.de/asia/japan.html)より、GTFSデータは(https://www.odpt.org/)といったオープンデータサイトからダウンロードが可能です。
基本的にすべて無料のデータでそろえることが可能です。

2.OTPの取得方法について

OpenTripPlannerは右記(https://github.com/opentripplanner)に公開されているので、そちらから取得し、ライブラリとしてプログラムに配置してください。

3.動かしてみた

こんな形で、出発or到着時刻を指定し、出発地と到着地の緯度経度を渡します。
ちなみに移動手段も指定できます。(例:徒歩のみ。公共交通と歩き。)

実行してみると、、、、

こんな形で結果が返ってきます!
ではこの結果があっているのか?GoogleMapを使って検証してみましょう
Route1について

Route2について

Route3について

同じ時刻でルートが表示されているのが確認できます

おわりに

いかがだったでしょうか。
この情報が、研究や分析で必要となる方の少しでもお役に立てればうれしく思います。

最後までお読みいただきありがとうございました!

関連記事はこちら