From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg restriction
Type of a turn restriction at a junction or specification of parking restrictions Edit this description in the wiki page. Edit this description in the data item.
Group: restrictions
Used on these elements
should not be used on nodesshould not be used on waysmay be used on areas (and multipolygon relations)may be used on relations
Status: de facto

The restriction=* key is used...

Tagging turn restrictions

Key Value Explanation
restriction no_right_turn / no_left_turn / no_u_turn / no_straight_on Prohibitory restriction: a valid route may not proceed along the restriction relation's geometry.
only_right_turn / only_left_turn / only_u_turn / only_straight_on Mandatory restriction: a valid route must proceed along the restriction relation's geometry.
restriction:hgv, restriction:caravan, restriction:motorcar, restriction:bus, restriction:agricultural, restriction:motorcycle, restriction:bicycle, restriction:hazmat no_right_turn / no_left_turn / no_u_turn / no_straight_on / only_right_turn / only_left_turn / only_u_turn / only_straight_on / no_entry / no_exit Restriction refers only to the given type of vehicle.
restriction:bicycle stop / give_way Used where bicycles may pass a red light at traffic signals
restriction[:<transportation mode>]:conditional <restriction-value> @ <condition>[;<restriction-value> @ <condition> ...] Restriction that only exists under certain conditions, such as time. The restriction value is one of the ones listed above, e.g. no_right_turn. Multiple values (along with their condition) can be separated by semicolons. See conditional restrictions for details.
type restriction:hgv / restriction:caravan / restriction:motorcar / restriction:bus / restriction:agricultural / restriction:bicycle / restriction:hazmat Restriction refers only to appropriate type of vehicles, replaces the type=restriction tag.
This is/was used in conjunction with restriction=* instead of using type=restriction + restriction:*=*.[1]

In November 2020 this was used 86 times, while type=restriction + restriction:*=* was used 11500 times.

Tagging parking restrictions

The key restriction=* can be used to specify parking restrictions, especially when mapping street parking. It indicates whether there are parking prohibitions (no parking, no waiting or no stopping rules) or other rather action-based restrictions (load and unload, charging electric vehicles).

If the parking spaces along the road are mapped as attributes of the street, use this key with the street parking prefix (e.g. parking:right:restriction=* or parking:both:restriction=*). If the parking spaces are mapped separately (tagged with amenity=parking), just use restriction=* without prefix. Use one of the values described below.

No parking, no stopping, no standing

No parking and no stopping are restrictions that are commonly used worldwide with similar traffic signs. Where parking is not allowed, stopping is still possible (e.g. to drop off or pick up someone or something). In contrast, with a no stopping restriction, a vehicle is not allowed to stop at all (unless due to traffic conditions or an emergency). In a few countries (USA, parts of Canada, Philippines), there is also a no standing restriction (also called no waiting in some places, but don't mix it up with the meaning of "no waiting" in the UK, which is used synonymously with "no parking"). The exact meaning of these categories may vary from country to country and should always be used according to local regulations and signage.

  • Use restriction=no_parking, if there is no parking at any time (same for no_stopping and no_standing).
    This usually only applies on parking lanes mapped on the highway line with parking:side: prefix. It is recommended to add parking:side=no in this case to explicitly indicate the absence of a parking lane in the physical sense.
  • Use restriction:conditional=no_parking @ ..., if parking is not allowed at certain times/under certain conditions (same for no_stopping and no_standing).
    Following the established usage of conditional tagging, we can add multiple conditions like restriction:conditional=no_parking @ ...; no_stopping @ ....
Tagging Sign examples

Parking is not allowed. However, you may stop or stand here.

MUTCD R7-1.svg
Zeichen 286 - Eingeschränktes Halteverbot, StVO 1970.svg
SADC road sign R216.svg
Argentina MSV 2017 road sign R-8.svg

Standing is not allowed. Implies, that parking is also not allowed. However, you may stop here.

MUTCD R7-4.svg

Stopping is not allowed. Implies, that parking and standing are also not allowed.

Zeichen 283 - Absolutes Haltverbot, StVO 2017.svg
SADC road sign R217.svg
Argentina MSV 2017 road sign R-9.svg

none can be used as a value to override restrictions if they are indicated as default but are not valid under certain conditions, e.g.

See the example section below on how to use this in other typical situations, in combination with conditional restrictions or transport mode restrictions.

Loading zones and other action-based parking

There are parking facilities with similar action-based, mostly short-term restrictions. This includes designated loading zones or parking spaces for charging electric vehicles. They are also mapped by using the restriction tagging.

Tagging Sign examples

Implies, that parking is no allowed, but stopping is allowed as long as loading/unloading is in progress (or a signposted time limit has expired).

Hungary road sign H-058.svg
MUTCD R7-6.svg
Nederlands verkeersbord E7.svg

Implies, that stopping, standing or parking is allowed as long as charging is in progress (or a signposted time limit has expired).
Also implies, that there is an exclusive access for electric vehicles, so you don't have to tag an additional access=* restriction explicitly.

SHSM electric vehicle charging (IA-13).svg
CA-BC road sign P-111-D.svg
Nederlands verkeersbord E8c.png

In case there is a time limit for this dedicated parking facilities, add maxstay=*.


Note that all tagging examples are also applicable on parking lanes mapped as properties of the highway line - add the parking:side: prefix in this case.

Sign Tagging
Zeichen 283 - Absolutes Haltverbot, StVO 2017.svg

restriction=no_stopping (No stopping any time. Usually only applies on parking lanes mapped on the highway line with parking:side: prefix.

Zeichen 286 - Eingeschränktes Halteverbot, StVO 1970.svg
Zusatzzeichen 1042-33 - Mo - Fr, 16 - 18 h (600x330), StVO 1992.svg

restriction:conditional=no_parking @ (Mo-Fr 16:00-18:00) (No parking only Mo-Fr from 16 to 18.)

Sweden road sign C35.svg
Sweden road sign T7-1.svg

restriction=no_parking (By default, there is no parking.)
restriction:conditional=none @ (Mo-Fr 08:00-18:00) (However, you may park here on weekdays from 8 to 18.)
maxstay:conditional=30 minutes @ (Mo-Fr 08:00-18:00) (For a maximum of 30 minutes.)

Sweden road sign C39.svg
Sweden road sign T6.svg

restriction:conditional=no_stopping @ (Mo-Fr 08:00-17:00, Sa 08:00-14:00, Su 08:00-13:00) (Stopping is prohibited at certain hours.)

Sweden road sign C35.svg
Swedish road sign 11 13 12.svg

restriction:hgv=no_parking (Parking is prohibited for lorries and trucks - explicitly means, Stopping is still allowed for them.)

Clearway wikipedia cropped.png

restriction:conditional=no_stopping @ (Mo-Fr 06:00-10:00) (Vehicles are not allowed to stop between 06:00 and 10:00 from Monday to Friday.)
restriction:reason:conditional=clearway @ (Mo-Fr 06:00-10:00) (Optional: as it's a clearway.)


restriction:conditional=loading_only @ (Mo-Sa 07:00-18:00) (Designated loading zone from 07:00 to 18:00, except Sunday.)
maxstay=30 minutes (With a time limit of 30 minutes.)

Zeichen 314 - Parken, StVO 2017.svg
Zusatzzeichen 1050-32 - Elektrofahrzeuge während des Ladevorgangs, StVO 2011.svg
Parkscheibe 4Std 8-18h.png

restriction=charging_only (Parking only allowed for vehicles during charging.)
maxstay:conditional=4 hours @ (08:00-18:00) (Between 08:00 and 18:00, the maxstay time period is 4 hours.)

Zeichen 229 - Taxenstand, StVO 1994.svg

In general, its sufficient to specify vehicle specific parking rules with just using access tags:

access=no (No access for the general public, because...)
taxi=designated (...this area is designated for taxis.)

However, if you want to record the signposted no stopping condition explicitly, add:

restriction=no_stopping (Stopping is explicitly not allowed here...)
restriction:taxi=none (...except taxis.)

See also


  1. Because of an unresolved bug in the software Osm2mp, the restriction:hgv=only_straight_on style can lead to incorrect routing - restriction:hgv=only_straight_on is treated as if the relation was tagged restriction=no_*. As a result, some mappers use type=restriction:hgv + restriction=only_straight_on as a workaround.