TrainingLab Pro 3D Chart Prototyping
Auch wenn ich mich mit Ankündigungen bzgl. neuer Funktionen bewußt zurückhalte, möchte ich Euch heute einen kleinen Einblick in den aktuellen Entwicklungsstand der TrainingLab Pro Software gewähren.
Es handelt sich dabei um einen frühen Prototypen und der Code ist auch noch nicht mit der TrainingLab Pro Software verknüpft.
Aber es ist geplant, im nächsten großen Update diese neue 3D GPS-View einzubinden. Die Hauptarbeit müsste nun soweit erledigt sein, es sind aber noch ein paar Feinabeiten nötig.
Neben der Integration dieser 3D Ansicht in die TrainingLab Pro Software, plane ich, diese 3D Chart View auch in meiner Android WRPElevationChart App zu übernehmen. Da der Prototyp bewußt sehr einfach gehalten ist, sollte eine Adaption auf (Android) Java kein großes Problem sein.
Falls es interessiert, ich habe die Entwicklungsschritte auf meinem Blog visuell festgehalten: Von der Grundidee über den Prototypen zum finalen Endprodukt
Der Prototyp ist bereits in die TrainingLab Pro eingepflanzt worden, allerdings sind noch ein paar Feinarbeiten nötig. Ich rechne irgendwann Ende Oktober mit einem größeren Upate (Vers. 8?!) . Zumindest ist für diesen Zeitpunkt eine öffentliche Beta-Version fest eingeplant, sollte ich die notwendigen Feinarbeiten bis dahin zeitlich noch nicht abgeschlossen haben (weil ich natürlich nicht jeden Tag an diesem Projekt arbeiten kann). Bitte aber keine Anfragen dzbgl., wenn ich denke, dass ich den Code auf die Allgemeinheit loslassen kann, werde ich Euch davon natürlich in Kenntnis setzen :).
Zum Technischen (falls es Euch interessiert):
Die Visualisierung basiert vollständig auf nativer Windows GDI(+)-Funktionalität (kein OpenGL). Dieser Prototyp basiert auf Delphi-Code (Embarcadero) und es werden nur die Befehle MoveTo/LineTo und FillPolygon verwendet. Die Hauptarbeit ist die Vektormathematik und der Algorithmus zur Entfernung verdeckter Linien.
Obwohl es auf GDI+ basiert, ist die Darstellung selbst auf durchschnittlichen PCs sehr schnell. Aber es kommt natürlich auf die Anzahl der Datenpunkte an. Daher kann es sinnvoll sein,GPS-Daten, die zu viele Datenpunkte aufweisen, mit dem Douglas-Peuckers-Verfahren zu reduzieren. Selbst eine umfangreiche Reduzierung der Datenfülle hat kaum Auswirkungen auf die 3D-Darstellung (so zumindest meine Erfahrungen), zumal dieses 3D-Chart ja primär der Visualisierung dient.
Eine echte Datenauswertung kann man damit in der Regel nicht realisieren. Für mich läuft das mehr auf einen Eyecatcher hinaus, der dazu dienen kann, eine Tour – für den ersten schnellen Blick – etwas plastischer wiederzugeben. Am Plastischten geht’s freilich mit Google Earth oder Relive (aber das sind freilich ganz andere Kaliber).
Und um etwaigen Einwänden zuvorzukommen:
Ich habe mich bei dieser 3D-Ansicht ganz klar von Blackwillis (aka Dietmar Domin) genialem GPS-Track-Analyse.NET Programm inspirieren lassen. Ich nutze GPSTrackAnalyse seit der ersten Stunde und habe dieses Programm auch in die TraningLab Pro als externen Viewer eingebunden (siehe Screenshot).
Leider hat Blackwilli die Weiterentwicklung seines genialen Programms vor langer Zeit aufgegeben und auf Windows 11 stürzt GPSTrackAnalyse – zumindest auf meinem PC – gelegentlich ab.
Das war mit ein Grund, weshalb ich diese 3D-Ansicht nun aufgegriffen habe, was auch insoweit in Ordnung gehen sollte.
Auf meiner ToDo-Liste stand dieser spezielle 3D-GPS-Charttyp schon immer. Erste Ansätze gab es schon in meinem HRMProfil Projekt (sozusagen der Mutter der TrainingLab), falls sich noch jemand daran erinnern kann 🙂
Da mir GPSTrackAnalyse dzgbl. immer unter die Arme gegriffen hat, sah ich aber keinen echten Anlass, mich diesem Thema in der TLab zeitnahe anzunehmen und Zeit zu investieren. Die reine Projektion in 3D war nicht so die große Herausforderung – das läuft ja auf relativ einfache Vektor-Mathematik inkl. dem Einsatz einiger trigonometrischer Funktionen hinaus – die man sich auch nach vielen Jahren der Vergessenheit wieder relativ schnell aneignen kann (die vielgescholtene Madame Google kann da, wie so oft, eine sehr große Hilfe sein).
Aber die hidden lines removal Funktionalität war dann doch schon etwas komplexer – gerade dem Umstand geschuldet, dass dieses spezielle Thema eigentlich nicht Teil meiner regulären Arbeit ist und ich mich etwas einlesen musste. Lustigerweise habe ich dabei am Ende den akademischen Pfad wieder etwas verlassen und mich mehr auf Intuition gestützt, was bei GPS-Daten basierten 3D-Abbildungen sogar relativ gut funktioniert 🙂
Zumindest wenn diese genügend Stützdaten aufweisen, was bei protokollierten GPS-Aufzeichnungen eigentlich immer der Fall ist. Bei manuell erstellten GPS-Touren mit wenigen GPS-Datenpunkten wird mein Ansatz aber den ein oder anderen Clippingfehler erzeugen, was für mich aber völlig in Ordnung geht, da diese spezielle 3D-View dafür nicht gedacht ist.