[Talk-de] Existenzkrise: Wofür Wege?

Gerrit Lammert osm at 00l.de
Sa Jan 17 14:51:22 UTC 2009


Hallo zusammen.

Ich habe mich gerade durch den Superrelationen-Thread gelesen und ich 
denke die ganze Verwirrung und Komplexität bezüglich Relationen beruht 
hauptsächlich auf dem gewachsenen Zustand.

Ich finde es wahnsinnig umständlich, das ich ständig Wege in einzelne 
Segmente zerlegen muss, weil z.B. nur ein Teil des Weges zur Buslinie 
gehört. Und wenn dann die "Dorfstraße" zur Einbahnstraße wird, muss ich 
oneway=yes bei 20 Segmenten ergänzen.

Einiges wird wohl demnächst eh geändert werden (name kommt in die 
Relation und nicht mehr an den Weg etc.), aber ich denke man könnte mal 
langsam darüber nachdenken ob man nicht mit den Altlasten aufräumt um 
die tatsächlich relevanten Teile einfacher gestalten zu können.
Relationen sollten das zentrale Werkzeug in allen Editoren werden, nicht 
wie jetzt etwas, das man im Untermenü mit viel Klick-Aufwand bearbeiten 
muss. Ich denke das Datenmodell geht unaufhaltsam in die Richtung, es 
wird Zeit, das die Editoren und die allgemeine Herangehensweise nachziehen.

========================================================================

Zumindest gedanklich könnte man auch überlegen, das zugrunde liegende 
Datenmodell radikal zu vereinfachen:

Es gibt nur noch Knoten und Relationen.
Immer wenn etwas eine Strecke oder Fläche betrifft (Straßenname, 
Oberfläche, Einbahnstraße...), dann ist das eine Relation, ebenso wie 
jede Eigenschaft einzelner Knoten.
Andere Datenstrukturen (Ways...) gibt es nicht.
Jede Relation hat genau ein Attribut.

Eine Dorfstraße könnte dann so aussehen:

|                |
|                |
1-------2--------3--------4

1,2,3,4 sind die Knoten, die den Verlauf der Straße angeben.
Dazu gibt es etwa folgende Relationen mit den Nodes als Member:
rel(4):highway=noexit
rel(3):highway=traffic-lights
rel(1,2,3,4):highway=residential
rel(1,2,3,4):name=Dorfstraße
rel(1,2,3):paved=asphalt
rel(3,4):paved=cobblestone
rel(1,2,3):oneway=yes
rel(2,3):highway=incline
...

Der Vorteil ist, das diese Relationen alle unabhängig voneinander sind.
Z.B. hängen nicht mehr alle von der Richtung des zugrunde liegenden 
Weges ab. Im Beispiel ist der erste Abschnitt der Dorfstraße eine 
Einbahnstraße. Wenn diese nun die Richtung ändert, muss ich nicht 
beachten, dass auch das "rel(2,3):highway=incline" seine Richtung ändern 
muss.
Ich ändere einfach "rel(1,2,3):oneway=yes" in "rel(3,2,1):oneway=yes" 
und alles andere bleibt gleich.

Natürlich würde man im Editor einige Hilfsmittel haben, damit man nicht 
ständig alle Knoten einzeln markieren müsste.
Wenn die ganze Straße nun ein maxspeed=30 bekommen soll, könnte ich als 
Benutzer eventuell die Straße (etwa rel(1,2,3,4):highway=residential) 
anklicken und ähnlich wie jetzt ein maxspeed=30 "hinzufügen". 
tatsächlich würde jedoch eine neue Relation
rel(1,2,3,4):maxspeed=30
mit den gleichen Knoten angelegt werden.


Das war etwas jetzt alles etwas aus der Hüfte geschossen und vielleicht 
nicht ganz verständlich, aber ich hoffe, damit etwas zum 
Gedankenaustausch anzuregen, denn die Relationen werden auch im 
bestehenden Datenmodell immer wichtiger und sollten deutlich besser 
bedienbar werden.

Gerrit




Mehr Informationen über die Mailingliste Talk-de