| 2 | | Name templates can be used to define custom formatting for gpx waypoints or osm primitives (for example in the Relations or the Selection lists). |
| 3 | | |
| 4 | | = Where to define = |
| 5 | | |
| 6 | | Create a text file as described below. Then refer to it from Tagging Presets (F12, Map Settings (3rd item), 3rd tab) |
| 7 | | |
| 8 | | = Configuration file = |
| 9 | | The configuration file can look like this: |
| 10 | | |
| 11 | | |
| 12 | | {{{ |
| 13 | | #!xml |
| 14 | | <?xml version="1.0" encoding="UTF-8"?> |
| 15 | | <presets> |
| 16 | | <item name="Public transportation" type="relation" |
| 17 | | name_template="Bus({operator} {ref} ?{'{from} - {via} - {to}' | '{from} - {to}' | '{from}' | '{to}'})" |
| 18 | | name_template_filter="type=route route=bus"> |
| 19 | | </item> |
| 20 | | </presets> |
| 21 | | }}} |
| 22 | | |
| 23 | | |
| 24 | | = Syntax = |
| 25 | | * {var} - use value of variable var |
| 26 | | * ?{condition1 'value1' | condition2 'value2 | 'value3'} - use value1 if condition1 is satisfied, value3 is no condition is satisfied. Condition can be either explicit - the same expression as in search or filters is used - or implicit; the value is used when all variables used inside exist |
| 27 | | * !{search_expression 'template'} - search_expression is evaluated and first matching primitive is used as context for template. Useful for example to get tags of parent relation. |
| 28 | | |
| 29 | | = Samples = |
| 30 | | ||= Template =||= Tags =||= Result =|| |
| 31 | | || House number {addr:housenumber} || addr:housenumber=10 || House number 10 |
| 32 | | || ?{ 'House number {addr:housenumber} at {addr:street}' | 'House number {addr:housenumber}' } || addr:housenumber=10 || House number 10 |
| 33 | | || || addr:housenumber=10, addr:street=Abbey road || House number 10 at Abbey road |
| 34 | | || ?{ admin_level = 2 'NUTS 1' | admin_level = 4 'NUTS 2' | admin_level = 6 'NUTS 3' | 'Admin level {admin_level}'} || admin_level=4 || NUTS 2 |
| 35 | | || || admin_level=5 || Admin level 5 |
| 36 | | || {{{ {admin_level} - {name} !{parent() type=boundary '?{'(part of {admin_level} - {name})' | ''}'} }}} || admin_level=6 name=Vysocina, member of relation admin_level=4 name=Jihovychod || 6 - Vysocina (part of Jihovychod) |
| 37 | | || || admin_level=2 name=Czech republic (no parents) || 2 - Czech republic |
| 38 | | |
| 39 | | = Available values = |
| 40 | | For formatting of OSM primitives , the value of any tag can be used. You can use {special:everything} to see what values are available for your gpx waypoints. |
| 41 | | |
| 42 | | Some additional variables are available via the special prefix: |
| 43 | | - {special:everything} prints all available values, available for formatting of both primitives and waypoints. |
| 44 | | - {special:id} prints the ID of an osm primitive |
| 45 | | - {special:localName} prints the localized name, that is the value of name:lang for your language if it is available or the value of the name tag if it doesn't. |
| | 2 | moved to [[TaggingPresets#name_templatedetails]] |