[Luebeck] tag cycleway

Wolfgang wolfgang at ivkasogis.de
Mi Sep 28 22:24:01 CEST 2011


Hallo,
Am Mittwoch, 28. September 2011 20:30:12 schrieb Katja und Martin Brüning:
> Hallo Friedrich,
> 
> Friedrich schrieb am 28.09.2011 07:06:
> > Über ein cycleway-Tag an Straßen mit getrennt eingezeichnetem Radweg
> > hatten wir, glaube ich, nicht beraten. Ich halte es nicht für unbedingt
> > erforderlich, wenn es ...
> 
> ich bin aber ziemlich sicher, dass wir am Freitag am Ende noch über
> cycleway=right/left/both gesprochen hatten. Wenn es nicht bei Straßen
> mit getrenntem Radweg eingetragen werden soll, wo denn sonst? Dort, wo
> die Radwege mit cycleway.right=track o.ä. getagged sind, ist es ja wohl
> nicht mehr nötig.
> 

STOPP!

Hallo Martin, du hast da etwas falsch verstanden. Schau dir mal im josm die 
Walbrechtstraße oder die Roonstraße an.

Alle zu einer Straße gehörenden Elemente versammeln sich in der Street-
Relation. Dort hat der Hauptweg das tag street=id und die begleitenden Wege 
bekommen sidepath=id. Soweit hast du das ja auch schon eingetragen.

Jetzt gibt es das Problem, dass die extra gemappten begleitenden Wege nicht 
unbedingt überall die gleichen tags haben. Um diese Wege sauber an der 
richtigen Stelle im Hauptweg referenzieren zu können, müssen sie mit dem 
Hauptweg in irgendeiner Form verbunden werden. Die Relation ist dabei 
hilfreich, aber allein nicht ausreichend, da nicht für jeden Wegesabschnitt 
eine eigene Relation existiert.

Diese Referenz brauchen wir für die Karte, denn wir haben uns für einen 
Maßstab 1:20000 entschieden. In diesem Maßstab ist z.B. eine Bundesstraße, die 
in 2 mm Breite gerendert wird, umgerechnet 40m breit. Alle Wege in einer 
Entfernung von bis zu 20m von der Achse werden damit überdeckt. Selbst bei 
einer kleinen Wohnstraße sind das immer noch 12m zu beiden Seiten.

Aus diesem Grund müssen die Radwege als Linie neben der Straße gerendert 
werden. Das geht aber nur, wenn man die Tags der Radwege an die richtige 
Stelle übertragen kann.

Deshalb bekommt jeder Nebenweg (sidepath) einen Namen, der innerhalb der 
Relation eindeutig ist, z.B. "sidepath:refname=Radweg Ost1" oder "Am 
Kartofffelfeld" oder was auch immer.

Der Hauptweg (street in der Relation) bekommt jetzt abschnittsweise die 
jeweils richtigen Wege zugeordnet. Das geschieht über einen einfachen 
Vergleich des Textes des Nebenweges mit dem tag am Hauptweg, im Beispiel:
sidepath:cycleway:left=Radweg Ost1
sidepath:cycleway:right=Am Kartoffelfeld

Aus dem Key kann eine Software sehr einfach erkennen, was wo gerendert werden 
soll, und aus dem Value können die entsprechenden tags des Nebenweges für den 
Hauptweg nutzbar gemacht werden. Die Zeichenketten "Radweg Ost1" für den im 
Beispiel linken Radweg und "Am Kartoffelfeld" für den rechten werden nur 
zwischen Wegen verglichen, die in der gleichen street-Relation miteinander 
verbunden sind, und dort nur zwischen Wegen gesucht, die einerseits die 
street-Role und andererseits die sidepath-Role haben. Daher müssen sie nur 
innerhalb dieser Relation eindeutig sein. Für andere Relationen können sie 
erneut verwendet werden.

Oder grob gesagt: Für eine Straße müssen die Radwegnamen eindeutig sein, in 
der Nachbarstraße können sie wieder benutzt werden.

Logischerweise kann derselbe Radweg für mehrere Straßenabschnitte genutzt 
werden, wenn er neben ihnen her läuft (so lang ist wie sie zusammen). Dann 
wird das sidepath:cycleway:right/left - tag mit dem gleichen Value an die 
betreffenden ways der street-role gesetzt, wobei im Rechengang die gleichen 
Radweg-tags übertragen werden.

Das hört sich komplizierter an, als es ist. Die meisten Straßen haben pro 
Seite nur ein bis drei Radwege (hintereinander!). Das kann man im Josm recht 
zügig zuordnen, aber wie Friedrich schon schrieb, musst du das nicht unbedingt 
selbst machen. Das kann nach "optischer Lage" leicht auch jemand anders 
machen.

Gruß, Wolfgang