StopList-Request
Liefert die Liste aller Haltestellen eines (Teil-)Netzes — optional mit Filter auf Gemeinde, Netz oder Halte-Intervall sowie Anreicherung um Bedienlinien und Tarifzonen.
Endpoint
- Pfad:
XML_STOPLIST_REQUEST - Methode: GET
Obligatorische Parameter
Keine — eine parameterlose Abfrage liefert die vollständige Liste. Für produktive Nutzung mindestens einen Filter setzen.
Filter-Parameter
| Parameter | Werte | Beschreibung |
|---|---|---|
stopListOMC | Gemeindeschlüssel (z. B. 05513) | Nur Haltestellen einer Gemeinde |
stopListPlaceId | Place-ID | Nur Haltestellen eines Orts |
stopListSubnetwork | Netzname | Nur Haltestellen eines Teilnetzes |
fromstop | Halte-ID | Intervall-Start (mit tostop) |
tostop | Halte-ID | Intervall-Ende (mit fromstop) |
Anreicherungs-Parameter
WARNING
Anreicherungen haben spürbare Performance-Kosten — gezielt einsetzen.
| Parameter | Werte | Beschreibung |
|---|---|---|
servingLines | 1 | Bedienlinien pro Halt ausgeben |
servingLinesMOTType | 1 | Primärverkehrsmittel pro Halt (nicht kombinierbar mit servingLinesMOTTypes) |
servingLinesMOTTypes | 1 | Alle Verkehrsmittel pro Halt, kommasepariert (nicht kombinierbar mit servingLinesMOTType) |
tariffZones | 1 | Tarifzonen pro Halt (Alternativen mit /) |
Beispiel-Request
GET /XML_STOPLIST_REQUEST
?outputFormat=JSON
&stopListOMC=05513
&servingLinesMOTTypes=1
&tariffZones=1Antwort (Beispiel)
json
{
"stops": [
{
"id": "de:05513:1001",
"name": "Essen Hbf",
"coord": { "lat": 51.4513, "lon": 7.0128 },
"motTypes": "0,1,4,5,13",
"tariffZones": "A/B"
}
]
}JavaScript-Beispiele
js
async function listStops({ omc, placeId, subnetwork, servingLines = true } = {}) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_STOPLIST_REQUEST'
const usp = new URLSearchParams({ outputFormat: 'JSON' })
if (omc) usp.set('stopListOMC', omc)
if (placeId) usp.set('stopListPlaceId', placeId)
if (subnetwork) usp.set('stopListSubnetwork', subnetwork)
if (servingLines) usp.set('servingLinesMOTTypes', '1')
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
return res.json()
}ts
export async function iterateStops(fromStopId: string, toStopId: string) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_STOPLIST_REQUEST'
const usp = new URLSearchParams({
outputFormat: 'JSON',
fromstop: fromStopId,
tostop: toStopId
})
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
const data = await res.json() as { stops: { id: string; name: string }[] }
return data.stops
}Hinweise
- Die Antwort kann sehr groß werden. Für verbundweite Dumps unbedingt clientseitig cachen (Daten ändern sich selten).
- Die beiden
servingLines…-Varianten schließen sich gegenseitig aus — nur eine gleichzeitig setzen. - Die MOT-IDs in
motTypesreferenzieren Verkehrsmittel-IDs.