OpenTripPlannerのVer2.6以降はTravel Time Analysis機能が削除され、REST APIが無効化されているため、Dockerを利用してVer2.5のOpenTripPlannerを起動する。
デフォルトの設定で起動すると、実行中にメモリが不足し強制終了されてしまうので、Docker Desktopの
Settings > Advanced > Memory limit
の値を、JVM用に指定するメモリの最大ヒープ・サイズよりも0.3GB程度大きな値に指定しておく。
(例として、*.yml
でメモリの最大ヒープ・サイズを6GB(JAVA_OPTS=-Xmx6G
)と指定した場合は、docker desktop側は6.3GB程度に指定すれば良い。)
グラフ生成に必要となるOSM(OpenStreetMap)データとGTFSデータをダウンロードし、otpフォルダ内に格納する。
GTFSデータのダウンロードにあたって、公共交通オープンデータセンターからAPIキーを取得してください。
-
*.osm.pbf
OSMデータを提供しているgeofabrik.deから関東地方のデータをpbfフォーマットで取得可能。
-
*.gtfs.zip
以下を参考にGTFSデータを一括でダウンロードしてください。
envファイルのコピー (取得したAPIキーを.env
に書き込んでください)
cp .env.example .env
GTFSデータの一括ダウンロード
sh gtfs_downloader.sh
OSMデータとGTFSデータからグラフの生成を行う。
OSMデータとGTFSデータの規模によるが、ビルドには少々時間が必要。
グラフのビルドが完了すると、otpフォルダ内にグラフデータが保存されます。
グラフのビルドにあたって、otpフォルダ内に以下の名前のOSMデータとGTFSデータが存在するかを確認する。
*.osm.pbf
*.gtfs.zip
起動
docker compose -f build_graph.yml up -d
ビルドが完了してWebサーバーが起動完了すれば停止しても良い
docker compose -f build_graph.yml down
グラフのロードにあたって、otpフォルダ内に以下のグラフデータが存在するかを確認する。
graph.obj
起動
docker compose -f load_graph.yml up -d
停止する場合は以下を実行
docker compose -f load_graph.yml down
https://docs.opentripplanner.org/en/dev-2.x/sandbox/TravelTime/
上記を参考
このAPIはVer2.6で無効になり、上記リンクも削除されてしまう可能性があるため、APIのパラメータを以下に示す。
location
Origin of the search, can be eitherlatitude,longitude
or a stop idtime
Departure time as a ISO-8601 time and date (example2023-04-24T15:40:12+02:00
). The default value is the current time.cutoff
The maximum travel duration as a ISO-8601 duration. ThePT
can be dropped to simplify the value. This parameter can be given multiple times to include multiple isochrones in a single request. The default value is one hour.modes
A list of travel modes. WALK is not implemented, useWALK, TRANSIT
instead.arriveBy
Set tofalse
when searching from the location andtrue
when searching to the location
http://localhost:8080/otp/traveltime/isochrone?batch=true&location=35.63273135483024,139.74189548323065&time=2024-12-03T14:00:00%2B09:00&modes=WALK,TRANSIT&arriveBy=true&cutoff=30M&cutoff=60M
OpenTripPlannerのAPIを利用したアプリケーションを提供するために、OTPと合わせてWebサーバー、Appサーバーも起動を行う。
otpフォルダ内に以下のグラフデータが存在するかを確認する。
graph.obj
ビルド
docker compose -f deploy_all.yml build
起動
docker compose -f deploy_all.yml up -d
停止する場合は以下を実行
docker compose -f deploy_all.yml down