A category consists of tags (e.g. name, description) and some (0..n) rules. On this page all tags are documented.
A category is a collection of Rules (see below). The category itself should have the following tags:
|name, name:lang||The name of the category in the main language (see lang-tag) and translations.|
|description, description:lang||A longer description of the category.|
|lang||The main language of this category (default: en)|
|id||the id of the category ; if the id is already taken a random id is set and a tag 'id:message' added|
A sub-category is a category displayed/selected in OpenStreetBrowser by selecting/displaying first the category it belongs to. A sub-category is defined in the same way as any other category - it's only the listing of a sub-category in it's parent category that makes it a sub-category. A common option is to use hide=yes (see below) for a sub-category so that it is not displayed in the category list.
These tags are also valid for a category.
|sub_categories||IDs of sub-categories of this list, separated by ";"|
|hide||Set to yes to hide category in list (it can still be a sub category)|
|no_overlay||If this tag is set to 'yes', no overlay will be generated for this category|
|overlays||Show additional overlays for this category (";"-separated)|
Rule-Tags define how an object will be displayed on the map and in the category list. Some tags (marked as "PARSED") will be preprocessed before being displayed. E.g. if the tag "icon_text" is set to "[name];[ref]" then either the objects tag "name" or "ref" is printed on the map.
Strings which are enclosed in square brackets ([...]) are replaced by their according tags. Multiple variants are possible, separated by ';'. E.g. (the default): "[ref] - [name];[name];[ref];[operator]". If not all tags of a variant get a result, the next variant is tried.
A rule should have at least the following tags:
|name, name:lang||The name of this rule.|
|match||List all objects matching these tags, e.g. "amenity=bar" (see Match-Rules)|
|importance||How important is this object? Objects will be returned ordered by decreasing importance. This also defines from which zoom level an object will appear on the map. Available values: global, international, national, regional, urban, suburban, local. See below for more information.
|type||Search this object in following types (Default: "polygon;point"):
|icon_text||What tag(s) should be used to display a name under the icon. (PARSED)|
|icon_text_data||More interesting data is found in the following tags (e.g., a restaurant's cuisine, a power line's voltage, ...) - (PARSED, e.g. "[cuisine]", "[voltage] - [wires];[voltage]")|
|icon_label||A text on top of icon (e.g. ref-tag indicating motorway number displayed on top of an oval symbol). You can format the text similar to icon_text. Use icon_text_style to define a style for this text.|
|line_text||A text, which will be printed on the line. For type 'line' only.|
|list_text||The text which appears in the category list in the sidebar (default: "[ref] - [name];[name];[ref];[operator]")|
|icon||URL of an icon (preferably SVG)|
|icon_style||Describes the style of the image of the icon css-like. For valid values see  (or  for lines), though 'file', 'width', 'height' and 'type' will be auto-generated. If this value is applied to the category, it's a default for all rules.|
|icon_text_style||Describes the style of the text under the icon. For valid values see , though 'name', 'dy' and 'vertical_alignment' will be auto-generated. If this value is applied to the category, it's a default for all rules. Example: "fill: #ff0000; halo_fill: #000000; size: 14;".|
|icon_label_style||Describes the style of the text on top of the icon. For valid values see , though 'name' will be auto-generated.|
|line_text_style||Format the text. See icon_text_style|
|polygon_style||A style for a polygon. For values see .|
|line_style||A style for a line. For values see .|
|group||Group objects by list of tags (see display_name). Those objects will be merged to a single object. This accounts for nicer street names or single names on multiple public transportation stops.|
A rule can match one or several tags, e.g. "amenity=place_of_worship religion=christian" which would match an object with amenity=place_of_worship AND religion=christian. The tags are separated by whitespace. You can create synonyms like "amenity=atm, atm=yes", this would match either amenity=atm OR atm=yes.
This is the syntax for matches:
|tag=value||Match a tag-value pair|
|tag=value1;value2||The tag can have one of the specified values, separated by ;|
|tag=*||The tag can have any value, but it may not be empty|
|tag!=value1;value2||Matches all values of the tag (it can even be empty), but not one of the specified values|
|tag!=*||The tag may not have a value|
|tag=*!=value1;value2||The tag needs to have a value, but not one of the specified values|
|tag>value||The tag is interpreted as number, and has to be bigger than value (possible operators: >, <, >=, <=)|
|tag>value1<=value2||The value has to be bigger than value1, but smaller or equal value2|
- If a value contains spaces, it has to be written in double quotes (e.g. "30 km").
- If a value of an object contains ';', they will be interpreted as a list of different values. E.g. amenity=bar;cafe is an amenity, which serves the function of a bar and a café.
If the text values will be parsed to numbers, the following rules apply:
|[0-9]+||an integer value||1234|
|[0-9]+,[0-9]+||in many countries a , is common instead of .||123,4|
|number( )*.*||a dimension unit (see separate table) is provided, either directly after the number or separated by whitespace||"123 m" or "123m"|
Possible dimsion units (default units in bold):
|mm, cm, km||0.001, 0,01, 1000 Meters|
|m^2 or m² or m2, a, ha, km^2 or km² or km2||Areas: square metres, ares (100 m²), hectar (10 000 m²), square kilometers (1 000 000 m²)|
|in, ft, yd, mile(s), league(s)||Inch, Feet, Yards, Leagues|
|V, kV||Volt, Kilovolt (1000 V)|
Dependent on the importance an object will be visible from a specific zoom level:
|importance||shown in list||icon on map||icon+label on map|