Benutzer-Werkzeuge

Webseiten-Werkzeuge


opentripplanner

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
opentripplanner [2026/04/05 04:35]
jango [build-config]
opentripplanner [2026/04/12 21:30] (aktuell)
jango
Zeile 1: Zeile 1:
-OpenTripPlanner (OTP) ist eine quelloffene Plattform zur multimodalen Reiseplanung. Sie berechnet Routen über mehrere Verkehrsmittel hinweg, etwa ÖPNV, Fußwege, Fahrrad und Auto, und kombiniert dafür vor allem [[GTFS]]-Fahrplandaten mit [[OpenStreetMap]]-Kartendaten. OTP wird als Server-Komponente betrieben und stellt Schnittstellen für Web- und Mobile-Anwendungen bereit.+OpenTripPlanner (OTP) ist eine quelloffene Plattform in [[coding:java|Java]] zur multimodalen Reiseplanung. Sie berechnet Routen über mehrere Verkehrsmittel hinweg, etwa ÖPNV, Fußwege, Fahrrad und Auto, und kombiniert dafür vor allem [[GTFS]]-Fahrplandaten mit [[OpenStreetMap]]-Kartendaten. OTP wird als Server-Komponente betrieben und stellt Schnittstellen für Web- und Mobile-Anwendungen bereit.
  
 OTP erzeugt aus den Eingabedaten einen Graphen des Verkehrsnetzes. Dieser Graph basiert auf Straßen- und Wegenetzen aus OpenStreetMap sowie Fahrplandaten im GTFS-Format. Auf dieser Grundlage sucht die Software nach sinnvollen Reiseketten, zum Beispiel "zu Fuß zur Haltestelle, mit der Bahn weiter, dann per Fahrrad zum Ziel". OTP erzeugt aus den Eingabedaten einen Graphen des Verkehrsnetzes. Dieser Graph basiert auf Straßen- und Wegenetzen aus OpenStreetMap sowie Fahrplandaten im GTFS-Format. Auf dieser Grundlage sucht die Software nach sinnvollen Reiseketten, zum Beispiel "zu Fuß zur Haltestelle, mit der Bahn weiter, dann per Fahrrad zum Ziel".
Zeile 8: Zeile 8:
 =====Konfiguration===== =====Konfiguration=====
  
 +Siehe auch [[GraphQL]]
 ====build-config==== ====build-config====
 Die Datei build-config.json teilt OTP mit, welche Optionen beim Erstellen des zugrunde liegenden Graphen festgelegt werden sollen. Die Datei build-config.json teilt OTP mit, welche Optionen beim Erstellen des zugrunde liegenden Graphen festgelegt werden sollen.
Zeile 20: Zeile 21:
 } }
 </code> </code>
-====router-config.json====+====router-config====
 Die Datei router-config.json enthält Standardkonfigurationen für Routing-Anfragen (z. B. Gehgeschwindigkeit). Befindet sie sich im Router-Verzeichnis, wird sie beim Erstellen des Routing-Graphen verwendet. Die Datei router-config.json enthält Standardkonfigurationen für Routing-Anfragen (z. B. Gehgeschwindigkeit). Befindet sie sich im Router-Verzeichnis, wird sie beim Erstellen des Routing-Graphen verwendet.
 +
 +<code json>
 +{
 +  "configVersion": "wien-v1",
 +  "routingDefaults": {
 +    "walk": {
 +      "boardCost": 900
 +    },
 +    "accessEgress": {
 +      "maxDurationForMode": {
 +        "WALK": "PT10M"
 +      }
 +    }
 +  }
 +}
 +</code>
 +
 +=====API=====
 +
 +
 +<code bash>
 +# alle agencies
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ agencies { gtfsId name } }"}'
 +
 +# alle routen
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ routes { gtfsId shortName longName agency { name } } }"}'
 +
 +# alle agencies und alle routen
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ agencies { gtfsId name } routes { gtfsId shortName longName agency { name } } }"}'
 +
 +# alle feeds
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ feeds { feedId } }"}'
 +
 +# feeds mit publisher und agencies
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ feeds { feedId publisher { name } agencies { gtfsId name } } }"}'
 +
 +# alle stops
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ stops { gtfsId name lat lon vehicleMode } }"}'
 +
 +# stops im radius um koordinaten
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ stopsByRadius(lat:48.1857, lon:16.3747, radius:500) { edges { node { stop { gtfsId name lat lon vehicleMode } distance } } } }"}'
 +
 +# einzelner stop per ID
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ stop(id:\"1:1234\") { gtfsId name lat lon vehicleMode platformCode } }"}'
 +
 +# routen mit zugehörigen stopps
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ routes { gtfsId shortName longName agency { name } patterns { code stops { gtfsId name lat lon } } } }"}'
 +
 +# routen für bestimmtes datum
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ routes(serviceDates:{start:\"2026-04-12\", end:\"2026-04-12\"}) { gtfsId shortName longName agency { name } } }"}'
 +
 +# welche agencies sind wirklich im graph?
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ agencies { gtfsId name } }"}'
 +
 +# stopps rund um einen bahnhof / punkt
 +curl -X POST "http://192.168.0.125:8080/otp/gtfs/v1" \
 +  -H "Content-Type: application/json" \
 +  -d '{"query":"{ stopsByRadius(lat:48.1857, lon:16.3747, radius:700) { edges { node { stop { gtfsId name lat lon vehicleMode } distance } } } }"}'
 +</code>
  
 =====Test===== =====Test=====
Zeile 27: Zeile 109:
 <code bash> <code bash>
 sudo apt update sudo apt update
-sudo apt install -y openjdk-21-jre-headless wget unzip+sudo apt install -y openjdk-25-jre-headless wget unzip
 java -version java -version
  
Zeile 61: Zeile 143:
  
 # Falsche Java Version... # Falsche Java Version...
-sudo apt install -y openjdk-25-jre-headless +sudo apt install -y openjdk-25-jre-headless 
-sudo update-alternatives --config java+sudo update-alternatives --config java
  
 java -Xmx6G -jar otp.jar --build --save . java -Xmx6G -jar otp.jar --build --save .
Zeile 76: Zeile 158:
   * [[https://www.opentripplanner.org/|Homepage]]   * [[https://www.opentripplanner.org/|Homepage]]
   * [[https://github.com/opentripplanner/OpenTripPlanner/|Github Repo]]   * [[https://github.com/opentripplanner/OpenTripPlanner/|Github Repo]]
 +  * [[https://docs.opentripplanner.org/|Docs]]
opentripplanner.1775356548.txt.gz · Zuletzt geändert: 2026/04/05 04:35 von jango