Hi Tirkon, > Hat jemand einen besseren Ansatz?
Es ist derselbe Ansatz, nur etwas ausformulierter: > "TK" ist Abkürzung für "Transportmittelklasse". "TKn" ist deren > Plural. "TK(n)" lässt ein oder mehrere durch Komma getrennte TK zu. Zunaechst muss der Algorithmus den access-Baum kennen. Wurzelknoten ist access, Tiefe eines Knotens gibt an, wieweit er von access weg ist (motorcar -> motor_vehicle -> vehicle -> access, also Tiefe 3). > (X) key(k) = value(v) # mögliche Anzahl > (1) access = no|TK(n) (yes ist verboten) # 1x > (2) TK(n) = yes|no > (3) TK(n) = designated > (4) TK(n) = official > (5) TK = TK (nur Unterklasse) > (6) highway = cycleway|footway|pedestrian|bridleway|path # 1x Bei (2)-(4) auch nur TK=* statt TK(n)=*. Jedenfalls hab ich noch nie foot;bicycle=yes gesehen. Durch die Baumstruktur kann (1)-(5) zusammengefasst werden. Ausserdem wuerde ich die weiteren Werte noch einbauen (1-5) TK = yes|no|designated|official|private|permissive|destination|agricultural|forestry|delivery|psv|...|TK(n) > Wie oft darf jede einzelne Form (1) bis (6) an einem Objekt hängen? > einmal?, beliebig häufig? > Welche Form darf nicht zusammen mit anderen Formen an einem Objekt > hängen? Ich wuerde beim Algorithmus davon ausgehen, dass es keine durchsetzbaren Tagging-Beschraenkungen gibt. Er muss etwas errechnen koennen, egal wie unsinnig das Tagging ist. Deshalb auch kein Verbot fuer access=yes|designated|official. Kommt ja oft genug in den Daten vor. > Fehlen Formen? Das waere auch sinnvoll fuer Barrieren: (7) barrier = * Das, zusammen mit (6), ergibt, dass der Algorithmus irgendeine Grundannahme von unseren Default-Werten hat. > Wie sieht die Beschreibung/der Algorithmus einer konsistenten > Auswertung aus? > Schritte im Algorithmus könnten beispielsweise sein: Start: Setze access-Baum auf Default-Wert fuer angetroffenen Highway oder Barriere. Etwa einfach alles auf yes. Wenn es eine Regel (TK)=designated|official gibt: Fueg eine Regeln access=no hinzu. Iterativ: Suche den naechsten Ausdruck der Form (1-5) mit der geringsten Tiefe. Bei yes|no|destination|permissive|private|...: Setze den gesamten Unterbaum auf den Wert. Bei designated|official: Setze den gesamten Unterbaum auf yes. Bei TK(n): Setze den gesamten Unterbaum auf no, behandle die einzelnen Werte wie TK=yes. Sofort oder verzoegert ist moeglich, koennte unterschiedliche Ergebnisse liefern. Beispiel fuer Sofort vs. Verzoegert: access=motorcycle vehicle=no Dann kann motorcycle=yes (verzoegert) oder =no (sofort) rauskommen. Etwas einfacher wird es, wenn man sich nur fuer einen bestimmten Wert im Access-Baum interessiert, motorcar oder bicycle vielleicht. Als Uebung fuer den Leser bieten sich die Zusaetze TK:forward und TK:backward an oder die Regeln agricultural|forestry=yes|no|... ;-) Viel Spass beim Weiterbasteln, stw1701 -- Wer sind wir? Was machen wir hier eigentlich? - Amnesy International _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-de