Relation
A relation is one of the core data elements that consists of one or more tags and also an ordered list of one or more nodes and/or ways as members which is used to define logical or geographic relationships between other elements. A member of a relation can optionally have a role which describe the part that a particular feature plays within a relation.
Contents |
Usage
Relations are used to model logical (and usually local) or geographic relationships between objects. They are not designed to hold loosely associated but widely spread items. It would be inappropriate, for instance, to use a relation to group together 'All footpaths in East Anglia'.
Size
It is recommended to use not more than about 300 members per relation. If you have to handle more than that amount of members, create several relations and combine them with a Super-Relation.
Reason: The more members are stuffed into a single relation, the harder it is to handle, the easier it breaks, the easier conflicts can show up and the more ressources it consumes at database and server.
Roles
A role is an optional textual field describing the role of a member of a relation. For example, in the multipolygon relation, role : inner and role : outer are used to specify whether a way forms the inner or outer part of that polygon.
Types of relation
Main article: Types of relation There are many types of relation including:
- Relation:route is used to describe routes of many types, including hiking route, cycle routes and bus routes as well as named roads.
- Relation:multipolygon, used for defining larger Areas such as river banks and administrative boundaries.
- Relation:boundary to exclusively define administrative boundaries
- Relation:restriction to describe a restrictions such as 'no left turn', 'no U-turn' etc.
Examples
Multipolygon
In the multipolygon relation, the role : inner and role : outer roles are used to specify whether a member way forms the inner or outer part of that polygon enclosing an area.
Bus route
A bus route might have a relation with type=route, route=bus and ref=* and operator=* tags. The ways over which the bus travels would be members, along with bus stop nodes. The ways would have role : forward or role : backward roles, depending on whether the buses operate in the direction of the way, or the opposite way (or the role might be left blank, meaning the bus route uses the way in both directions).
Turn bans
See Relation:restriction.
Tools
- JOSM/Advanced_editing#Relations: Work with relations in JOSM
- Potlatch 2/relations: Work with relations in Potlach
- Show a relation: example id=11
- Show history of a relation: example id=11
- Rendering a relation: Beispiel id=11
- OSM Relation Analyzer
- Relation Check
- Relation Diff
- Relation lists
- Search for a relation: http://ra.osmsurround.org
- Visualise a relation on a map
- Rel2gpx
Please list routing apps here, that are able to follow a relation route (like for pilgrimages)
- No app known yet.
See also
| Elements | |
|---|---|
| Node • Way • Relation (members and roles) • Tag (key and value) | |