Overpass Tutorial
- 00 - The Beginning
- 01 - Finding nodes with a bounding box
- 02 - Outputting data about nodes
- 03 - Filtering nodes that have a tag
- 04 - Find nodes by matching tags and their values
- 05 - Find nodes by applying multiple filters
- 06 - Extracting multiple sets of nodes
- 07 - Calculating differences between results
- 08 - Generating JSON output
- 09 - Generating CSV output
- 10 - The default set
- 11 - Querying a set
- 12 - Searching within a radius using around
- 13 - Using around to filter against a set of results
- 14 - Searching by polygon
- 15 - Finding ways
- 16 - Ways and their nodes
- 17 - Ways and their tags
- 18 - Combining node and way queries
- 19 - Finding ways from their nodes
- 20 - Finding relations
- 21 - Type agnostic queries (nwr)
- 22 - Areas
- 23 - Finding the areas enclosing a feature
- 24 - Find the area derived from a feature
- 25 - Areas via Nominatim search
- 26 - Timeouts and endpoints
21 - Type agnostic queries (nwr)
Objects in the OpenStreetMap database can be represented in different ways.
For example a shop might initially be added as a node (a point location) and later changed to be represented by a way. This might happen if a mapper adds an outline for the building in which the business operates.
Sometimes we want to query using node
, way
or relation
because we know what
data we want. But how do we find things that might be represented as any of these
types?
One approach is to union the results of multiple queries that fetch all the possible variations, e.g:
(
node["amenity"];
way["amenity"];
rel["amenity"];
);
But this is repetitive. There are variations of the node
, way
and relation
queries we can use that are more succinct:
nw
- to find nodes and waysnr
- to find nodes and relationswr
- to find ways and relationsnwr
- to find nodes, ways and relations
We can apply filters to these statements just like their single type equivalents.
This is a much more succinct way of finding objects of various types. These are fairly recent additions to the language, so you will still encounter many queries that build up results by querying for each type in turn (see the comments in the example below).
This example extracts all of the nodes, ways and relations in our bounding box.
Source File | 21-type-agnostic-queries.osm |
Authors |
|