StopFinder-Request
Finde Haltestellen, Adressen oder POIs anhand eines Suchbegriffs oder Koordinaten. Die Antwort erfolgt im JSON-Format.
Endpoint
- Pfad:
XML_STOPFINDER_REQUEST
- Methode: GET
TIP
Die Base-URL hängt von Ihrer Installation ab, z. B. https://server:port/virtuellesVerzeichnis/
.
Wichtige Parameter (Auszug)
Parameter | Typ | Beschreibung |
---|---|---|
name | string | Suchbegriff (Haltestelle, Adresse, POI) |
type | string | Suchtyp, z. B. stop , poi , address , any |
coord | string | Koordinaten als lat,lon zur Umgebungssuche |
radius | number | Suchradius in Metern |
max | number | Maximale Trefferanzahl |
format | string | Koordinatenformat, z. B. WGS84 |
NOTE
Die exakten Parameternamen können je nach Systemkonfiguration abweichen (siehe PDF). Nutzen Sie die Beispiele als Vorlage und passen Sie die Keys an.
Beispiel-Requests
GET /XML_STOPFINDER_REQUEST?name=Essen%20Hbf&type=stop&max=10
GET /XML_STOPFINDER_REQUEST?coord=51.4501,7.0131&radius=500&type=any&max=20
Antwort (vereinfachtes Beispiel)
json
{
"stops": [
{ "id": "de:05513:1001", "name": "Essen Hbf", "coord": { "lat": 51.4513, "lon": 7.0128 } }
],
"query": { "name": "Essen Hbf", "type": "stop" }
}
JavaScript-Beispiele
js
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_STOPFINDER_REQUEST'
async function searchStopsByName(name, options = {}) {
const params = new URLSearchParams({
name,
type: options.type ?? 'stop',
max: String(options.max ?? 10)
})
const res = await fetch(`${baseUrl}?${params}`)
if (!res.ok) throw new Error(`HTTP ${res.status}`)
return res.json()
}
searchStopsByName('Essen Hbf').then(console.log)
ts
import axios from 'axios'
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_STOPFINDER_REQUEST'
export async function searchNearby(lat: number, lon: number, radius = 500) {
const params = new URLSearchParams({
coord: `${lat},${lon}`,
radius: String(radius),
type: 'any',
max: '20'
})
const { data } = await axios.get(`${baseUrl}?${params}`)
return data
}
js
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_STOPFINDER_REQUEST'
async function withTimeout(ms = 5000) {
const ctrl = new AbortController()
const t = setTimeout(() => ctrl.abort(), ms)
try {
const res = await fetch(`${baseUrl}?name=Essen&type=stop`, { signal: ctrl.signal })
clearTimeout(t)
return res.json()
} catch (e) {
if (e.name === 'AbortError') throw new Error('Request timeout')
throw e
}
}
Best Practices
- Immer
max
begrenzen, um Datenmengen zu kontrollieren. - Für Koordinatenabfragen sinnvollen
radius
wählen. - Cachen Sie Suchergebnisse clientseitig (debounce bei Eingabe-Suche).