Skip to content

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

  1. extendedParkingClasses=1: Aktiviert die strukturierte Ausgabe der Detailinformation.
  2. parkObjInfo=1: Aktiviert die Ausgabe der Detailinformation.

Optionale Parameter

  1. 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.

  1. paID: Mit diesem Parameter kann die ID eines Parkobjekts angegeben werden.
  2. paIDStop: Alternative zu paID, 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
	})
}