Element Query Guide
This guide explains how to format the element query selector for use in AVIV ScoutRoute Long Form Quest Definitions.
For a list of all guides on the TCAT Wiki, refer to the Guides List.
The quest_query
attribute of an AVIV ScoutRoute long form quest definition is constructed in a similar way to an OverPass API query, with some modifications.
For example, to get all ways, simply enter the query: ways
Cheatsheet for element filter syntax
Expression | [matches] returns true if element... |
---|---|
shop |
has a tag with key shop |
!shop |
doesn't have a tag with key shop |
shop = car |
has a tag with key shop whose value is car |
shop != car |
doesn't have a tag with key shop whose value is car |
~shop\|craft |
has a tag whose key matches the regex shop\|craft |
!~shop\|craft |
doesn't have a tag whose key matches the regex shop\|craft |
shop ~ car\|boat |
has a tag whose key is shop and whose value matches the regex car\|boat |
shop !~ car\|boat |
doesn't have a tag whose key is shop and value matches the regex car\|boat |
~shop\|craft ~ car\|boat |
has a tag whose key matches shop\|craft and value matches car\|boat (both regexes) |
~shop\|craft !~ car\|boat |
doesn't have a tag whose key matches shop\|craft and value matches car\|boat (both regexes) |
foo < 3.3 |
has a tag with key foo whose value is smaller than 2.5< ,<= ,>= ,> work likewise |
foo < 3.3ft |
same as above but value is smaller than 3.3 feet (~1 meter) This works for other units as well (mph, st, lbs, yds...) |
foo < 3'4" |
same as above but value is smaller than 3 feet, 4 inches (~1 meter) |
foo < 2012-10-01 |
same as above but value is a date older than Oct 1st 2012 |
foo < today -1.5 years |
same as above but value is a date older than 1.5 years In place of years , months , weeks or days also work |
shop newer today -99 days |
has a tag with key shop which has been modified in the last 99 days. Absolute dates work as well. |
shop older today -1 months |
has a tag with key shop which hasn't been changed for more than a month. Absolute dates work as well. |
shop and name |
has both a tag with key shop and a tag with key name |
shop or craft |
has either a tag with key shop or a tag with key craft |
shop and (ref or name) |
has a tag with key shop and either a tag with key ref or a tag with key name |
shop and !(ref or name) |
has a tag with key shop but not either a tag with key ref or a tag with key name |
Note that regexes have to match the whole string, i.e. ~shop\|craft
does not match shop_type
.
Equivalent expressions
Expression | Equivalent Expression |
---|---|
shop and shop = boat |
shop = boat |
!shop or shop != boat |
shop != boat |
shop = car or shop = boat |
shop ~ car\|boat |
craft or shop and name |
craft or (shop and name) (and has higher precedence) |
!(amenity and craft) |
!amenity or !craft |
!(amenity or craft) |
!amenity and !craft |
The queries can be combined with parenthesis and can also be used for matching with multiple tag filters.
Example queries:
-
Get all sidewalks:
ways with (footway=sidewalk)
-
Get all sidewalks without a surface tag:
ways with (footway=sidewalk and !surface)
-
Get all kerbs without a tactile_paving tag:
nodes with (barrier=kerb and !tactile_paving)