Get-GeoRoute #
ÜBERSICHT #
Berechnet eine Route (Start, Zwischenziele, Ziel) über die Provider-Kette.
SYNTAX #
Get-GeoRoute [-Point] <object[]> [[-Profile] <string>] [[-Alternatives] <int>] [[-WeightT]
<double>] [[-HeightM] <double>] [[-WidthM] <double>] [[-Config] <hashtable>]
[<CommonParameters>]
BESCHREIBUNG #
Der Eulanda-Geo-Kern: EIN stabiler Vertrag, dahinter austauschbare Routing-Engines. Die Kette kommt aus Resolve-GeoProvider (lokaler GraphHopper vor OpenRouteService vor OSRM-Demo, je nach Konfiguration); fällt ein Glied aus (Dienst weg, Tageslimit), übernimmt das nächste. Erst wenn ALLE scheitern, fliegt die letzte Ausnahme.
Rückgabe normalisiert und eingefroren (Erweiterungen nur additiv): @{ provider; profileRequested; profileUsed; cached = $false; routes } mit routes[0] als Hauptroute; je Route distanceM, durationS, bbox ([minLon, minLat, maxLon, maxLat], GeoJSON-Konvention - Leaflet will lat/lon, die Drehung macht der Client) und geometry als GeoJSON-LineString.
profileUsed kann vom Wunsch abweichen (OSRM-Demo kann kein truck) - Aufrufer müssen das anzeigen, nie stillschweigend schlucken. cached ist hier immer $false; den Cache führt die REST-Fassade.
PARAMETER #
-Point #
Type: object[]
Mindestens 2 Punkte in Reihenfolge (Start, Zwischenziele, Ziel). Jeder Punkt entweder ’lat,lon’ (WGS84, Punkt als Dezimaltrenner) oder ein Hashtable @{ Lat; Lon }.
-Profile #
Type: string
Default: 'car'
car (Default) oder truck.
-Alternatives #
Type: int
Default: 0
0 bis 2 Alternativrouten. Nur bei genau 2 Punkten - mit Zwischenzielen liefern die Engines keine, der Wert wird dann still auf 0 gesetzt.
-WeightT #
Type: double
Default: 0
Optional: zulässiges Gesamtgewicht in Tonnen (nur Provider, die das können - derzeit OpenRouteService mit Profil truck).
-HeightM #
Type: double
Default: 0
Optional: Fahrzeughöhe in Metern.
-WidthM #
Type: double
Default: 0
Optional: Fahrzeugbreite in Metern.
-Config #
Type: hashtable
Default: @{}
Provider-Konfiguration (siehe Resolve-GeoProvider). Die Funktion liest KEINE Registry - wo die Werte liegen, entscheidet der Aufrufer.
BEISPIELE #
Get-GeoRoute -Point '50.11,8.68', '49.99,8.24' -Config @{ OrsApiKey = $key }
Get-GeoRoute -Point @{ Lat = 50.11; Lon = 8.68 }, @{ Lat = 49.99; Lon = 8.24 } `
-Profile truck -Alternatives 2 -Config @{ GraphHopperUrl = 'http://localhost:8989' }