mapcomplete/Docs/Tags_format.md
2021-03-14 01:40:35 +01:00

1.8 KiB

Tags format

When creating the json file describing your layer or theme, you'll have to add a few tags to describe what you want. This document gives an overview of what every expression means and how it behaves in edge cases.

Strict equality

Strict equality is denoted by key=value. This key matches only if the keypair is present exactly as stated.

Only normal tags (eventually in an and) can be used in places where they are uploaded. Normal tags are used in the mappings of a [TagRendering] (unless hideInAnswer is specified), they are used in addExtraTags of [Freeform] and are used in the tags-list of a preset.

If a different kind of tag specification is given, your theme will fail to parse.

If key is not present

If you want to check if a key is not present, use key= (pronounce as key is empty). A tag collection will match this if key is missing or if key is a literal empty value.

Removing a key

If a key should be deleted in the OpenStreetMap-database, specify key= as well. This can be used e.g. to remove a fixme or value from another mapping if another field is filled out.

Strict not equals

To check if a key does not equal a certain value, use key!=value. This is converted behind the scenes to key!~^value$

If key is present

This implies that, to check if a key is present, key!= can be used. This will only match if the key is present and not empty.

Regex equals

A tag can also be tested against a regex with key~regex. Note that this regex must match the entire value. If the value is allowed to appear anywhere as substring, use key~.*regex.*

Equivalently, key!~regex can be used if you don't want to match the regex in order to appear.