Relation:route
![]() |
Description |
---|
Used to describe routes of various kinds. ![]() |
Group: routes |
Members |
Useful combination |
See also |
Status: de facto |
Tools for this tag |
|
A route is a customary or regular line of passage or travel, often predetermined and publicized. Routes consist of paths taken repeatedly by people and vehicles: a ship on the North Atlantic route, a car on a numbered road, a bus on its route or a cyclist on a national route.
A route (or variant) may belong to a route master relation. A route master contains all the directions, variant routes and information for that route. It permits OSM to distinguish the two routes of a two-way trip.
Note that a road sometimes has more than one number. Numerous major European "E" routes share ways (sometimes exactly the same ways) with national numbered routes.
Rendered cycle routes following this scheme
Rendered tram and bus routes following this scheme
Rendered walking routes following this scheme
Tags
Key | Presence | Value | Explanation |
---|---|---|---|
type | ! Required | route | Indicates this relation represents a route. |
route | ! Required | road / inline_skates / evacuation / detour / bicycle / mtb (mountainbike) / foot / hiking / running / bus / trolleybus / waterway / ferry / canoe / train / railway / tracks / tram / funicular / horse / ski / snowmobile / piste | A road (e.g., the ways making up the A7 auto route), bicycle route, hiking route or whatever route (see also #Route types (route) and #Others). |
name | ‽ Important | A name | The route is known by this name (e.g., Jubilee Cycle Route, Pembrokeshire Coastal Path). |
ref | ‽ Important | A reference | The reference by which this route is known; e.g., A7, NCN 11, Citi 4. Recommended if no parent relation route_master=* exists. Otherwise, it is optional. |
network | ‽ Important | ncn / rcn / lcn / nwn / rwn / … | A wider network of routes of which this is one example. For example, the UK's national cycle network or a local cycle network. |
direction | ? Optional | north / south / east / west | In Canada, New Zealand, and the United States, the official cardinal direction along the route when both directions are mapped as separate relations within a superrelation. |
operator | ? Optional | Operator name | The route is operated by this authority, company, etc; e.g., Stagecoach Cambridge, Eurostar. |
state | ? Optional | proposed / alternate / temporary / connection | Sometimes routes may not be permanent (i.e., diversions), or may be in a proposed state (e.g., UK NCN routes are sometimes not official routes pending some negotiation or development). Connection is used for routes linking two different routes or linking a route with for example a village centre. |
symbol | ? Optional | Symbol description | Describes the symbol that is used to mark the way along the route; e.g., Red cross on white ground for the Frankenweg in Franconia, Germany. |
colour | ? Optional | A color name or a hex triplet | Colour code noted in hex triplet format. Especially useful for public transport routes. Example: #008080 for teal colour. |
description | ? Optional | A short description | What is special about this route. |
distance | ? Optional | Distance | The nominal distance covered by the route. For users' information and automatic evaluation; e.g., of completeness. The default unit is km. Use dot as decimal separator. If a unit is specified, it should be separated from the number by a space and use a value as described on the Units page. |
ascent | ? Optional | Ascent | The ascent covered by a route (default units are metres; specify others explicitly). If a route has start and end point at different altitude use descent too. |
descent | ? Optional | Descent | The descent covered by a route (default units are metres; specify others explicitly). Use it only if it differs from the ascent (different altitude at start/endpoint of a route). |
roundtrip | ? Optional | yes / no | Whether or not the route start and ends at the same place; i.e., after traversing the route once, one has returned to the start. |
interval | ? Optional | The time between departures of any given stop on a public transport route. | This tag should only be used on public transport routes. Use HH:MM:SS, H:MM:SS, HH:MM, H:MM, MM, or M format. Example: interval=00:12:30 can be added to a subway route that runs trains every 12.5 minutes. |
duration | ? Optional | The duration time between the start and end, e.g. first and the last stop on a public transport route. | This tag is used on public transport routes, hiking routes and others. Use HH:MM:SS, H:MM:SS, HH:MM, H:MM, MM, or M format. Example: duration=00:42 can be added to a subway route that take 42 minutes from start to end. |
tourism | ? Optional | yes | If the route is of specific interest to tourists. |
Other tags that may be used with this relation:
Members
![]() |
This is an overview over all kind of roles. It is not reasonable to add them all to a certain relation, as some of them are used on certain types only (forward is for instance invalid in PTv2-Routes). |
Element | Role | Recurrence | Discussion |
---|---|---|---|
![]() |
![]() |
! 1+ | The ways making up the route. Currently the empty role should be used instead of the ![]() |
![]() |
![]() ![]() |
? 0+ | If a route should be followed in only one direction for some or all of its length, the role can indicate this for some or all of the constituent ways. ![]() ![]() These roles should not be used on public transport version 2 routes (use empty role instead). |
![]() |
![]() ![]() ![]() ![]() |
? 0+ | In Canada, New Zealand, and the United States, the a role set to a cardinal direction indicates which of the route's official route directions the way carries when the route is mapped as a single bidirectional relation. |
![]() |
![]() |
? 0+ | This role should only be used on public transport routes.
Used on road segments in a public transport route relation where you can stop a vehicle at any point to get on or off. Common in asian countries. |
![]() |
![]() |
? 0+ | On some roads ![]() This role should not be used on public transport version 2 routes (put the way in the route relation twice instead). |
![]() |
![]() |
? 0+ | Link roads (highway=*_link) from and to the route. See highway=motorway_link. Note: this is at best extremely dubious, or maybe always unwanted. In many cases, maybe all, adding link roads from and to the route is incorrect. |
![]() |
![]() |
? 0+ | This role should only be used on public transport routes.
A bus or train stopping position, attached to the route road |
![]() ![]() ![]() |
![]() |
? 0+ | This role should only be used on public transport routes.
A bus or train platform belonging to the route (public_transport=platform). The order of the members in the relation should be identical to the order of the stops in the timetable.
Currently the |
![]() |
![]() |
? 0+ | A guidepost which refers the route. See information=guidepost. |
![]() |
![]() |
? 0+ | (signed) kilometre, mile, leg, etc. |
![]() ![]() ![]() |
![]() |
? 0+ | Information board, information stand about the route (and only the route). |
![]() ![]() |
![]() |
? 0+ | Used in route=fitness_trail (see fitness_station ), in route=worship (see stations_of_the_cross and wayside_shrine ) and for educational=yes (for "marked stations or stops next to points of natural, technological or cultural interest"). |
![]() ![]() ![]() |
* | All commonly used values according to Taginfo |
Note: to ensure a route is properly connected when using a two alternative directions (alternative route A1 and A2, using the forward and
backward roles), make sure the element before the branch connects to the first element in A1 and the element after the branch connects to the last element of A2. Also note that the
forward and
backward roles refer to the directionality of the ways in A1 which need to be going in the same direction; if not all ways in A1 run in the same direction it may be necessary to use both
forward and
backward for the same alternate route A1.
Route types (route)
The list below is alphabetical and is derived from Map Features#Route, which contains the most commonly accepted values. For a list that is ordered by general route type and that also contains some values that are less-widely accepted, please see Key:route.
Key | Value | Element | Comment | Rendering | Photo |
---|---|---|---|---|---|
route | bicycle | ![]() |
Cycle routes or bicycles route are named, numbered or otherwise signed. May go along roads, trails or dedicated cycle paths | ||
route | bus | ![]() |
The route a public bus service takes. See Buses. | ||
route | canoe | ![]() |
Signed route for canoeing through a waterway. | ||
route | detour | ![]() |
Route for fixed detour routes. Examples are Bedarfsumleitung in Germany and uitwijkroute in the Netherlands | ![]() | |
route | ferry | ![]() ![]() |
The route a ferry takes from terminal to terminal Please make sure to add at least one node per tile (zoom level 12), better at least one every few km, so offline editors catch it with bbox requests. | ||
route | foot | ![]() |
Walking Route - is used for routes which are walkable without any limitations regarding fitness, equipment or weather conditions. | ||
route | hiking | ![]() |
Hiking explains how to tag hiking routes. | ||
route | horse | ![]() |
Riding routes | ||
route | inline_skates | ![]() |
Inline has more information on the subject. | ||
route | light_rail | ![]() |
Route of a light rail line. | ||
route | mtb | ![]() |
Mountain biking explains how to tag mtb routes. | ||
route | piste | ![]() ![]() |
Route of a piste (e.g., snowshoe or XC-Ski trails) in a winter sport area. | ||
route | railway | ![]() |
A sequence of railway ways, often named (e.g., Channel Tunnel). See Railways. | ||
route | road | ![]() |
Can be used to map various road routes/long roads. | ||
route | running | ![]() |
For running (jogging) routes. | ||
route | ski | ![]() |
For ski tracks (e.g., XC-Ski Trails User:Langläufer/Loipemap). | ||
route | subway | ![]() |
Route of a metro service | ||
route | train | ![]() |
Train services (e.g., London-Paris Eurostar) See Railways. | ||
route | tracks | ![]() |
Railroad track as rail infrastructure. | ||
route | tram | ![]() |
See Trams for more information on tagging tram services. | ||
route | trolleybus | ![]() |
The route of a trolleybus service. | ||
route | User defined | ![]() |
All commonly used values according to Taginfo. |
This table is a wiki template with a default description in English. Editable here.
Public transport routes
- Main article: Public transport
All public transport relations feature some combination of the following keys:
Key | Presence | Value | Comment |
---|---|---|---|
type | ! Required | route route_master |
|
route route_master |
! Required | bus trolleybus minibus share_taxi train light_rail subway tram ferry |
As public transport is a rather complex and disputed topic in OpenStreetMap, this section is limited to the bare minimum, which also helps with keeping this up to date and avoids conflicting content in the wiki. See Public transport for more info.
Road routes
- Main article: Key:network
- Main article: :Category:Tag descriptions for key "network"
route | network | Description |
---|---|---|
road | e-road | European E-road network |
road | AR:national | Argentine national roads |
road | AR:provincial | Argentine provincial roads |
road | AU | Australian Routes |
road | BE:A-road | Belgian motorways (autosnelweg, autoroute) |
road | BE:B-road | Belgian B-roads (bretelle) |
road | BE:R-road | Belgian ring roads (ringweg, rocade) |
road | BE:N-road | Belgian N-roads |
road | bg:motorway | Bulgarian Road Network - motorways |
road | bg:national | Bulgarian Road Network - national roads |
road | bg:municipal | Bulgarian Road Network - municipal roads |
road | bg:urban | Bulgarian Road Network - urban roads in populated places |
road | BR | Brazilian Federal Highways |
road | BR:xx | Brazilian state highways, where xx is replaced by a state code (RJ = Rio de Janeiro, MG = Minas Gerais, etc.) |
road | by:national [1] | Belarusian Road Network - national roads |
road | ca_transcanada | Canadian Trans-Canada highways |
road | ca_on_primary | Ontario primary highways |
road | CN:expressway | China National Expressways - for the provincial expressways of each province in China, use CN:XX:expressway, e.g. CN:SH:expressway stands for the provincial expressways that belong to Shanghai. |
road | CN:national | China National Highways - for the provincial highways of each province in China, use CN:XX, e.g. CN:SD stands for the provincial highways that belong to Shandong. |
road | BAB | German Autobahn |
road | FR:A-road | France motorways |
road | FR:N-road | France Nationals roads |
road | FR:M-road | France Metropolitains roads |
road | FR:xx:D-road | France Departemental roads, where xx is replaced by a department code (75=Paris) |
road | GH:national | Ghana Road Network - national roads |
road | GH:inter-regional | Ghana Road Network - inter-regional roads |
road | GH:regional | Ghana Road Network - minor & major regional roads |
road | gr:national | Greek national roads |
road | gr:provincial:nn | Greek provincial roads, where nn is the prefecture's ISO code. |
road | HK | Hong Kong Strategic Routes |
road | HU:national | Hungarian expressways and main roads |
road | HU:regional | Hungarian connecting roads (e.g., secondary roads) |
road | JP:national | Japanese national roads |
road | JP:prefectural | Japanese prefectural roads |
road | LU:A-road | Luxembourg motorway network (autobunn, autoroute) |
road | LU:B-road | Luxembourg expressway network |
road | LU:N-road | Luxembourg national road network |
road | LU:CR-road | Luxembourg regional road network (chemin repris) |
road | MX:state | Mexico state highway network. Where state is the state index code |
road | na | Namibian roads |
road | NL:A | The motorway network in the Netherlands (A-roads). |
road | NL:N | The non-motorway network in the Netherlands (N-roads). |
road | NL:S:city | The city route network in the Netherlands (S-roads), where city is the city. |
road | NL:R:network | The recreational road network in the Netherlands (R-roads), where network is the network name. |
road | PH:nhn | Philippine national highway network |
road | PK:national | Pakistan National Highway network |
road | PK:motorway | Pakistan Motorway network |
road | PK:Province | Pakistan Provincial or Territorial network (example: PK:Punjab:LRR for Lahore Ring Road. This has it's own network subtag as it is not part of the main Punjab provincial network, and uses the common acronym rather than the name Lahore to avoid confusion with the city of Lahore as an operator) |
road | PL:national | Polish Road Network - national roads |
road | RO:DN | Romanian Road Network - national roads |
road | RU:national | Автодороги России - Russian national roads |
road | TR:motorway | Turkey road network - Motorways, referenced as O-## |
road | TR:national | Turkey road network - State roads, referenced as D### |
road | TR:provincial:** | Turkey road network - Provincial roads, referenced as **:## where ** stands for provincial plate code. |
road | UA:national | Ukrainian national roads |
road | US:I | Interstate Highways Relations, USA |
road | US:US | United States Numbered Highway Relations, USA |
road | US:xx | State highways in the United States, where xx is the state's postal abbreviation. Many states also have county route networks, and some have several tiers of state-owned roads. |
road | VE:T:xx | "Troncal" roads in Venezuela, where xx is the state's name abbreviation, according to the INTT's standard |
road | VE:L:xx | "Local" roads in Venezuela, where xx is the state's name abbreviation, according to the INTT's standard |
road | VE:R:xx | "Ramal" roads in Venezuela, where xx is the state's name abbreviation, according to the INTT's standard |
road | ZA:national | South African national roads |
road | ZA:regional | South African regional roads |
Detours
route | Description |
---|---|
detour | Local detours (used in the Netherlands and Germany). Detours are routes that avoid traffic jams on motorways, usually leading from one exit to the next. |
Cycle routes (also mountain bike)
- Main article: Cycle routes
Key | Presence | Value | Description |
---|---|---|---|
route | ! Required | bicycle / mtb | Use "bicycle" or "mtb", but not "bicycle/mtb" |
network | ! Required for route=bicycle
? Optional for route=mtb |
Specify the network as a international route, national route, a regional route or a local route, as per the normal tagging of cycle routes | |
icn | International cycling network: long distance routes used for cycling routes that cross continents. | ||
ncn | National cycling network: long distance routes used for cycling routes that cross countries. | ||
rcn |
Regional cycling network: used for cycling routes that cross regions. | ||
lcn | Local cycling network: used for small local cycling routes. Could be touristic loops or routes crossing a city. | ||
ref | ? Optional | Official reference | The reference number/ID found on signposts etc. |
state | ? Optional | proposed | Routes are sometimes not official routes, pending some negotiation or development. Maps may choose to render these routes differently; e.g., as dotted lines. |
Some examples in use:
- Part of UK NCN Route 4
Part of UK NCN Route 4
- Part of London Route 5
Part of London Route 5
Walking routes (also hiking and pilgrimage)
- Main article: Walking Routes
Hiking routes are extensively mapped with route relations, and the Waymarkedtrails map will render route relations following this proposal and the osmc:symbol=*
Hiking routes are rendered for selected areas in Germany in a hiking and trail riding map (German). The tags required for rendering are:
Key | Presence | Value | Description |
---|---|---|---|
type | ! Required | route | |
route | ! Required | hiking | Typically longer or more strenuous routes, usually on unpaved paths. |
foot | Typically easier routes, usually on paved surfaces. | ||
network | ! Required | iwn | International walking network: long distance paths used for walking routes that cross several countries, for example the Camino de Santiago |
nwn | National walking network: long distance paths used for walking routes that cross countries | ||
rwn |
Regional walking network: used for walking routes that cross regions. | ||
lwn | Local walking network: used for small local walking routes. Could be touristic loops or routes crossing a city | ||
name | ‽ Important | Meaningful route name suitable for identifying this route. | |
symbol | ? Optional | Verbal description of the route marker symbols. | |
osmc:symbol | ? Optional | Coded description of the route marker symbols. | |
pilgrimage | ? Optional | yes / no | Whether the route is used for pilgrimage. This qualifies the use of a hiking/foot route; as opposed to creating a new route type with route=pilgrimage. |
Inline skating routes
- Main article: Inline skating
Inline Skating routes have been mapped mainly in Switzerland EN:Switzerland/InlineNetwork and the Netherlands with route relations. Lonvias Skating map will render such routes.
Key | Presence | Value | Comment |
---|---|---|---|
route | ! Required | inline_skates | |
network | ! Required | international / national / regional / local | Specify the network as a international route, national route, a regional route, or a local route |
ref | ? Optional | Reference | References work best on the map if just the number is used, so for national 4: 4. The network tag correctly distinguishes the type, so just use ref. |
state | ? Optional | proposed | Routes are sometimes not official routes pending some negotiation or development; the map renders these routes as dotted. |
Some examples in use:
- Part of Swiss National Route 3
Part of Swiss National Route 3
- Route 72 around the Greifensee
Route 72 around the Greifensee
- Skating network in Midden-Delfland, Netherlands
Skating network in Midden-Delfland, Netherlands
Others
This is a table with possible route tags being used right now:
route | Description |
---|---|
evacuation | Emergency evacuation routes |
fitness_trail | For a fitness trail with extra exercise stations |
horse | See also riding |
inline_skates | Inline skate routes are named or numbered or otherwise signed routes for inline skating. |
running | Used for marked running routes, usually 2–20km, that are used for exercise |
snowmobile | For snowmobile routes. Either between two destinations or a collection of routes operated by someone |
taxi | See also: route=share_taxi |
trolleybus | See bus |
cycling | Used for cycling events (like stages of the Tour de France). For (recreational) cycle network use bicycle |
historic | Historic routes, such as horse-pack trails used for postal routes, ancient roads, etc. Often parts are lost. Please include an appropriate historic=*-value. |
motorcycle | Used for motorcycling events (motorcycle rally, guided tours) |
motorboat | Used for recreational motorboat route |
transhumance | For long distance livestock paths |
via_ferrata | For via_ferratas |
waterway | A route via navigable waterways, suitable for commercial shipping or recreational boating |
worship | A route along which fixed points of worship are placed, e.g. a via Crucis. |
How to map
Multiple routes sharing the same ways
Especially with bicycle routes, often multiple routes run along the same ways for a far distance. There exist so many different bicycle route networks that are operated by different entities that it is not unusual that some of these networks overlap. The EuroVelo routes, for example, use the existing infrastructure in many countries. There are two practices at the moment, if segments of multiple routes share the same way.
- Add the ways to all relations of the routes that they belong to.
- Split the routes into part relations and make super relations (relations that don’t contain ways but instead other relations). Then add the segment that is shared by the routes to all of them.
Both practices each have advantages and disadvantages.
Adding the ways to multiple route relations
- When many routes share one path, it can be a lot of work to map a new part of the route, because you have to add the ways to all relations.
- People might not see that the path also is used by other routes and might forget to apply their changes to all relations. Thus the data may become inconsistent.
- This is probably the easier way, as it is somewhat hard for beginners to split relations into parts and to find out which part they have to edit.
- Relations might become very big, which makes it hard to work with them (analyzers need more time to process them, drawing them into the map will take a lot of JavaScript CPU time).
- If you don’t use super relations at all, you also have to add alternative routes and excursions to your relation. This makes it hard for analyzers and tools to understand the route. Role=excursion and role=alternative have been suggested, but they still don’t say which way belongs to which excursion (if there are multiple ones).
- It is the purpose of relations to group objects. When two primary roads share the same street at some section, we don’t create two ways that share the same nodes. So we shouldn’t create two relations that share the same ways.
Creating super-relations for routes
- Main article: Superrelation
- Many current renderers (like the CycleMap) don’t support super-relations, so they don’t show the ref and the network tag of a super-relation. Currently, all these tags have to be added to all part relations, which is a lot of work (especially as the parts need to have the different refs of all the routes they belong to).
- It is said to be good mapping practice to keep relations one way. So alternative routes and excursions need to be put into a different relation. So you often need a super-relation even without splitting the route into parts.
- Some tools and analyzers (like the OSM Relation Analyzer, especially the GPX export function) don’t support super-relations yet. This can make it hard to analyze a route as a whole (which is important, for example, to calculate how much of a route already has been mapped).
(Note: OSM Route Manager, waymarked trails, JOSM and knooppuntnet monitor support subrelations) - There is no documented convention on how to handle super-relations. On first glance it appears simple--just take over all tags to all members--but it is not. There are tags where this makes no sense or which change the context and meaning when handed over to a member relation; e.g., distance or note. The same applies to roles other than in base relation, e.g. forward/backward.
- Super-relations can become very confusing when a relation belongs to multiple super-relations or a way belongs to multiple relations. In that case it is no longer deterministic from which relation a certain relation or way will receive its tags.
- When someone maps a new route, they might have to split other routes that share ways with it. People editing these other routes might get confused when the number of subrelations keeps changing the whole time.
- Current editors miss advanced relation editing features, such as “Split relation” (and also super-relation rendering). Things can get very confusing when one route consists of hundreds of small part relations.
- One motto of OSM is "Don't map for the renderers". If it is considered the more natural way of mapping to create super-relations, then the missing support in the renderers and tools should not stop us from doing so.
- Consider that super-relations are not necessarily included when requesting a set of data from the server. So depending on whether or not super-relations were included, the data is interpreted differently. As you cannot tell from a way or relation whether it is member of another relation, you never are quite sure whether you are seeing all the relevant data.
- It is common sense to create super-relations if one complete route is part of another route (like the German D6 is with EuroVelo EV6). If EV6 now shares only a part of another way in another country, we will have to create segments anyway (else we end up with a relation that contains both sub-relations and ways). We should either use the one method or the other.
- People need to know only the route that they are mapping. When someone maps the German D6 route, he doesn’t even need to know the EuroVelo network (as EV signs might not exist in his area), because, as with a super-relation, his part of the route gets added automatically to all parent relations. This fits the OSM concept better: When everyone maps the places and things he knows, a complete map of the world evolves.
At the moment it seems to be practice to create part-relations, if the shared segment is relatively big compared to the total length of a route. For a national bicycle route, 20 km might be a good limit. For shorter parts the single ways might be added to all relations they belong to. (Of course this is only a rule of thumb. Nothing of this is the official way of mapping.) It also might be important how many different way objects a segment consists of in OSM. It might be not very useful to create segments, if the route consists of motorways (as they only contain of a few, long ways), while bicycle routes often go through cities and residential areas where many ways would have to be added if there were multiple relations.
Another point when deciding which tagging method to use is to find out if the routes use the same ways only by coincidence. Thus, if one route is changed, the other route likely still will be using the old way, so using part-relations would not be appropriate.
Size
Common practice is not to create route relations with more than 250–300 members. If you need to create bigger relations, which could happen easily, make several reasonable-sized relations and unite them in a super-relation as mentioned above. Reasons:
- Keep the relations editable.
- Avoid conflicts. The bigger the relation the more likely it is that two users are working on it at the same time.
- Save the server resources.
There is also a list of "monster" relations.
Bus routes and roundabouts
Bus routes passing through roundabouts are mapped in one of these two ways:
- The whole roundabout is included in the route relation.
- The roundabout is split and the part used by the bus route is included in the route relation.
There is no consensus among the OSM community regarding which method is recommended. The choice of method 1 or 2 has no effect on Garmin devices because split roundabouts are re-joined by mkgmap. It is also possible to re-join split roundabouts in Mapnik although this is not done for the rendering of the main map. Software developers should note that if the precise route is required and method 1 has been used, the details will need to be deduced from the positions of the entry to, and the exit from the roundabout; and also from the position of a stop, if the bus serves a stop on the roundabout. (In some cases a bus may make more than one full circuit of a roundabout.)
Order matters
For many route relations, members order matters. For instance, an unordered hiking route relation would have a pretty useless, unreadable elevation graph:
In addition, data consumers may not be able to understand the path to be followed: one way, then another kilometres away, then back to the end of the first way.
Users editing routes should consequently try to keep them ordered if they are, or order them if they are not. A good hint, for JOSM, is to look at the last column of the members section of the relation editor: if this column has arrows in only one direction, and has no red points between members, then the members are ordered.
On the other hand, unordered relation members make this column display arrows in both directions, isolated members – segments without arrow and with 2 red dots –, and many red dots at continuity breaks.
Please be aware of the fact that some editors cannot handle (PTv2-)relations properly and splitting ways may result in unordered relations (e.g. iD-issues: [1], [2] or[3]).
Step by step guide
How to create a new route (it is slightly different if you want to add ways to an existing route).
iD
- Before you begin, make sure each way that the route runs along exists and is appropriately tagged (e.g., Foot Path, Busway, Motorway).
- Create the route relation:
- Select one of the ways (it doesn't matter which one). At the bottom of the left sidebar, under the Relations section, click the
button.
- In the Choose a parent relation combo box, press the dropdown arrow and choose New relation….
- Open the Route features… group and choose the kind of route. For example, for a bus route, choose
Bus Route.
- Under the Fields section, fill in the route's details. If you enter an value in the Operator or Network field that matches an entry in the Name Suggestion Index, iD will warn you that some tags are missing and offer to fill in these tags.
- If the member needs a role such as
forward or
backward, scroll down to the Members section. The sole member way is listed there; enter its role in the field beneath the way's name.
- Select one of the ways (it doesn't matter which one). At the bottom of the left sidebar, under the Relations section, click the
- Add more ways to the relation until it is complete:
- Select another way. At the bottom of the left sidebar, under the Relations section, click the
button.
- In the Choose a parent relation combo box, press the dropdown arrow and choose the relation you created earlier. It should be labeled according to its name, number, or endpoints. If you do not see it in the list, pan the map so that one of the route's existing member ways is within view, or type in r-1 for the first relation you created in this session, r-2 for the second, etc.
- If the member needs a role, enter the role in the field beneath the way's name.
- Select another way. At the bottom of the left sidebar, under the Relations section, click the
To speed up this process, you can select multiple ways at the same time by holding down ⇧ Shift. Note that the Relations selection only lists the relations that all of the selected features are members of; if you select multiple ways and one of them is already in a route relation, it won't appear in the list, but adding the selected ways to the relation will cause it to contain one of the ways twice.
If you want to correct a mistake in an existing route relation, you can follow these steps:
- Select the route on OpenStreetMap.org website (the address bar should show https://openstreetmap.org/relation/####)
- Zoom in to the place where the first mistake is (without closing the left sidebar)
- Click on Edit (or Edit with iD if iD is not your default editor)
- Select the way that should not be part of the relation (if there is none and you want to fill in a "hole" in the relation, skip to step 7)
- Make sure that the selected way is the segment, that shall be removed from the relation (sometimes only part of it should be removed. If that's the case split it and select the part that needs to be removed from the relation).
- Scroll down to the Relations section and press the bin icon that's on the right of the relation that you want to correct.
- Select all ways that need to be added to the relation (you may need to split some of them before adding them)
- Scroll down to the Relations section and click the
button.
- In the Choose a parent relation combo box, press the dropdown arrow and choose your relation.
Member order
iD automatically sorts the relation's members in sequential order based on connections among the members. This normally works correctly, but there is a longstanding bug in which iD mangles the order if the route forks, loops, or doubles back on itself and you then split one of the member ways. [4][5] You can avoid this bug by ensuring that the route's members form a linear path.
If the route is unavoidably nonlinear, you can mitigate the bug by ensuring that iD has loaded all the member's relations before you edit the relation. Here are three methods for ensuring a full download:
- Browse to the relation's page on openstreetmap.org before clicking Edit.
- Search for the relation ID in the search bar at the top of the left sidebar.
- Select the relation, and click on the
button beside each item in the Members section.
To visually verify the order, select the relation and scrubbing your mouse cursor back and forth over the items in the Members section, observing that the members are highlighted on the map in order.
Potlatch
- Ensure all ways that the route runs along exist and are appropriately tagged (e.g., highway=footway)
- Select the first way and click on the second symbol on the right side, which looks like two chain segments.
- Select a relation from the drop-down menu, if there is an existing relation in this area that is appropriate. If the existing relation you want to choose is far away, use the search function. Otherwise, select Create a new relation and click Add.
- Add a type tag with the value route.
- Add additional tags as needed. (Use the + button)
- Click OK.
- The relation has been added to the way. The grey box to the right of the relation details and to the left of the X is the input field for the way's role within the relation. See the Members section above for details of roles within the route relation type.
- Repeat steps 2–4, selecting the appropriate relation (the one just created) in step 3.
JOSM
- Ensure all ways along which the route runs exist and are appropriately tagged (e.g., highway=footway)
- Make sure the relation pane (
Alt+Shift+R
) is open - Select
New
in the relation pane to create a new relation - Fill in the appropriate tags in the dialogue that pops up, adding at least type=route and preferably name as well with a name for the route
- Click
OK
- Now select some or all of the ways you would like to add to the relation using the normal select (
S
) tool, then clickEdit
in the relation pane with your relation highlighted. The relation editing dialogue will pop up - Click
Add selection
in the relation dialogue to add the selected ways to the relation.
Please list applications here that are able to navigate on an existing relation:route.
- cycle.travel uses route relations (of type=bicycle and type=road) to influence weighting for route selection.
Related proposals
- Proposed features/via ferrata proposes a relation of type=route, route=ferrata
Notes
- ↑ ISO_3166-2:BY on Wikipedia.
Possible tagging mistakes
![]() |
The attribute type=route should not be used on node |
Helping tools
- OSM Relation Analyzer (possible to search for relations by name)
- OSM Route Manager
- Hikingbook.pl automatically creates route descriptions and maps, as well as POI directory
- Rel2gpx exporter
|