Resolve-GeoProvider #
ÜBERSICHT #
Wertet die Provider-Kette der Geo-Konfiguration aus (Routing/Geocoding).
SYNTAX #
Resolve-GeoProvider [-Task] <string> [[-Config] <hashtable>] [<CommonParameters>]
BESCHREIBUNG #
Liefert die Kandidaten in Versuchsreihenfolge. Die Kern-Funktionen probieren sie durch, bis einer antwortet.
Seit dem 21.08.2026 gilt die Regel aus dem EULANDA-Geodienst (CN):
1. Ist ein **Geo-Server** eingetragen (`GeoServiceUrl` - der
EULANDA-Geodienst geo.eulanda.eu mit Kundenschlüssel oder ein
baugleicher Server im Netz des Kunden), ist er die EINZIGE Stufe
dieser Kette: Geocoding über seinen Photon, Routing über seinen
GraphHopper, beides unter dem Pfad des Servers (`/photon`,
`/graphhopper`) und mit dem Schlüssel als Kopfzeile. Ohne Bremse,
der Dienst gehört uns oder dem Kunden.
2. Ohne Geo-Server kommen die **öffentlichen** Dienste: Geocoding
Nominatim, dann Photon von Komoot; Routing OpenRouteService (wenn
`OrsApiKey`), dann OSRM-Demo (nur wenn `AllowOsrmDemo`). Dort gilt
die Bremse des Aufrufers (EulandaXrest drosselt und zählt).
Der Rückfall vom Geo-Server auf die öffentlichen Dienste ist KEIN Glied dieser Kette, sondern Sache des Aufrufers (EulandaXrest, Invoke-XrestGeoWithFallback): nur bei Störung, nur wenn das Haus es erlaubt, und immer sichtbar. Deshalb liefert die Kette je Stufe nur ihre eigenen Glieder - wer den Geo-Server weglässt, bekommt die öffentliche Kette.
Lokale Windows-Engines (die früheren Schlüssel GraphHopperUrl, PhotonUrl, Provider, GeocodeProvider) werden NICHT mehr ausgewertet - der Weg ist stillgelegt, der Code der Adapter bleibt, weil der Geo-Server dieselben Engines fährt. NominatimUrl (eigener Nominatim) bleibt als Ersatz für den öffentlichen erhalten.
Die Funktion liest KEINE Registry - die Konfiguration kommt als Hashtable vom Aufrufer. Leere Kette = leeres Array; den Fehler formuliert der Aufrufer.
PARAMETER #
-Task #
Type: string
‘routing’ oder ‘geocode’.
-Config #
Type: hashtable
Default: @{}
Provider-Konfiguration: GeoServiceUrl, GeoServiceKey, OrsApiKey, AllowOsrmDemo, NominatimUrl. Fehlende Schlüssel sind erlaubt.
BEISPIELE #
Resolve-GeoProvider -Task geocode -Config @{ GeoServiceUrl = 'https://geo.eulanda.eu:8443'; GeoServiceKey = $key }
# -> eulanda
Resolve-GeoProvider -Task routing -Config @{ AllowOsrmDemo = $true }
# -> osrm