[Talk-de] Richtungsabhaengige oder Abschnittsweise attribute/tags

Dirk Stöcker openstreetmap at dstoecker.de
Mi Okt 22 16:38:52 UTC 2008


On Wed, 22 Oct 2008, Florian Lohoff wrote:

>> dass Zugriff auf Innereien eines Objekts nichts in anderen Objekten zu
>> suchen haben, da dadurch eine sehr hohe Komplexizität entsteht. Und die
>> Knoten sind interne Informationen eines Weges. Ich verstehe, dass es nicht
>> sofort einsichtig ist, dass diese Herangehensweise zu Chaos führt, aber
>> ich kann Dir nach mehr als 15 Jahren Programmierpraxis beteuern, dass es
>> so ist. Ich habe zu oft gesehen, dass Software gescheitert ist, welche
>> sich nicht an diese Regeln hielt.
>
> Wir haben dieses defakto schon by turn relations. Ich gebe dir recht das
> das nicht die schoenste loesung ist - aber sie ist etabliert.

Nein. Hier ist ein großer Unterschied. Die Turn-Relations nutzen einen 
Knoten als Teil der Relation. Sie nutzen keinen Knoten als Teils eines 
Weges in der Relation. Das ist ein wichtiges Detail.

>> Bei dieser Herangehensweise bleibt eine Stack-artige Strukt bestehen.
>> Jede Objektgruppe baut auf Objekten niederer Gruppen auf ohne durch eine
>> Objekt hindurch auf dessen interne Informationen zuzugreifen.
>
> Damit ist das richtungsproblem aber nicht geloest. Natuerlich ist dieses
> stacking schoen - aber es loest das imho groesste problem des
> datenmodells - der richtungsabhaengigkeit - nicht.
>
> Und richtungsabhaengigkeit ist halt zwischen punkten eines weges. Und
> leider muessen wir auf dem selben weg mehrere attribute abfruehstuecken
> die unterschiedliche richtungen haben - und ich denke du gibst mir recht
> das oneway=-1 ein ziemlich ekelhaftes hilfskonstrukt ist. D.h. die eine
> existente richtung des weges mehrfach zu missbrauchen um
> unterschiedliches zu modellieren ist grosser bullshit.

Deswegen wie gesagt standardisierte Methoden backward, forward, left, 
right. Wenn das etabliert ist, dann ist klar das maxspeed:backward und 
maxspeed:forward richtungsabhängig sind und maxspeed nicht. Und das kann 
dann auf alle Tags ausgedehnt werden: tracktype:forward=3, 
tracktype:backward=1 oder meinetwegen sogar bridge:forward=yes, 
bridge:backward=no (auch wenn mir hier eine Anwendung fehlt :-).

JOSM unterstützt das ja schon seit einer Weile zumindest bei Drehen eines 
Weges.

Das Tag oneway wird wohl trotzdem bleiben, auch wenn es dann eigentlich 
"access:backward=no" sein müsste.

Und wenn man irgendwann mal das Datenmodell ändern will, dann teilt man 
das ganze gleich in entsprechende Gruppen auf statt den Schlüssel zu 
verunstalten.

Ciao
-- 
http://www.dstoecker.eu/ (PGP key available)


Mehr Informationen über die Mailingliste Talk-de