"Nils Heuermann" <w...@oemmes.net> wrote: >>Was ist eine Rolle?
>Wenn man einer Relation [1] einen Weg oder Punkt (oder auch eine andere >Relation) als Mitglied (member) hinzufügt, kann man dem jeweiligen Objekt >eine Rolle (role) [2] zuordnen. Zum Beispiel gibt es bei >Abbiegebeschränkungen [3] die Rollen "from", "to" und "via", um anzugeben, >*von* welcher Straße man *über* welchen Punkt *in* welche Straße (nicht) >fahren darf. > >Bei den wayparts habe ich für die einzelnen Wege, für die man Spuren >eintragen möchte, die Rolle "way" vorgesehen [4]. Man könnte dann z. B. >für die im Thread diskutierten Ausnahmen eine Rolle "except" (oder wie >immer man sie auch nennt -> deshalb erfinden/definieren) für Punkte/Nodes >festlegen. > >Hoffe, das war verständlich :) > >Viele Grüße, >Nils > > >[1] http://wiki.openstreetmap.org/wiki/Relations >[2] http://wiki.openstreetmap.org/wiki/Roles >[3] >http://wiki.openstreetmap.org/wiki/DE:Relation:restriction#Mindestanforderung >[4] http://wiki.openstreetmap.org/wiki/DE:User:Ömmes/Wayparts#Mitglieder Ahja, Vielen Dank! :-) Relationen sind für viele User von OSM ein Buch mit sieben Siegeln. Das schreibe ich einmal der algorithmisch korrekten Beschreibung im Wiki zu. Vielleicht sollte man zur Einführung erst einmal alle Fünfe gerade lassen, und ein anfängliches Grundverständnis vermitteln, indem man auf dem Weg erst einmal verkomplizierende Sachverhalte wegläßt und die Wahrheit nur stückweise ans Tageslicht gelangen läßt. So gerüstet kann der User dann auf die algorithmisch korrekte Erklärung losgelassen werden. Ich versuche im Folgenden einmal, dieses Basisverständnis von Relationen, deren Sortierung und Rollen für Nichtprogrammierer bzw. Otto Normalmapper zu vermitteln: Manche Dinge in OSM lassen sich nicht durch die üblichen Punkte und Wege mit angeschlossenen Tags in den Griff bekommen. Um komplexere Zusammenhänge zu beschreiben, gibt es daher die sogenannten Relationen. Eine einfache Relation ist zunächst einmal nur eine Auswahl von Wegen und Punkten, genannt Members (Mitglieder), welche in die Relation wie in einen Korb "eingesammelt" werden. Der Typ der Relation beschreibt, zu welchem Zweck die Relation dient. Ist der Zweck beispielsweise die Beschreibung einer Route, werden die betroffenen Wegstücke in die Relation "eingesammelt". Obwohl dem User intuitiv klar ist, dass die Wegstücke in der richtigen Reihenfolge anzuordnen sind, ist die OSM Datenbank nicht in der Lage, die korrekte Reihenfolge zu erkennen. Daher muss man die Members in der richtigen Reihenfolge sortieren. Abgesehen von der Reihenfolge stehen die Members einer Relation vom Typ Route gleichwertig nebeneinander. Bei anderen Typen von Relationen können die Members nicht gleichwertig sein, sondern müssen spezielle Aufgaben in der Relation erfüllen. Diese spezielle Aufgabe nennt man Rolle. Hierzu hat jedes Member einer Relation ein Textfeld, in das diese Rolle eingegeben werden kann. Die Rolle darf nur aus einem einzigen Wort bestehen. Bleibt dieses Rollenfeld leer, wie im Falle der Routenrelation, dann hat das Member keine spezielle Aufgabe/Rolle, sondern nur eine Standardaufgabe. Anders in einer Relation vom Typ Abbiegerelation. Hier muss spezifiziert werden, *von* welcher Straße man *über* welchen Punkt *in* welche Straße (nicht) fahren darf. Dazu werden den Membern die Rollen "from", "via" und "to" zugewiesen. Es muss also zunächst festgelegt werden, von welchem Typ die Relation ist. Erst dann weiß man, welche Werte die Rolle annehmen kann. Ohne die Typangabe der Relation ist die Angabe einer Rolle also sinnlos. Auch eine Menge von Relationen können wiederum in eine Vaterrelation eingesammelt werden. [Ende des Erklärungstextes] Was mir jetzt noch nicht klar ist: Was passiert, wenn beispielsweise *eine dem Relationstyp nicht zugeordnete Rolle verwendet wird? *eine notwendige Rolle fehlt? *eine Rolle, die es eigentlich nur einmal geben sollte, mehrfach vorkommt? Funktioniert dann die Relation nicht mehr? Ist es von der Anwendung abhängig, wie diese damit umgeht? Was passiert, wenn eine Routenrelation unsortiert bleibt? Ist die Sortierung ein reiner Service (,der aber empfohlen wird) für die Anwendung oder ist sie zwingend gemäß der Spezifikation der Datenbank?/der Routenrelation? _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de