Elevation Profile #
Dieses Addon ermöglicht es bei der Nutzung von angebundenen Tools, über die eine Strecke ermittelt werden kann, wie z.B. Routenplanung oder Messen, zusätzlich ein Höhenprofil anzuzeigen. Ist dieses Addon aktiv, öffnet es automatisch nach Berechnung einer Strecke durch ein angebundenes Tool im unteren Bildbereich eine Höhenprofildarstellung. Dieses Addon greift auf eine REST-Schnittstelle des LGBs zur Ermittlung der Höhendaten zu.
Einrichtung #
Wenn das Addon genutzt werden soll, fügen Sie das Addon zu Ihrer config.js
-Datei im Abschnitt Addons hinzu:
addons: [
"elevationProfile"
]
Anschließend ist in der Datei ressources/rest-services-internet.json
der Höhenprofil-Dienst einzurichten:
[
...
{
"id": "lgb_elevation",
"name": "LGB Elevation API",
"url": "https://isk-dev.lgb.local/elevation",
"typ": "URL"
}
...
]
Das Addon kann über folgende Konfigurationsparameter in der Datei config.json
angepasst werden.
Wenn die Eigenschaften “ascentColorMax” bzw. “ascentColorMin” nicht gesetzt werden, wird die Theme-Color verwendet. Die Eigenschaft “ascentAngleRange” gibt den Zahlenraum für den Anstiegswinkel an (z.B. 0% - 4,5%), zwischen dem die Farben “ascentColorMin” und “ascentColorMax” interpoliert werden. Liegt der Anstiegswinkel außerhalb der Range, wird nicht extrapoliert, sondern die Min- bzw. Max-Farbe verwendet.
"Portalconfig": {
...
"elevationProfile": {
"serviceId": "lgb_elevation",
"timeout": 10000,
"styleChart": {
"markerWidth": 5,
"ascentColorMax": [255, 140, 0],
"ascentColorMin": [63, 195, 128],
"ascentAngleRange": [0, 0.045]
}
}
...
}
Anbindung von Tools #
Die Tools, für die ein Höhenprofil angebunden werden soll, können über das vorhandene Messaging-System das Höhenprofil-Addon ansteuern. Dieses lauscht auf dem Radiochannel ElevationProfile
auf zwei verschiedene Events: open und close (siehe Abbildung 1).
Abbildung 1: Eventbasierte Steuerung des Höhenprofil-Addons |
Das Öffnen des Höhenprofils aus dem Routing-Addon heraus könnte beispielsweise wie folgt aussehen:
Radio.trigger("ElevationProfile", "open", {
coordinates: result.getLineString(),
olSource: routeSource,
olFeature: routeSource.getFeatures().find(feature => !feature.get("isHighlight")),
minimize: true
});
Aktuell nutzen folgende Module das Höhenprofil:
- Routing
- Messen
- Import (nur bei Liniengeometrie)