Trip-Request
Ermittelt Fahrten (Reiserouten) zwischen Start und Ziel, inkl. Umstiege und Echtzeit-Informationen, sofern verfügbar.
Endpoint
- Pfad:
XML_TRIP_REQUEST2
- Methode: GET
Wichtige Parameter (Auszug)
Parameter | Typ | Beschreibung |
---|---|---|
originId | string | Start-ID (Haltestelle/Koordinate/Adresse) |
destId | string | Ziel-ID |
date | string | Datum YYYYMMDD |
time | string | Zeit HHMM |
isArrival | 0/1 | 0 = Abfahrtzeit ist maßgeblich, 1 = Ankunftszeit |
maxChanges | number | Maximale Anzahl Umstiege |
includeRealtime | 0/1 | Echtzeit berücksichtigen |
IMPORTANT
Die genaue Parametrisierung entnehmen Sie der PDF. Viele EFA-Varianten unterstützen zusätzlich Namen/Koordinaten statt IDs.
Beispiel-Requests
GET /XML_TRIP_REQUEST2?originId=de:05513:1001&destId=de:05913:1000&date=20250125&time=0815&isArrival=0&maxChanges=2
Antwort (vereinfachtes Beispiel)
json
{
"trips": [
{
"duration": 1820,
"legs": [
{ "mode": "walk", "from": "Essen Hbf", "to": "Essen Hbf, Bussteig 1", "min": 4 },
{ "mode": "bus", "line": "196", "from": "Essen Hbf", "to": "Ziel", "dep": "08:20", "arr": "08:45" }
]
}
]
}
JavaScript-Beispiele
ts
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_TRIP_REQUEST2'
export async function planTrip(params: Record<string,string|number>) {
const usp = new URLSearchParams()
for (const [k,v] of Object.entries(params)) usp.set(k, String(v))
const res = await fetch(`${baseUrl}?${usp}`)
if (!res.ok) throw new Error(`HTTP ${res.status}`)
return res.json()
}
// Minimaler Aufruf
planTrip({
originId: 'de:05513:1001',
destId: 'de:05913:1000',
date: '20250125',
time: '0815',
isArrival: 0
}).then(console.log)
js
function flattenLegs(trip) {
return trip.legs.map(leg => {
if (leg.mode === 'walk') return `Walk ${leg.min} min`
const headsign = leg.direction ? ` → ${leg.direction}` : ''
return `${leg.mode.toUpperCase()} ${leg.line}${headsign} ${leg.dep}–${leg.arr}`
})
}
ts
async function planTripRealtime() {
const data = await planTrip({
originId: 'de:05513:1001',
destId: 'de:05913:1000',
date: '20250125',
time: '0815',
includeRealtime: 1
})
return data
}
Fehlerbehandlung
- 400: Ungültige Parameter (z. B. falsches Datumsformat)
- 404: Keine Verbindung gefunden (Anpassung der Suchparameter nötig)
- 5xx: Serverfehler – erneut versuchen oder Support kontaktieren