User:Hfst/Osmosis/TagsVerlaengern

From OpenStreetMap Wiki
Jump to navigation Jump to search

Aufgabe

Wenn ein Tag nicht existiert soll es gesetzt werden. Wenn da schon was drin stehen soll der neue Text dran gehängt werden.

Lösung

Die Idee ist folgende in dem find-Block finden wir (wenn vorhanden) das Tag. Im output-Teil schreibe ich erst den Text. Dann überschreibe ich ihn, falls im find-Block was gefunden wurde mit dem gefundenen Wert {0} und hänge dann den neuen Text an.

<translation>
        <name> access=yes </name>
        <find type="way"> <!-- Ist das Tag schon verwendet? -->
                <tag k="hfBikeAccess" v=".*" match_id="hfBikeAccessPreSet" />
        </find>
        <match mode="and" type="way">
                <tag   k="access" v="yes|designated" />
                <untag k="bicycle.*" v="no|use_sidepath" />
        </match>
        <output>
                <copy-all/>
                <tag k="hfBikeAccess" v="YES:access" /> <!-- Wert setzen (wird immer gemacht) -->
                <tag from_match="hfBikeAccessPreSet" k="hfBikeAccess" v="{0} YES:access" />
                <!-- Wenn es schon was gab: alten Wert nehmen ({0}) dann den neuen Text anhaengen -->
                <tag k="hfBikeAccess1" v="YES:access" />
        </output>
</translation>