• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Fahrradrouten mit Entwicklungsumgebung in FZK einbinden

ThT

Geocacher
Ich habe versucht, die Fahrradrouten internationaler, nationaler, regionaler und lokaler Radnetze mit der Entwicklungsumgebung in die FZK einzubinden. Das Ziel war, dass die Radrouten in der Karte für Basecamp im Typ "contour" gesondert farblich gestrichelt im Stil der Bahnlinie hervorgehoben werden (abwechselnd blau und transparent), so dass der eigentliche Typ des Weges noch erkennbar ist, der Name der Radroute in die Beschreibung des Weges übernommen wird und für die Radrouten internatinaler, nationaler und lokaler Radnetz ein Icon mit der Kurzbezeichnung dargestellt wird. Ich möchte die Vorgehensweise hier dokumentieren, falls jemand das gleiche Anliegen hat.

Tagging der Radrouten:
Beim Tagging der Radrouten habe ich auf die Datei relations-master von @SwissPoPo (hat tip) aufgesetzt, was mir sehr geholfen hat, zu verstehen, wie das funktioniert. Die Datei habe ich einfach in style/fzk kopiert und die relations für die Radrouten ergänzt. Die Umsetzung der Relations habe ich von Openfietsmap (hat tip) übernommen. Das war der einfache Teil...

Farbliche Kennzeichnung:
Eigentlich will ich ja nur eine farblich gestrichelte Linie (abwechselnd blau und transparent) für die Radrouten über die bereits angelegten und vollständig im Original gezeichneten Straßen und Wege mit ihren bereits vorhandenen Linienstärken -stilen und -farben legen. Ich habe es aber zunächst nicht hinbekommen, zu konfigurieren, dass die Linien für die Radrouten ganz am Schluss gezeichnet werden. Egal, wie ich es im lines-master angelegt habe, im Ergebnis waren die Radroutenlinien immer ganz unten und wurden von den Farben der Wege vollständig überdeckt, sofern es nicht gestrichelte/gepunkte Linien waren. Ich bin dann zunächst den harten Weg gegangen und habe für jeden einzelnen Wegtyp einen neuen Stil angelegt, der in Abhängigkeit von der Zugehörigkeit zu einer Radroute entweder den originalen Stil gezeichnet hat oder den gestrichelten (abwechselnd blau und die Originalfarbe). Im lines-master sah das beispilsweise für die Kreisstraßen dann so aus:

highway = tertiary & !(icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${name}' | '${ref}' | ''} [0x010e0e resolution 24 continue with_actions]
highway = tertiary & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${name}' | '${ref}' | ''} [0x011101 resolution 24 continue with_actions]
highway = tertiary & !(icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${ref}' | ''} [0x010f12 resolution 22-23 continue with_actions]
highway = tertiary & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${ref}' | ''} [0x011102 resolution 22-23 continue with_actions]
highway = tertiary & !(icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${ref}' | ''} [0x010f13 resolution 20-21]
highway = tertiary & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) {set name = '${ref}' | ''} [0x011103 resolution 20-21]


Die neuen Stile für 11101-11103 hatte ich im Typ-File definiert und das ganze war ziemlich mühselig, weil es ziemlich viele unterschiedliche Wegtypen in unterschiedlicher Auflösung gibt (insgesamt ca. 70 neu zu definierende Stile für alle in contour festgelegten Wegtypen und Auflösungen) und unbefriedigend.

Ich habe mich daher im zweiten Ansatz nochmal mit der Reihenfolge des Zeichnens von Linien beschäftigt. Im lines-master gibt es den Hinweis von @toc-rox , dass sich die Reihenfolge der Linien nicht beeinflussen lässt. So ganz stimmt das aber nicht. Nicht beeinflussen lässt sich die Reihenfolge von Linien innerhalb des gleichen routbaren Garmin-Wegtyps. Aber bei unterschiedlichen Wegtypen werden zunächst die Linien des höheren Wegtyps gezeichnet und dann die Linie des niedrigeren Wegtyps. Bespw. werden die Linien für Wege, denen (auch) Linien des Wegtyps 0x03 (Bundesstraße) zugeordnet sind (auch wenn 0x03 transparent ist) , erst dann gezeichnet, nachdem alle Linien von Wegen mit mindestens einer Linie des Wegtyps 0x04 (Landesstraße) angelegt sind (auch wenn 0x04 transparent ist). Die Kreuzungen sind daher immer in der Farbe/im Stil des niedrigeren Wegtyps gezeichnet. Ich habe daher im lines-master den Typ 0x02 frei gemacht, indem ich Autobahnauffahrten (im Original 0x02) zur Autobahn (0x01) gemacht habe, was im Routing keinen Unterschied macht (Zeile 763 im Original lines-master):

highway = trunk & fzkrouting != yes {set name = '${name}' | '${ref}' | ''; set fzkrouting=yes} [0x01 road_class=4 road_speed=6 resolution 24 continue with_actions]

Den "frei gewordenen" Wegtyp 0x02 habe ich für die Radrouten verwendet, wobei hier wichtig ist, das ganz am Anfang in der Routing-Section noch vor dem Kreisverkehr zu machen (ab Zeile 708 im Original lines-master):

(icn_from_relation=yes | ncn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes) & railway!=rail [0x02 road_class=0 road_speed=1 resolution 20 continue with_actions]

Im Typ-file ist 0x02 wie folgt neu definiert:
[_line]
Type=0x02
UseOrientation=Y
Xpm="32 2 2 1"
"! c #0000FF"
"# c none"
"!!!!!!########!!!!!!!!########!!"
"!!!!!!########!!!!!!!!########!!"
;12345678901234567890123456789012
String1=0x02,Radroute
String2=0x00,Radroute Detail
ExtendedLabels=Y
FontStyle=NoLabel (invisible)
CustomColor=No

Außerdem habe ich im typ-translations-master eine neue Übersetzung für 0x02 hinterlegt (Radroute).


Damit ist allen Wegen der Radroute die gewünschte Linie mit einem niedrigen Wegtyp (0x02) zugeordnet, die dann als letztes (noch vor der Autobahn, auf der es aber keine Radrouten gibt) gezeichnet wird und sich über die Originalstile der Linien legt, die im weiteren Verlauf des lines-master angelegt werden.

Im Build gab es dann dennoch Fehlermeldungen, dass ein routbarer Wegtyp einem nicht-routbaren Weg zugewiesen wurde. Betroffen waren Wege von Radrouten. Ich bin der Sache dann nachgegangen und es haben sich zwei "Fehlerquellen" herausgestellt. Die erste Fehlerquelle sind Fehlcodierungen in Openstreetmap. Da wurden beispielsweise Wege mit access=no belegt, die eindeutig befahrbar sind, weil sie Teil einer Radroute eines offziziellen Radwegeplans sind oder aus den zusätzlichen Tags eindeutig hervorging, dass diese Wege nutzbar sind. Dieses Phänomen war jedoch relativ selten. Häufiger traten Probleme im Zusammenhang mit access=agricultural oder access=forestry auf, die im FZK-Script auf access = no gesetzt werden. Auf Openstreetmap steht dazu:
Die Eigenschaft access=forestry wird verwendet, wenn nur forstwirtschaftlicher Verkehr den Weg benutzen darf. Die Art des Verkehrs (Fußgänger, Reiter, Kraftfahrzeug...) ist irrelevant, nur der Einsatzzweck spielt eine Rolle. Damit ist auch nichtforstwirtschaftlicher Fuß- und Reitverkehr ausgeschlossen. Dies ist in Deutschland fast nie der Fall. Deshalb sollte der Tag in der Regel nicht genutzt werden. Stattdessen sind in den üblichen Fällen vehicle=forestry (Schild DE:250) oder motor_vehicle=forestry (Schild DE:260) korrekt. Nach Kontrolle sollte das korrigiert werden, aber keine mechanischen Edits durchgeführt werden.


https://wiki.openstreetmap.org/wiki/DE:Tag:access=forestry?uselang=de

Nun kann man sich sicherlich darüber streiten, ob das Befahren eines land- und/oder forstwirtschaftlichen Weges mit dem Fahrrad erlaubt ist (formal nicht), aber mir ist derzeit keine Regelung bekannt, die einem Fußgänger das Betreten eines Waldes untersagt, nur weil da eine grüne Schranke mit Schild davor ist. Im Zweifel kann man da sein Fahrrad aber auch immer noch schieben. Diskussion hierzu gibt es beispielsweise hier: https://community.openstreetmap.org...rboten-land-und-forstwirtschaft-frei/89902/16

Ich habe daher aus der Prüfung von access im lines-master forestry und agricultural separat behandelt und abschließend alle Wege auf offiziellen Radrouten für das Fahhrad routbar gemacht (Zeile 615 ff. im Original lines-master):


# access
highway = * & (access = designated | access = permissive | access = destination | access = customers | access = official | access = public | access = residents | access = customer | access = residential) {set access = yes}
highway = * & (access = military | access = private | access = delivery | access = restricted | access = psv | access = bus | access = psv | access = unknown) {set access = no}
highway = * & access = agricultural {set access = yes; set motorcar = agricultural; set motor_vehicle = agricultural; set vehicle = agricultural; set bicycle = yes; set foot = yes}
highway = * & access = forestry {set access = yes; set motorcar = forestry; set motor_vehicle = forestry; set vehicle = forestry; set bicycle = yes; set foot = yes}
highway = * & access = "forestry;agricultural" {set access = yes; set motorcar = forestry; set motor_vehicle = forestry; set vehicle = forestry; set bicycle = yes; set foot = yes}
highway = * & access = "agricultural;forestry" {set access = yes; set motorcar = agricultural; set motor_vehicle = agricultural; set vehicle = agricultural; set bicycle = yes; set foot = yes}
highway = * & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) & access = no {set access = yes; set motorcar = no; set motor_vehicle = no; set vehicle = no; set bicycle = yes; set foot = no}
highway = * & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) & access = yes {set bicycle = yes}
highway = * & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) & access != * {set bicycle = yes}
highway = * & (icn_from_relation=yes | rcn_from_relation=yes | lcn_from_relation=yes | ncn_from_relation=yes) & access = * {set bicycle = yes}

Am Schluss blieb nur noch übrig, die Namen und Icons der Radrouten in die Karte einzubinden und für die Übersicht (Resolution 15-19) die ICN- und NCN-Routen nochmal gesondert farblich hervozuheben (ab Zeile 825 im lines-master):

# ICN
highway=* & icn_from_relation=yes {name '${iref} (${iname|not-equal:iref})' | '${iref}' } [0x01120a resolution 15-16 continue] #00
highway=* & icn_from_relation=yes {name '${iref} (${iname|not-equal:iref})' | '${iref}' } [0x01120b resolution 17-19 continue] #24
icn_from_relation=yes & railway!=rail {name '${iref|highway-symbol:hbox} (${iname|not-equal:iref})' | '${iref|highway-symbol:hbox}' } [0x01120c resolution 17 continue] #02

# NCN
highway=* & ncn_from_relation=yes {name '${nref} (${nname|not-equal:nref})' | '${nref}' } [0x01120a resolution 15-16 continue] #00
highway=* & ncn_from_relation=yes {name '${nref} (${nname|not-equal:nref})' | '${nref}' } [0x01120b resolution 17-19 continue] #00
ncn_from_relation=yes & railway!=rail {name '${nref|highway-symbol:eek:val} (${nname|not-equal:nref})'| '${nref|highway-symbol:eek:val}'} [0x01120c resolution 18 continue] #02

# RCN
highway=* & rcn_from_relation=yes {name '${rref} (${rname|not-equal:rref})' | '${rref}' } [0x01120b resolution 17-19 continue] #00
rcn_from_relation=yes & railway!=rail {name '${rref|highway-symbol:eek:val} (${rname|not-equal:rref})'| '${rref|highway-symbol:eek:val}'} [0x01120c resolution 19 continue] #02

# LCN
lcn_from_relation=yes & railway!=rail {name '${lname}'} [0x01120c resolution 20 continue]


Alle in diesem Zusammenhang geänderten Dateien sind im angehängten zip und müssen nur an den entschrechenden Stellen des Dateipfades der Entwicklungsumgebung eingefügt werden (hoffe, ich habe nichts verschusselt, sonst gerne melden). Das Typ-file heißt "velo".

Bild mit Basecampmaßstab 3000 Meter:
fzk_cycling_routes_resolution_3000m.PNG


Bild mit Basecampmaßstab 1500 Meter:
fzk_cycling_routes_resolution_1500m.PNG

Bild mit Basecampmaßstab 150 Meter:
 

Anhänge

  • fzk_mit_Radroute.zip
    72,3 KB · Aufrufe: 1
  • fzk_cycling_routes_resolution_100m.PNG
    fzk_cycling_routes_resolution_100m.PNG
    336,2 KB · Aufrufe: 3
OP
T

ThT

Geocacher
Ergänzend noch die Sicht mit Basecampmaßstab 150 Meter
 

Anhänge

  • fzk_cycling_routes_resolution_150m.PNG
    fzk_cycling_routes_resolution_150m.PNG
    815 KB · Aufrufe: 5
OP
T

ThT

Geocacher
Noch eine Ergänzung: Die im Zusammenhang mit der Übersicht für die Radrouten verwendeten Wegtypen 0x01120a und 0x01120b müssen im TYP-file entsprechend definiert werden (dünne blaue Linie). Der im Zusammenhang mit den Icons verwendete Wegtyp 0x01120c ist als transparenter Wegtyp im TYP-File entsprechend zu definieren. Das im Post oben verrutschte Symbol für die Radrouten heißt
Code:
highway-symbol:oval

Bei Fragen oder wenn Probleme auftreten gerne Post, dann haben alle was davon.
 
OP
T

ThT

Geocacher
Danke @toc-rox für die Bereitstellung der Entwicklungsumgebung und die detaillierte, ausführliche und großartige Kommentierung der Konfigurationsdateien! Das hilft enorm.
 
Oben