Object search#

Vespucci supports a large subset of JOSM search expressions, these can be used for locating and selecting specific objects in the in memory data, and for matching elements against roles in preset member_expression attributes.

As there is essentially no documentation available from JOSM there is no guarantee that the behaviour is the same in all cases, known and deliberate differences are noted below. A reformatted and expanded version of what is available from JOSM is available here JOSM filter documentation.

Overpass API queries#

We support generating Overpass queries from the JOSM search language very similar to how JOSM and Overpass Turbo does the same. The most important deviation is that in and around expressions are treated like normal predicates. In the case of boolean logical "and" combinations this doesn't make a difference

highway=residential type:way in Bergdietikon

will work as expected. However

highway=residential | highway=unclassified in Bergdietikon

will not. To get "normal" behaviour add brackets

(highway=residential | highway=unclassified) in Bergdietikon

Note that we do not automatically restrict the query extent to the current visible extent of the map, you need to explicitly add an inview predicate to do that.

highway=residential type:way

will try to retrieve residential streets for the whole world. However

highway=residential type:way inview

will restrict the query to the current map view.

Supported expressions#

Syntax Overpass Vespucci specific notes
Baker Street
"Baker Street"
key:valuefragment
-key:valuefragment
key:
key
key=value
key=*
key=
__=__value*
key>reference Compares the value associated with key to reference, if possible if will convert to numeric values first
key<reference dito
expr expr
expr AND expr
expr | expr
expr OR expr
expr XOR expr
-expr
(expr)
type:node
type:way
type:relation
closed
untagged
preset:"__preset item path"__ Vespucci uses "|" as preset path segment separator and only fixed tags are considered for matching
preset:"__preset group path/*"__ The asterix is ignored, the relevant criteria is if the path references a preset group
user: Vespucci currently doesn't store this information
id:
version:
changeset: Vespucci currently doesn't store this information
timestamp:
nodes:range All nodes are counted, for closed ways that implies that start and end node are counted separately
ways:range
tags:range
role:role
areasize:range
waylength:range
modified
new
selected
incomplete Only used for relations
deleted Selecting degenerate (empty) ways may lead to unexpected and undefined behaviour
child expr
parent expr
hasRole:role
nth:number
nth%:number
inview
allinview
indownloadedarea
allindownloadedarea
in place
around place