ParkObject-Request
Der ParkObject-Request ermöglicht die Anfrage von Detailinformationen zu Parkobjekten wie Parkhäusern, Parkplätzen, Park & Ride-Parkplätzen oder Parkzonen. Die Anfrage kann auch Echtzeitinformationen zur Auslastung beinhalten.
Ansteuerung des ParkObject-Requests
Der ParkObject-Request wird über HTTP-Parameter gesteuert und die Antwort erfolgt in JSON-Format.
Beispiel Get-Requests:
Obligatorische Parameter
extendedParkingClasses=1
: Aktiviert die strukturierte Ausgabe der Detailinformation.parkObjInfo=1
: Aktiviert die Ausgabe der Detailinformation.
Optionale Parameter
parkObjInfoStatic=1
: Aktiviert die Ausgabe statischer Informationen wie die Anzahl der Parkplätze oder die Adresse des Parkobjekts.
Anfrage der Detailinformation eines Parkobjekts
Es ist empfehlenswert, Detailinformationen nur für einzelne Parkobjekte anzufragen.
paID
: Mit diesem Parameter kann die ID eines Parkobjekts angegeben werden.paIDStop
: Alternative zupaID
, um als Parkobjekt ausgewiesene Haltestellen auszuwählen.
Echtzeitinformation zur Auslastung
Für Echtzeitinformationen zur Auslastung muss die Anfrage von Detailinformationen durch parkObjInfo=1
aktiviert sein.
parkObjInfoRealtime=1
: Fügt Echtzeitinformationen über die Auslastung der Parkobjekte hinzu.
Beispiel Get-Requests:
- Detailinformation inklusive Echtzeitinformation zur Auslastung für das Parkobjekt mit der ID 1-751:
http
GET http://server:port/virtuellesVerzeichnis/XML_PARKOBJECT_REQUEST?paID=1-751&parkObjInfo=1&extendedParkingClasses=1&parkObjInfoRealtime=1
JavaScript-Beispiele
js
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_PARKOBJECT_REQUEST'
async function getParkObjectDetail(paID) {
const params = new URLSearchParams({
paID,
parkObjInfo: '1',
extendedParkingClasses: '1',
parkObjInfoRealtime: '1'
})
const res = await fetch(`${baseUrl}?${params}`)
if (!res.ok) throw new Error(`HTTP ${res.status}`)
return res.json()
}
ts
import axios from 'axios'
const baseUrl = 'https://server:port/virtuellesVerzeichnis/XML_PARKOBJECT_REQUEST'
export async function getParkObject(paID: string) {
const usp = new URLSearchParams({ paID, parkObjInfo: '1', extendedParkingClasses: '1' })
try {
const { data } = await axios.get(`${baseUrl}?${usp}`)
return data
} catch (err) {
// Fallback ohne extended Klassen
const { data } = await axios.get(`${baseUrl}?paID=${encodeURIComponent(paID)}&parkObjInfo=1`)
return data
}
}
js
function sortByOccupancy(places) {
return [...places].sort((a, b) => {
const occA = a.realtime?.occupancy ?? a.static?.capacity ?? 0
const occB = b.realtime?.occupancy ?? b.static?.capacity ?? 0
return occB - occA
})
}