Changes between Initial Version and Version 1 of Ru:TaggingPresets


Ignore:
Timestamp:
2016-11-19T16:26:10+01:00 (9 years ago)
Author:
Neufoxet
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ru:TaggingPresets

    v1 v1  
     1''If you want to learn installation steps for presets, see [Help/Preferences/Map#TaggingPresets "Tagging Presets" tab in Preferences > Map Settings]''[[br]]
     2''If you want to use presets or need complete reference of presets see [wiki:Presets Presets]''[[br]]
     3''If you want to add the preset to the list of available presets see [[Extend JOSM#Custompresetsandpublication]]''
     4[[TranslatedPages(revision=1,outdated=Перевод неполный)]]
     5[[PageOutline(2-10,Table of Contents)]]
     6= Tagging Presets =
     7JOSM supports distributed tagging presets. This is a XML config file that describes a GUI for entering tags (or properties, annotations, sometimes called map features).
     8
     9The presets can be placed anywhere in the web or at the users local file system. JOSM can be configured to use custom local or remote Presets.
     10
     11== Develop a new preset ==
     12The tagging preset description is in a very simple XML format. Details see [#XML below].
     13
     14See the **[source:trunk/data/defaultpresets.xml defaultpresets.xml]** for an example covering most of the possibilities listed below.
     15
     16Example:
     17[[Image(Change 1 object.png,align=right)]]
     18
     19{{{
     20#!preset
     21<?xml version="1.0" encoding="UTF-8"?>
     22<presets xmlns="http://josm.openstreetmap.de/tagging-preset-1.0">
     23  <item name="Oneway highway" type="way">
     24    <label text="Inserting a unidirectional highway" />
     25
     26    <combo key="highway" text="Type" values="trunk,motorway" />
     27    <text key="name" text="Name (e.g. Angel Road)" />
     28    <text key="ref" text="Ref (e.g. A406)" />
     29
     30    <!-- This is a oneway preset, so make oneway default -->
     31    <check key="oneway" text="Oneway" default="on" />
     32
     33    <!-- Always setting asphalt surface -->
     34    <key key="surface" value="asphalt" />
     35  </item>
     36</presets>
     37}}}
     38
     39== XML Format description ==#XML
     40
     41The full XSD schema is available at the namespace URI (http://josm.openstreetmap.de/tagging-preset-1.0) as well as [source:trunk/data/tagging-preset.xsd the source repository].
     42=== Tags ===
     43==== The document prolog ====
     44 <presets>::
     45  Has to be the main tag of the file. Supports following attributes
     46  * '''xmlns="http://josm.openstreetmap.de/tagging-preset-1.0"'''
     47  * '''author''' - имя автора заготовки
     48  * '''version''' - the version number of the file. For automatical version adjustment of presets managed in this wiki you can use two internal variables: `[[revision]]` (the latest version number of the wiki page) and `[[date]]` (the date of the last edit).
     49  * '''description''' (i18n) - description what the file contains
     50  * '''shortdescription''' (i18n) - very short overview description i.e. the "name" of the preset
     51  * '''link''' (i18n) - web link to further details (optional)
     52  * '''icon''' - informational icon for the whole preset. (This is nedded to display the icon in the table at [[Presets]].)
     53  * '''baselanguage''' - when the base language is not English, specify it here (using non English preset texts prevents automatic translation)
     54
     55  (i18n) means the values may also be localized (e.g. de.description).
     56[[BR]]
     57==== Comments ====
     58 <!-- это пример комментария -->::
     59  Документ может содержать встроенные комментарии.
     60[[BR]]
     61==== Preset group creation ====
     62 <group>::
     63  Used to group items in sub menus. `name` is required, `icon` is optional attribute.
     64 <item>::
     65  Every item is one annotation set to select from. `name` is required, `type` and `preset_name_label` are recommended, `icon` and `name_template` are optional attributes.
     66 <separator/>::
     67  Insert a line separator into the menu.
     68[[BR]]
     69==== Preset window layout ====
     70 <label>::
     71  Labels are static texts for display. `text` is a required attribute, `icon` and `icon_size` are optional.
     72 <space />::
     73  Add some space (ie a newline).
     74 <optional>::
     75  Used to group some optional elements of an item. The `text` attribute is optional. If used without `text` then this is equivalent to <space /><label text="Optional Attributes:"/><space />
     76 <item_separator />::
     77  Add a horizontal separator line between items.
     78 <link>::
     79  Specify a web link for this feature or to anything else of use. The `href` attribute is required.
     80 <checkgroup>::
     81  To group checks. The `columns` attribute is required.
     82 <roles>::
     83  This is required around <role> and adds the heading ("Availible roles role count elements") to the table which is generated by several <role>.
     84 <role>::
     85  To specify possible roles of members in relations. The `key` attribute is required, `text`, `requisite`, `count`, `type` and `member_expression` are optional.
     86 <preset_link>::
     87  Adds a link to an other preset. The `preset_name` attribute is required.
     88[[BR]]
     89==== Set a fixed key value pair ====
     90 <key>::
     91  This tag will always set a key to a specific value. `key` is required and if `value` is present, the key will be set. If `value` attribute is ommited, the key is removed. The `match` attribute is optional.
     92[[BR]]
     93==== Attribute entry and selection dialog boxes ====
     94 <text>::
     95  A text edit field to enter any arbitrary string from the user. `key` is mandatory, `text`, `default`, `use_last_as_default`, `auto_increment`, `length`, `alternative_autocomplete_keys` and `match` is optional
     96 <combo>::
     97  Displays a multiple choice combo box. `key` and `values` are mandatory, `text`, `default`, `editable`, `delimiter`, `values_from`, `display_values`, `short_descriptions`, `use_last_as_default`, `values_searchable`, `length`, `values_no_i18n`, `values_sort` and `match` is optional.\\
     98  If editable is true (default), combo boxes can be edited as if they were text fields (additional to the drop down menu). Non editable combo boxes can only contain one of the specified values.
     99 <multiselect>::
     100  Displays a list from which zero or more items can be chosen. `key` and `values` are mandatory, and `text`, `default`, `delimiter`, `values_from`, `rows`, `display_values`, `short_descriptions`, `use_last_as_default`, `values_searchable`, `values_no_i18n`, `values_sort` and `match` are optional. The selected values will be concatenated with the specified delimiter (default: semicolon) and written to the tag value. If a tag value has already been set when the preset dialog is opened, the multiselect will attempt to mark the appropriate items in the list as select. If the tag value cannot be represented by a combination of choices in the list, then the list will be disabled so that the user cannot accidentally overwrite a custom value. In contrast to the "combo" element, the "multiselect" expects the list of values, descriptions etc. to use the specified delimiter, i.e. by default you will have to use a semicolon. You can specify delimiter="," but then a comma will also be used in the tag value.
     101 <list_entry>::
     102  Used in <combo> and <multiselect>. More information see `short_descriptions`. The attributes are `value`, `display_value`, `short_description`, `icon` and `icon_size`.
     103 <check>::
     104  A checkbox which the user can only select or deselect (or set as unset). The `key` attribute is mandatory. `text`, `default`, `match`, `value_on` , `value_off` and `disable_off` are optional.
     105[[BR]]
     106==== Templates ====
     107 <chunk>::
     108  To define a template of elements for later (repeated) use. The `id` attribute is mandatory.
     109 <reference>::
     110  To include an earlier defined template. The `ref` attribute is mandatory.
     111[[BR]]
     112=== Attributes ===
     113The attributes of the tags have the following meaning:
     114 name="a_name"::
     115  Specify a name for an item. This name will be used in the GUI to display the tagging preset.
     116 name_context="context"::
     117  Translation context for name attribute to separate equals words with different meaning (not required for in-file translations).
     118 type="data_type"::
     119  When specified, only objects of the given type will work with this tagging preset. Can be "node", "way", "closedway", "multipolygon", "relation" or any comma separated combination of them. Note that "multipolygon" is not included in "relation", so if the preset should apply for multipolygons and other relation types, you need to specify both: "multipolygon,relation". Also used in the <role> tag to specify which object types are allowed for a specific relation member.
     120 icon="iconname"::
     121  A name or link to an icon. The image will be used as icon to display in the selection list and when adding the preset to the toolbar. Icons can also be used in <item>, <label> and <list_entry>. The icon should be quadratic in size. See [[Styles#Iconhandling]] how icons can be specified.
     122 icon_size="a number"::
     123  The maximal size of an icon in px. If no value is given, default is 16 for <label> and the default icon size for <list_entry /> (in <combo> and <multiselect>).
     124 key="some_key"::
     125  This specifies the property key that will be modified by the item. In case of <role> it is the role name used in a relation.
     126 text="Any text"::
     127  The description, that will be displayed before (after in case of <check>) the gui element. Also used for <label> and <optional>.
     128 text_context="context"::
     129  Translation context for text attribute to separate equals words with different meaning (not required for in-file translations).
     130 default="default_value"::
     131  The default value for the item. If not specified, the current value of the key is chosen as default (if applicable). In case of <check> whether the checkbox is ticked on or off by default (default is "off"). In case of <text>, <combo> and <multiselct> defaults to "".
     132 values="entry1,entry2,entry3"::
     133  A list of entries (for the <combo> box and <multiselect>). The list has to be separated by commas (for the combo box) or by the specified delimiter (for the multiselect). If a value contains the delimiter, the delimiter may be escaped with a backslash. If a value contains a backslash, it must also be escaped with a backslash.
     134 values_from="JAVA code"::
     135  To use instead of "values" if the list of values has to be obtained with a Java method of this form: public static String[] getValues(); The value must be: "full.package.name.ClassName#methodName".
     136 values_no_i18n="true|false"::
     137  Disables internationalisation for value to avoid mistakes, see #11696. Default is "false". Used in <combo> and <multiselect>. (Useful e.g. for opening hours or brand names.)
     138 values_sort="false"::
     139  Values of <combo> and <multiselect> are sorted alphabetic in every language. With this attribute you can disable the alphabetic sorting if the values should keep the given order, see #5509 and #11926. (In the JOSM internal preset this is used for the keys "smoothness" and "trail_visibility".) Default is "true". Users can globaly disable sorting with the preference key `taggingpreset.sortvalues`.
     140 values_context="context"::
     141  Translation context for values attribute to separate equals words with different meaning (not required for in-file translations).
     142 display_values="Entry1,Entry2,Entry3"::
     143  A list of entries that is displayed to the user. Must be the same number and order of entries as `values` and `editable` must be false or not specified. For the delimiter character and escaping, see the remarks at `values`. Used in <combo> and <multiselect>.
     144 value="foobar"::
     145  Specify a value to be entered in the <key> tag.
     146 value_on="foobar"::
     147  Specify the true value to be entered in the <key> tag of a checked <check> (default is "yes").
     148 value_off="foobar"::
     149  Specify the false value to be entered in the <key> tag of a unchecked <check> (default is "no").
     150 disable_off="true"::
     151  Whether the off value of a <check> is disabled in the dialog, i.e., only unset or yes are provided.
     152 editable="false"::
     153  The combo box is readonly, which means that the user can only select an item in the list. Default is "true", which means, the user can add other values as text.
     154 use_last_as_default="true|false|force"::
     155  For <combo>, <multiselect> or <text> fields the last value is used as default. Using "force" enforces this behaviour also for already tagged objects. Default is "false".
     156 rows="count"::
     157  Specify the number of rows to display in <multiselect> entry (if not set, it is auto determined by java or the look and feel and results in e.g. 8).
     158 name_template="template", name_template_filter="search expression"::
     159  Custom name formatter for osm primitives matching this preset. See below [[#name_templatedetails]] for details.
     160 match="none|key|key!|keyvalue|keyvalue!"::
     161  Allows to change the matching process, i.e., determining whether the tags of an OSM object fit into this preset. If a preset fits then it is linked in the [wiki:Help/Dialog/TagsMembership Tags/Membership dialog].
     162  * none: neutral, i.e., do not consider this item for matching
     163  * key: positive if key matches, neutral otherwise
     164  * key!: positive if key matches, negative otherwise
     165  * keyvalue: positive if key and value matches, neutral otherwise
     166  * keyvalue!: positive if key and value matches, negative otherwise
     167
     168  Note that for a match, at least one positive and no negative is required. Default is "keyvalue!" for <key> and "none" for <text>, <combo>, <multiselect> and <check>.
     169 id="unique_identifier"::
     170  the unique identifier for this chunk
     171 ref="unique_identifier"::
     172  the unique identifier of the (already defined) template to include
     173 columns="a number"::
     174  the number of columns of grouped checks
     175 requisite="optional|required"::
     176  If a relation member is optional or required. Default is "optional".
     177 count="a number"::
     178  How often can a role occur (if not given unlimited number is assumed)
     179 member_expression="an expression"::
     180  an expression (cf. search dialog) for objects of this role
     181 preset_name="exact_name"::
     182  The exact name of the preset to link to.
     183 preset_name_label="false|true"::
     184  Whether to insert "[preset name]" label in dialog (defaults to "false" for backward-compatibility on external presets).
     185 length="a number"::
     186  The length of a <text> or <combo> box (number of characters allowed).
     187 alternative_autocomplete_keys="some_key(s)"::
     188  A comma separated list of alternative keys to use for autocompletion of <text>.
     189 auto_increment="-2,-1,+1,+2"::
     190  May contain a comma separated list of integer increments or decrements, e.g. "-2,-1,+1,+2". A button will be shown next to the <text> field for each value, allowing the user to select auto-increment with the given stepping. Auto-increment only happens if the user selects it. There is also a button to deselect auto-increment. Default is no auto-increment. Mutually exclusive with `use_last_as_default`.
     191 delimiter="special character"::
     192  The character that separates values. In case of <combo> the default is comma. In case of <multiselect> the default is semicolon and this will also be used to separate selected values in the tag. More information see <multiselect>.
     193 short_descriptions=""Entry1,Entry2,Entry3"::
     194  A delimiter-separated list of texts to be displayed below each `display_value`. (Only if it is not possible to describe the entry in 2-3 words.) Instead of comma separated list instead using values, display_values and short_descriptions, the following form is also supported: <list_entry value="" display_value="" short_description="" icon="" icon_size="" />
     195 values_searchable="true|false"::
     196  Whether to search in <combo> or <multiselect> (display_)values when searching for presets.
     197
     198===== name_template details =====
     199
     200**Name templates can be used to define custom formatting for OSM primitives or GPX waypoints** (for example in the Relations or the Selection).
     201
     202{{{
     203#!xml
     204<?xml version="1.0" encoding="UTF-8"?>
     205<presets>
     206        <item name="Public transportation" type="relation"
     207                name_template="Bus({operator} {ref} ?{'{from} - {via} - {to}' | '{from} - {to}' | '{from}' | '{to}'})"
     208                name_template_filter="type=route route=bus">
     209        </item>
     210</presets>
     211}}}
     212
     213'''Samples'''
     214||= Template =||= Tags =||= Result =||
     215|| `House number {addr:housenumber}` || `addr:housenumber=10` || House number 10
     216|| `?{ 'House number {addr:housenumber} at {addr:street}' | 'House number {addr:housenumber}'  }` || `addr:housenumber=10` || House number 10
     217|| || `addr:housenumber=10 addr:street=Abbey road` || House number 10 at Abbey road
     218|| `?{ admin_level = 2 'NUTS 1' | admin_level = 4 'NUTS 2' | admin_level = 6 'NUTS 3' |  'Admin level {admin_level}'}` ||  `admin_level=4` || NUTS 2
     219|| || `admin_level=5` || Admin level 5
     220|| `{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)
     221|| ||  `admin_level=2 name=Czech republic` (no parents) || 2 - Czech republic
     222
     223====== Syntax ======
     224* `{var}` - use value of variable var
     225* `?{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
     226* `!{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.
     227
     228====== Available values ======
     229For 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.
     230
     231Some additional variables are available  via the special prefix:
     232- `{special:everything}` prints all available values, available for formatting of both primitives and waypoints.
     233- `{special:id}` prints the ID of an osm primitive
     234- `{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.
     235
     236=== Deprecated Attributes ===
     237The following attributes are deprecated and no longer supported by JOSM:
     238
     239 delete_if_empty="true"::
     240  was removed in [5155]. You can simply remove this attribute if still used in your preset.
     241 required="true"::
     242  replaced by `match` since [5155]
     243
     244== Translation ==
     245To support translations, all textual elements ("name", "text", "display_values") may also be localized. (E.g. "de.name" would represent the name in case German language support is loaded.)
     246
     247In JOSM internally ([source:josm/trunk/data/defaultpresets.xml internal preset]) all "name", "text" and "display_values" are translated when no specific translation has been given in XML file. When no "display_values" are supplied, then "values" will be treated as "display_values" and translated instead. When translations of equal words but different meanings may conflict, a translation context should be specified. Use "name_context", "text_context" or "values_context" for this. The context should be a meaningful short description to help translators.
     248
     249The translation for the internal preset is done at [https://translations.launchpad.net/josm/trunk Launchpad] (and will probably change to another service in the future, since the Launchpad web interface often produces timeout errors, see #8645).
     250
     251== Icon handling ==
     252See [wiki:Styles#Iconhandling Styles].
     253
     254== See also ==
     255* [wiki:Help/Menu/Presets Presets menu]