OpArea-Request
Liefert Informationen zu Sharing-Anbietern: Angebote, Bediengebiete (Polygone) und Geometrie des Operating-Bereichs — Bike-, Car-, Scooter-Sharing.
Endpoint
- Pfad:
XML_OPAREA_REQUEST - Methode: GET
Obligatorische Parameter
| Parameter | Werte | Beschreibung |
|---|---|---|
opareaSM | ALL | RADIAL | Suchmodus: alle Anbieter oder radial um eine Koordinate |
Zusätzlich bei opareaSM=RADIAL
| Parameter | Format | Beschreibung |
|---|---|---|
coordRadius | <x>:<y>:WGS84[dd.ddddd][:<Radius_m>] | Mittelpunkt und optionaler Radius (Default: 500 m) |
opASR | 1 | Radius-Suche aktivieren (Pflicht im RADIAL-Modus) |
Optionale Parameter
| Parameter | Werte | Beschreibung |
|---|---|---|
vehPId<Index> | Anbieter-ID | Bestimmten Sharing-Anbieter selektieren (wiederholbar: vehPId0, vehPId1, …) |
opAreaId<Index> | Bediengebiets-ID | Teilgebiet eines Anbieters — muss zum selben <Index> wie vehPId<Index> gehören |
vehSF | BIKE | CAR | MOTORCYCLE | Filter auf Fahrzeugart |
operatingZoneGeometry | 1 | Bediengebiets-Geometrie mit ausgeben |
Beispiel-Request
Alle Anbieter im Umkreis von 500 m um eine Koordinate:
GET /XML_OPAREA_REQUEST
?outputFormat=JSON
&opareaSM=RADIAL
&opASR=1
&coordRadius=7.0128:51.4513:WGS84[dd.ddddd]:500
&operatingZoneGeometry=1Bediengebiete eines konkreten Anbieters (Fahrradsharing):
GET /XML_OPAREA_REQUEST
?outputFormat=JSON
&opareaSM=ALL
&vehPId0=nextbike
&vehSF=BIKE
&operatingZoneGeometry=1Antwort (Beispiel)
json
{
"providers": [
{
"id": "nextbike",
"name": "nextbike",
"vehicleType": "BIKE",
"areas": [
{
"id": "nextbike-city",
"name": "City",
"polygon": [
[51.45, 7.01],
[51.46, 7.01],
[51.46, 7.03],
[51.45, 7.03],
[51.45, 7.01]
]
}
]
}
]
}JavaScript-Beispiele
js
async function getProvidersNear(lat, lon, radius = 500) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_OPAREA_REQUEST'
const usp = new URLSearchParams({
outputFormat: 'JSON',
opareaSM: 'RADIAL',
opASR: '1',
coordRadius: `${lon}:${lat}:WGS84[dd.ddddd]:${radius}`,
operatingZoneGeometry: '1'
})
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
return res.json()
}ts
export async function getAreasForProviders(providerIds: string[]) {
const base = 'https://server:port/virtuellesVerzeichnis/XML_OPAREA_REQUEST'
const usp = new URLSearchParams({
outputFormat: 'JSON',
opareaSM: 'ALL',
operatingZoneGeometry: '1'
})
providerIds.forEach((id, i) => usp.set(`vehPId${i}`, id))
const res = await fetch(`${base}?${usp}`)
if (!res.ok) throw new Error('HTTP ' + res.status)
return res.json()
}Hinweise
coordRadiusnutzt die Reihenfolgex:y— alsolon:lat, nicht umgekehrt.- Polygone sind geschlossen (erster und letzter Punkt identisch) — bei eigener Geometrie-Verarbeitung berücksichtigen.
- Für einzelne Fahrzeuge eines Anbieters (Verfügbarkeit, Ladezustand) siehe CoordInfo-Request mit
coordReqType=VEHICLEDETAIL.