[Talk-de] GPX-Track aus Relation eines Wanderwegs

Christian Müller cmue81 at gmx.de
Fr Aug 18 06:35:30 UTC 2023


> On 15 Jul 2023, at 23:47, Andreas Tille <andreas at an3as.eu> wrote:
> 
> ich würde mir gern den Harzer Klosterwanderweg[1] als GPX ausgeben
> lassen.  Wie geht das?  Früher habe ich für sowas mal ein Perl
> Script rel2gpx benutzt, aber das funktioniert nicht mehr.


Hallo, das Tool funktioniert unter bionic nach wie vor.
Bis eine Lösung für neuere Distro-Releases gefunden ist,
lässt es sich z.B. mit einer bionic-live iso und qemu
als Emulator nutzen - da Du es paketiert hattest,
lässt es sich in der Live-Umgebung mit
sudo apt update
sudo apt install rel2gpx

installieren.

Beim Aufruf mittels
./rel2gpx -g 6087428

erhält man ein GPX mit 4 Spuren
6087428_001
58.9 km

6087428_002
21.2 m

6087428_003
36.5 km

6087428_004
1.05 km


Oft brauchen Relationen in OSM Wartungspflege,
damit der Export in GPX-Relationen einigermaßen
funktioniert.  Unvorsichtiges Editieren führt
leider ab und an dazu, dass Segemente aus Rela-
tionen verschwinden und damit Lücken entstehen.

Auch falsch bzw. nicht ordentlich sortierte
Relationen können für ein Tool, dass die Elemente
nicht selbst ordnen kann, problematisch sein.
(auch der Algorithmus in JOSM zum automatischen
Ordnen hat Grenzen, z.B. wenn eine type=route
"offen" mit verschiedenen Elementen pro Wegrichtung
//beginnt//, was bei manchen Bundesstraßen der Fall
ist:

| ^
| |
v |
\/ 
/
|
|

.. üblicherweise kann der Relationseditor eine
gute Pseudografik generieren, wenn bei richtungs-
abhängigen Routenteilen beide Enden mit Routen-
elementen verbunden sind, die richtungsunab-
hängig sind (leere Rolle) - bei der Ascii-Grafik
ist der Beginn nicht an ein richtungsunabhängiges
Routensegement gebunden.. (fork ohne Schluss an
den Gabelenden)
)



Ein Hauptproblem beim GPX-Export von komplexen
Routen-Relationen (also solche, die entweder
forward/backward Rollen nutzen, oder Abschnitte,
die als "alternative"/"alternate" o.ä. gekennzei-
chnet sind, ist die Vielzahl der Möglichkeiten
daraus ein GPX zu generieren:

A) soll irgendeine Alternative willkürlich ge-
wählt werden
B) soll eine Alternative wählbar sein
C) sollen alle Alternativen im GPX ausgegeben
werden
D) ..

Man programmiert da sehr schnell für ein Spezifikum,
das ebensogut vom Nutzer durch die Vorarbeit be-
werkstelligt werden kann, die Relation manuell,
vor dem Export, zu vereinfachen.  

Und diese Vereinfachungsoptionen sind mannigfaltig,
deshalb wurden sie für die unklar dokumentierte
Verwendung von 'alternative' bzw. 'alternate'
Rollen bisher nicht in einen Algorithmus gegossen.

Nur um mal die Komplexität zu verdeutlichen,
nehme man eine einzelne, bereits spezifische
Route als Beispiel zur Hand:

|
a
|
v
|\
EF
|/
|
e
|
v

Hier können z.B. Segmentkollektionen mannigfaltig
ausgewählt und schließlich exportiert werden, z.B.:
a) Segment a-E-e  (und F als Alternative ignoriert)
b) Segment a-E-e  (und F als nicht sequentielles Segment mit im GPX)
c) Segmente a-E-e, a-F-e (also Wiederholung der Invarianten Streckenteile)
d) Segmente a-E, F-e  (ohne Wiederholung invarianter Streckenteile, aber
Minimierung der Fragmentierung, also Optimierung dahingehend, dass die
Anzahl der Spuren im GPX minimal ist, aber dennoch alle Alternativen
der Relation repräsentiert sind)
e) ein Segment a-E-e-be-bF-ba (Aneinanderkettung vom Vorwärts- und Rück-
wärtsdurchlauf)

Man beachte, dass sich die Optionen potenzieren, wenn weitere
Alternativen auftauchen (Abschnitte E, F, G, H seien in der
Rolle 'alternative' in der Relation enthalten, aber nicht
richtungsgebunden, d.h. auf jedem der Abschnitte ist sowohl
Hin- und Rückrichtungsreisen erlaubt):

|
a
|
v
|\
EF
|/
|
m
|
|
v
|\
GH
|/
|
e
|
v


Bevor man hier eine Softwareoption mit hoher Komplexität anbietet,
die den Nutzer mit dem Angebot aller Möglichkeiten des Exports
überfordert, ist er besser und schneller unterwegs, wenn er so,
wie das bereits in einer der vorigen Mails beschrieben wurde, die
Wunsch-Relation (also die Variante, die er/sie/es präferiert) in
einfacher Aneinanderkettung _temporär_ selbst im Editor erzeugt
und das dann als GPX exportiert..


Eine Ausnahme dazu kann sein, dass man den Export von Relationen,
die forward/backward Rollen verwenden so automatisiert anbietet, dass
a) nur die Hinrichtung
b) nur die Rückrichtung
c) sowohl Hin und Rückrichtung (zwei Spuren im Ergebnis)
exportiert wird. (anstatt die Teile zusammenhanglos als eine Viel-
zahl von Segmenten zu exportieren)

Bei ungepflegten Daten nützt das nur im begrenzten Maße.  Die
Vielzahl der Verwendung der 'alternative'/'alternate' Rolle (und
der Intentionen dahinter) wäre damit (absichtlich) nicht abgedeckt.


Die Zeitstempelausgabe in JOSM, die sich an der Edithistorie
festmacht, ist für einen GPX-Export eher nutzlos und erzeugt
merkwürdige Werte für Anwendungen die daraus Geschwindigkeiten
o. ä. ableiten.  Evtl. hilft hier das editgpx Plugin weiter:

In GPX-Ebene mit anonymer Zeit konvertieren
Zitat aus [1]:
'Dieses Problem lässt sich in JOSM recht einfach mit dem editgpx-Plugin beheben. Dazu die GPX-Datei in JOSM laden, auf das Icon “GPS-Spur ändern” klicken, die Originaldatei im Popup auswählen und anschließend per Rechtsklick auf die neue Ebene “GPX ändern” die Funktion “GPX Ebene mit anonymer Zeit konvertieren” anwenden. Das fügt den besagten Dummy-Zeitstempel aus 1970 hinzu.'


Gruß

[1] https://community.openstreetmap.org/t/fehler-bei-gpx-track-hochladen/58280/7








Mehr Informationen über die Mailingliste Talk-de