[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