Hallo zusammen,
ich habe einen GPS-Tracker gebaut, mit dem ich meine Radtouren aufzeichnen kann. Allerdings ist es mir bisher noch nicht gelungen, daraus eine Route für ein Navigationsgerät zu generieren.
Ich könnte zwar mein eigenes Navigationssystem verwenden, möchte meine aufgezeichneten Routen aber gerne mit anderen teilen. Alles, was ich bisher versucht habe, um aus den aufgezeichneten Daten eine benutzerfreundliche Route zu erstellen, ist leider fehlgeschlagen.
Es gibt oben einen Button, über den ihr zwei Strecken laden könnt (einfach mehrfach klicken). Dabei handelt es sich um GPX-Dateien sowie zwei JSON-Dateien. Ziel ist es, diese sinnvoll in ein Format für ein Navigationsgerät umzuwandeln.
Vielleicht habt ihr ja eine Idee?
Zusätzlich habe ich eine GPX-Test-App implementiert (https://gabischatz.de.cool/tracklog/gpx-tester-app/), die die aufgezeichneten Daten auf Übereinstimmung mit realen GPS-Positionen und Geschwindigkeiten validiert. Ein Koordinatenabgleich ist nicht integriert.
gpx kannst du bei vielen Navigationsgeräten laden, das ist prinzipiell dafür gedacht. Du kannst es auch z.B. in josm bearbeiten, nur aufpassen dass du es nicht hochlädst.
Danke für deine Antwort. Ja, ich kann die Datei auch z. B. mit gpx.studio bearbeiten. Das ist jedoch nicht mein Ziel. Ziel ist eine automatische Anpassung an die Karte, um möglichst viele Navigationsgeräte abdecken zu können. Der erste Schritt ist dabei, den Weg exakt auf die von OSM eingezeichneten Wege zu legen. Mit dem Auto funktioniert das bereits, allerdings nicht zu Fuß oder mit dem Fahrrad. Meine OSM-Abfragen dafür scheitern derzeit. Ich denke, ich muss die Abfragetechnologie überdenken. Andererseits habe ich gehofft, dass jemand mit mehr Erfahrung mit den Abfragen, mir den einen oder anderen Tipp geben kann, wie ich an meine Informationen komme, um die dann auswerten zu können.
Grüße
Die Begriffe Track und Route sollten unterschieden werden. Ein Track ist (meist) eine GPX-Aufzeichnung von hunderten oder tausenden Punkten. Eine Route enthält signifikant weniger Punkte, nämlich nur Start und Ziel sowie Zwischenpunkte. Was genau willst du erreichen?
Also, ich habe den Track mit meiner App aufgezeichnet. Das sind 3353 Originalpunkte bei etwa 22 km. Daraus möchte ich Routen generieren. Als ersten Schritt habe ich sogenannte Cluster erstellt. Diese Cluster sind variabel einstellbar und erzeugen jeweils einen Start‑ und Endpunkt, wobei sich zwei benachbarte Cluster immer einen gemeinsamen Punkt teilen. Dadurch reduziere ich die Punkte auf je nach Cluster‑Anzahl etwa 7 oder 8 Koordinaten, aus denen ich dann je nach Einstellung für Auto, Rad oder Fußweg eine Route berechnen möchte. Genau dort liegt der Haken: Es funktioniert nicht. Andere Version Damit versuche ich, die Routen-Punkte neu zu zeichnen.
Möchtest Du nur den aufgezeichneten gpx-Track ersetzen durch etwas, was genau auf den Wegen verläuft, wie sie zur Zeit in OSM erfasst sind oder versuchst Du die notwendigen Zwschen-Punkte zu ermitteln, damit ein bestimmter Router mit den aktuellen OSM Daten genau da lang routet wo Du irgendwann mal unterwegs warst?
Wie @toc-rox schon geschrieben hat, sind Tracks und Routen bei GPX-Dateien etwas unterschiedliches und soweit ich sehe, versuchst Du aus einem Track einen optimierten Track zu erstellen, also keine Route. Ist aber erst mal egal für die Ursachensuche, warum nur Straßen verwendet werden. Welche OSM-Datenquelle nutzt du, um den optimierten Track zu erstellen (Links unten steht was von OSRM?)?
Im Prinzip also das, was bei bikerouter.de passiert, wenn ich einen aufgezeichneten Track hochlade und dann eine Route bestimme, die diesen “nachzeichnet”. Anschließend kann ich mir die csv Daten mit den OSM Wegen runterladen.
Ich gehe mal davon aus, dass deine Routing-Engine auch ein geeignetes Radprofil verwendet und nicht das für Autos (mit der nach deiner Aussage ja alles funktioniert). Richtig?
Hast du dich schon mal mit Hidden-Markov-Modellen (Viterbi-Algorithmus) beschäftigt? Möglicherweise ist das der ‘bessere’ Ansatz als Clustering.
Nein, mein Tracker verwendet gar keine Profile. Es trackt je nach Geschwindigkeit, und ordnet am Ende diese einem Profil zu.
Das ist von mir gestern, mit neuer Version aufgezeichneter Test. velolog-2026-04-01_14-49-30-028.gpx.txt (154,1 KB)
Du reduzierst die Punkte mittels Clustering auf sehr wenige Punkte.
Diese wenigen, übrig gebliebenen Punkte sind deine Routing-Punkte.
Der Router soll daraus anschließend eine Route berechnen die vorzugsweise über Radwege verläuft.
Für Letzteres braucht dein Router ein Radprofil. Welchen Router und welches Routing-Profil verwendest du? Oder habe ich dein Konzept falsch verstanden?
Mit dem Automatismus hatte ich bisher auch nur einmal Erfolg, meist ppassiert nichts. Ich klicke einfach eine Route zusammen, bis sie der gefahrenen Strecke soweit nötig entspricht. Ich nutze das, nachdem ich die gefahrene Tour gemapt habe, um z.B. fehlende surface oder smoothness zu visualisieren.
Ja, das ist alles möglich, aber mich befriedigt das als Lösung nicht. Mit der neuesten Version, die ich gerade teste, bin ich bereits deutlich weiter vorangekommen.