Key:maxspeed
maxspeed |
Description |
---|
Specifies the maximum legal speed limit on a road, railway or waterway. |
Group: restrictions |
Used on these elements |
Useful combination |
See also |
Status: de facto |
Tools for this tag |
|
The maxspeed=* tag is used on ways to define the maximum legal speed limit for general traffic on a particular road, railway, or waterway. By default, values will be interpreted as kilometers per hour. The speedlimit can be specified in different units if necessary. Those will be added behind the value, separated by a space (see Examples). The tag is also used on nodes to specify maxspeed traffic signs.
Values
The maximum speed limit for a highway=*, railway=rail, waterway=river etc. can be specified as follows:
While the tagging examples are given for linear features, single positions with restrictions can usually be mapped by tagging a node with the same tags.
Type | Example | Meaning |
---|---|---|
Numeric speed limit | maxspeed=60 maxspeed=50 mph maxspeed=10 knots |
The maximum fixed numeric speed limit, followed by the appropriate unit, if not measured in km/h. When the value is in km/h then no unit should be included. For example, maxspeed=60 for 60 km/h and maxspeed=50 mph for 50 mph (note the space between the value and the unit). |
Variable speed limit | maxspeed:variable=* |
Indicates that a variable maximum speed can be displayed on electronic variable message signs, for reasons indicated in the tag's value. Can be used together with maxspeed=* to indicate the speed limit in the normal situation. |
No speed limit | maxspeed=none | Indicates that there is no fixed maximum numeric speed limit for this section of road (on some German autobahns and a very few other places). Not to be used for situations where there is a limit, but it is not known. Where the limit is not known, do not include a maxspeed tag. |
Walking speed limit | maxspeed=walk | In Austria and Germany, the speed limit for living street (German: Wohnstraße bzw. Verkehrsberuhigter Bereich) is defined only as being a walking speed, but there is no defined numeric value for this. The maxspeed walk proposal suggests that walk should be used, but it is not commonly used.
In Greece, walking speed is mandated for pedestrian streets. Although not enumerated explicitly, it can be inferred to be 8 km/h from the speed limit for electric personal vehicles to be treated as pedestrians.
If the law defines a numeric equivalent, that can be used instead. For example, in the Netherlands, walking speed is legally defined as 15 km/h, so one simply uses maxspeed=15 instead of maxspeed=walk. |
Implicit speed limit | maxspeed=<countrycode>:<zone type> | In some countries, notably Romania and Russia, it's common to use maxspeed with implicit values. The format includes a country code followed by a ':' and a zone identifier (For example 'RO:urban'). For example it is used in Russia for areas where the speed limit is indicated on the street by use of a symbol or icon rather than a number.
This non-numeric notation is used to avoid the correction of an entire country map due to legislation changes regarding maximum speed. Note: Some local communities, prefers to tag the same information in the tag maxspeed:type=* and the tag source:maxspeed=* is also common in some communities. A project wide consens how this information is tagged was not found, yet. |
Implicit maxspeed values
- Main article: Default speed limits
The maxspeed=* tag may use with context-specific values, such as where a road is unsigned and a "default" maxspeed value in-force by legislation/law applies.
Note: In some communities this information is commonly tagged in source:maxspeed=* or maxspeed:type=*.
Country | ISO country code | Urban | Rural | Miscellaneous | Comment | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
source:maxspeed=* or maxspeed:type=* (or maxspeed=*) | Implied or explicit value | source:maxspeed=* or maxspeed:type=* (or maxspeed=*) | Implied or explicit value | source:maxspeed=* or maxspeed:type=* (or maxspeed=*) | Implied or explicit value | ||||||
Armenia | AR | AR:urban | 40 | AR:rural | 110 | — | |||||
AR:urban:primary | 60 | ||||||||||
AR:urban:secondary | 60 | ||||||||||
Australia | AU | See Australian Tagging Guidelines - Roads | |||||||||
Austria | AT | AT:urban | 50 | AT:rural | 100 | AT:bicycle_road | 30 | — | |||
AT:trunk | 100 | ||||||||||
AT:motorway | 130 | ||||||||||
Belarus | BY | BY:urban | 60 | BY:rural | 90 | BY:living_street | 20 | — | |||
BY:motorway | 110 | ||||||||||
Belgium | BE | BE-VLG:urban | 50 | BE-VLG:rural | 70 | BE:living_street | 20 |
| |||
BE:cyclestreet | 30 | ||||||||||
BE-WAL:urban | 50 | BE-WAL:rural | 90 | BE:zone30 | 30 | ||||||
BE:zone* | * (number) | ||||||||||
BE-BRU:urban | 30 | BE-BRU:rural | 70 | BE:trunk | 120 | ||||||
BE:motorway | 120 | ||||||||||
Bulgaria | BG | BG:urban | 50 | BG:rural | 90 | BG:living_street | 20 | ||||
BG:trunk | 120 | ||||||||||
BG:motorway | 140 | ||||||||||
Canada | CA | CA-AB:urban | 50 (most roads), 80 (provincial highways) | CA-AB:rural | 80 (most roads) 100 (provincial highways) |
Speed limits above the statutory defaults may apply. Most provinces and territories have provisions in their traffic laws allowing speed limits higher than the defaults. | |||||
CA-BC:urban | 50 | CA-BC:rural | 80 | ||||||||
CA-MB:urban | 50 | CA-MB:rural | 90 | ||||||||
CA-ON:urban | 50 | CA-ON:rural | 80 | ||||||||
CA-QC:urban | 50 | CA-QC:rural | 80 (paved roads), 70 (unpaved roads) | CA-QC:motorway | 100 | ||||||
CA-SK:nsl | 80 [1] | ||||||||||
Czech Republic (Czechia) | CZ | CZ:urban | 50 | CZ:rural | 90 | CZ:pedestrian_zone | 20 | — | |||
CZ:living_street | 20 | ||||||||||
CZ:urban_motorway | 80 | ||||||||||
CZ:urban_trunk | 80 | ||||||||||
CZ:trunk | 110 | ||||||||||
CZ:motorway | 130 | ||||||||||
Denmark | DK | DK:urban | 50 | DK:rural | 80 | DK:motorway | 130 | — | |||
Estonia | EE | EE:urban | 50 | EE:rural | 90 | — | |||||
Finland | FI | FI:urban | 50 | FI:rural | 80 | FI:trunk | 100 | — | |||
FI:motorway | 120 | ||||||||||
France | FR | FR:urban | 50 | FR:rural | 80 | FR:zone30 | 30 | — | |||
FR:motorway | 130 / 110 (raining) | ||||||||||
Germany | DE | DE:urban | none 50 (motor_vehicle) |
DE:rural | none 100 (motor_vehicle) 80 (hgv weight > 3.5t, or trailer) 60 (weight > 7.5t) |
DE:living_street | walk | ||||
DE:bicycle_road | 30 | ||||||||||
DE:motorway | none | ||||||||||
Great Britain | GB | GB:nsl_restricted | 30 mph |
| |||||||
GB:motorway | 70 mph | ||||||||||
GB:nsl_dual | 70 mph | ||||||||||
GB:nsl_single | 60 mph | ||||||||||
Greece | GR | GR:urban | 50 | GR:rural | 90 | GR:living_street | 20 | — | |||
GR:trunk | 110 | ||||||||||
GR:motorway | 130 | ||||||||||
Hungary | HU | HU:urban | 50 | HU:rural | 90 | HU:living_street | 20 | — | |||
HU:trunk | 110 | ||||||||||
HU:motorway | 130 | ||||||||||
India | IN | IN:urban | 70 | IN:rural | 70 | IN:motorway | 120 | 100 km/h on rural dual carriageways with two or more lanes (e.g. dual-carriageway National Highways) | |||
Indonesia | ID | ID:urban | 50 | ID:rural | 80 | ID:residential | 30 |
| |||
ID:motorway | 100 | ||||||||||
Italy | IT | IT:urban | 50 | IT:rural | 90 | IT:trunk | 110 | — | |||
IT:motorway | 130 | ||||||||||
Japan | JP | JP:nsl | 60 | — | |||||||
JP:motorway | 100 | ||||||||||
South Korea | KR | KR:urban | 50 | KR:rural | 60 | KR:trunk | 80 |
| |||
KR:motorway | 80 | ||||||||||
Latvia | LT | LT:urban | 50 | LT:rural | 90 | — | |||||
Norway | NO | NO:urban | 50 | NO:rural | 80 | — | |||||
Philippines | PH | PH:urban | 30 | PH:rural | 80 | PH:motorway | 100 |
| |||
Portugal | PT | PT:urban | 50 | PT:rural | 90 | PT:trunk | 100 | — | |||
PT:motorway | 120 | ||||||||||
Romania | RO | RO:urban | 50 | RO:rural | 90 | RO:trunk | 100 | — | |||
RO:motorway | 130 | ||||||||||
Russia | RU | RU:urban | 60 | RU:rural | 90 | RU:living_street | 20 | — | |||
RU:motorway | 110 | ||||||||||
Serbia | RS | RS:urban | 50 | RS:rural | 80 | RS:living_street | 10 | — | |||
RS:trunk | 100 | ||||||||||
RS:motorway | 130 | ||||||||||
Slovakia | SK | SK:urban | 50 | SK:rural | 90 | SK:living_street | 20 | — | |||
SK:trunk | 90 | ||||||||||
SK:motorway | 130 | ||||||||||
SK:motorway_urban | 90 | ||||||||||
Slovenia | SI | SI:urban | 50 | SI:rural | 90 | SI:trunk | 110 | — | |||
SI:motorway | 130 | ||||||||||
South Africa | ZA | ZA:urban | 60 | ZA:rural | 100 | ZA:motorway | 120 | — | |||
Spain | ES | ES:urban | 50 | ES:rural | 90 | ES:living_street | 20 |
| |||
ES:zone30 | 30 | ||||||||||
30 | ES:trunk | 90 | |||||||||
20 | ES:motorway | 120 | |||||||||
Sweden | SE | SE:urban | 50 | SE:rural | 70 | — | |||||
Switzerland | CH | CH:urban[6] | 50 | CH:rural | 80 | CH:trunk | 100 | — | |||
CH:motorway | 120 | ||||||||||
Türkiye | TR | TR:urban | 50 | TR:rural | 90 | TR:living_street | 20 | Note: rarely designated | |||
TR:zone30 | 30 | ||||||||||
TR:trunk | 110 | ||||||||||
TR:motorway | 120-140 | can be either 120 (beltways), 130 (older tollways), or 140 (newer tollways) | |||||||||
Ukraine | UA | UA:urban | 50 | UA:rural | 90 | UA:living_street | 20 | — | |||
UA:trunk | 110 | ||||||||||
UA:motorway | 130 | ||||||||||
United Kingdom | UK |
| |||||||||
Uzbekistan | UZ | UZ:urban | 70 | UZ:rural | 100 | UZ:living_street | 30 | — | |||
UZ:motorway | 110 |
See also Default speed limits for a more complete and machine-readable list of implicit speed limits that also includes speed limits for motor vehicles other than cars and is sourced directly from each country's legislation (with links).
Maxspeed zones
Where the speed limit is indicated by special speed limits signposted at the zone boundaries, they can be tagged as follows:
maxspeed=30
maxspeed:type=DE:zone30
or less commonly with maxspeed=DE:zone:30.
Note: The dedicated key zone:maxspeed=* overlaps with both methods and can be used for this purpose in combination with an explicit maxspeed value, e.g zone:maxspeed=DE:30 and maxspeed=30.
Extended tagging
Vehicles
Where different speed limits are posted for different classes of vehicles, these should be specified using maxspeed:<vehicle>=*. The possible values for <vehicle>
correspond to the values for transport modes of the key access=* (see also Examples).
Note: Where a lower blanket speed limit is applied for certain classes of vehicle across all roads within the jurisdiction, then this should not be tagged at the individual road level.
For example:
- maxspeed:hgv=* - applying to "heavy goods vehicles" (=trucks)
- maxspeed:bus=* - applying to buses
Driving direction
- Main article: Forward & backward, left & right
Where different speed limits are specified for each driving direction, those can be specified using maxspeed:forward=* resp. maxspeed:backward=*, whereas forward
applies to the speed limit for the same direction as the OSM way and backward
to the speed limit for the opposite direction.
Lanes
Where different speed limits are specified for each lane of a road, those can be specified using maxspeed:lanes=*. Each lane’s maximum speed has to be separated with the “|” character. The first maximum speed is the maximum speed of the leftmost lane (viewed from the direction of the OSM way), the second maximum speed is the speed of the lane right from the leftmost lane and so on until the rightmost lane.
Further, if they should be specified for each driving direction separately the key maxspeed:lanes:forward=* resp. maxspeed:lanes:backward=* can be used, whereas lanes:forward
applies to the speed limit of the lanes for the same direction as the OSM way and lanes:backward
to the speed limit of the lanes of the opposite direction. See therefore also the Examples as well as the article about mapping individual lanes.
Time or other conditions
- Main article: Conditional restrictions
Example: The maximum speed is 30 km/h between 7am and 2pm on workdays (in Germany: Monday-Saturday, but not on public holidays) but otherwise is 50 km/h as implicit speed limit in the city:
maxspeed=50
source:maxspeed=DE:urban
maxspeed:conditional=30 @ (Mo-Sa 07:00-14:00; PH off)
Other considerations
The maxspeed=* tag should ideally be added to only the segment of roadway for which the speed limit applies. Depending on the jurisdiction, a speed limit may take effect at a speed limit sign [1][2], at a solid line painted across the roadway near the sign [3], at a fixed distance away from the sign, or at the nearest intersection.
Examples
Identification | Tagging | Remark |
---|---|---|
maxspeed=60 + maxspeed:type=sign | ||
maxspeed=50 mph + maxspeed:type=sign | The speed limit is specified in the unit which is legally defined and will not be converted to km/h. | |
maxspeed=50 + source:maxspeed=DE:urban maxspeed=100 + source:maxspeed=DE:rural |
On all roads in Germany, where no explicit speed limit is defined, the corresponding implicit values can (and should) be specified. | |
10 knots | maxspeed=10 knots | The speed limit is specified in the unit which is legally defined and will not be converted to km/h. |
maxspeed:variable=* | The (variable) speed limit is announced on speed limit signs. | |
maxspeed=60 mph + maxspeed:type=GB:nsl_single maxspeed=70 mph + maxspeed:type=GB:nsl_dual + dual_carriageway=yes |
An implicit speed limit of 60 miles per hour (or 70 mph on dual carriageways) on a road in the UK based on a "national speed limit" sign. | |
maxspeed:lanes=100|100|80 | A speed limit of 80 kilometres per hour on the rightmost lane on a road with an assumed general speed limit of 100 kilometres per hour. | |
maxspeed=80 | A speed limit of 60 kilometres per hour valid only for heavy good vehicles - 80 kilometres per hour otherwise. | |
maxspeed:conditional=40 @ (Mo-Fr 08:00-09:30, 14:30-16:00;PH off;SH off) | Conditional speed limits during school times. See Conditional restrictions for seasonal or time of day changes. | |
maxspeed=80 + maxspeed:conditional=60 @ wet | Wet weather conditional speed limit | |
maxspeed:conditional=60 @ (maxweightrating>7.5) | 60 km/h for vehicle with a max allowed weight of above 7.5t. See also maxweightrating=* | |
It can also be used on the Relation:enforcement. See Relation:enforcement#Example 3: Speed Camera for examples. |
Services
- JOSM
- The default internal mappaint style displays the value of maxspeed on a node if tagged together with traffic_sign=* as traffic sign.
- The mappaint style maxspeed displays the value of maxspeed on ways as coloured underlay.
- StreetComplete has a quest (disabled by default) that asks about max speed info
- MapComplete Maxspeed editor (does not support the use of *:urban tags)
- Other services:
- Worldwide maxspeed overlay. Only compatible with maxspeed default unit. No support for mph.
- Overpass turbo queries. Does not read values with km/h or mph, only the implied default unit.
- Maxspeed coloured similar colour style to previous ITO map (Yellow for maxspeed of 'none'. dark blue for 130/120/110. light blue for 100, purple for 90/80, red for 70/60 orange for 50 and green for 5/10/15/20/30/40)
- Maxspeed major roads coloured similar colour style to previous ITO map (Yellow is used for ways with maxspeed set to 'none', dark blue for 130/120/110, light blue for 100, purple for 90/80, red for 70/60, orange for 50 and green for 30
Developers
Parser
Regular expression for numeric values only:
^([0-9][\.0-9]+?)(?:[ ]?(?:km/h|kmh|kph|mph|knots))?$
Regular expression which catches numeric values and implicit values, e.g. like none
or signals
:
^([^ ]+?)(?:[ ]?(?:km/h|kmh|kph|mph|knots))?$
One mile per hour corresponds to 1.609 km/h and one knot to 1.852 kilometres per hour.
Routers
Router developers should be aware that the highway=* tag is not necessarily a good proxy for speed limits in some jurisdictions. For example, in the U.S. state of Ohio, many factors affect a roadway's speed limit, to the extent that rural, unpaved highway=unclassified ways have a higher speed limit by default (55 mph) than some urban highway=motorway ways (50 mph).
Possible tagging mistakes
See also
Related keys
- minspeed=* - for the minimum speed
- access=* - for other restrictions
- source:maxspeed=* or maxspeed:type=* - for the source of the speed limit
- traffic_sign=* - for single traffic signs of the restriction
- highway=speed_camera - for an enforced maxspeed
- highway=speed_display - a dynamic electronic sign that displays the speed of the passer-by motorist
- maxspeed:advisory=* - for advisory speed limit, typically on on/off ramps and curves
- maxspeed:variable=* - Indication that the speed of a way is not static (e.g. fixed signs) but dynamic (e.g. variable-message sign)
- maxspeed:conditional=* - Specifies a conditional maximum legal speed limit on a road, railway or waterway, which only applies under certain circumstances
- Relation:enforcement + enforcement=maxspeed - permanently installed devices that measure and document traffic violations, such as maxspeed
Related topics
- maxspeed:practical=* - proposal to specify what speed can be realistically achieved when speed limits and other information are not sufficient to give a realistic picture. Rejected but in use.
- Overview of possible units
- Transport modes of the key access=*
- Detailed overview of implicit speed limits
- Default speed limits (speed limits in various territories applying if no explicit speed limit is signed)
- Description of the lanes suffix for mapping individual lanes
- General article about speed limits
- Sophox query for roads with the widest range of allowed speeds (dead link since 2020)
Maps showing max speed data
- openstreetbrowser showing max speed data
- Max Speed via Overpass - Map showing speed limits. Wait for lines to show then click and edit.
- Maxspeed Freshness Tool - Shows the freshness of the maxspeed tag
- https://graphhopper.com/maps/ – once the route is determined, the speed can be seen on the graph at the bottom by changing to 'max_speed'.
- speed.openmap.lt (only Lithuania, vector speed limit map)
- CyclOSM A cycle render map who render road under 32km/h with cyan shading.
Notes and references
- ↑ Applies to both urban and rural areas, where no signs exist. That said, most roads and highways in Saskatchewan have posted limits, commonly 50 in urban areas, 80 in most rural roads, 100 in undivided provincial highways, and 110 in divided provincial highways.
- ↑ https://lebenswerte-staedte.de
- ↑ 130 km/h is the recommended maximum speed on motorways, as indicated by a square blue sign (round blue sign = minimum speed). Many sections of the German motorway network are now covered by speed limits, usually ranging from 80 to 130 km/h (140 km/h as speed limit is being tested in Lower Saxony -some politicians are against it, because 140 km/h is over the recommended maximum speed, depending on local conditions (i.e., frequent traffic, terrain, etc.). It is usual for drivers involved in crashes who were exceeding the 'recommended' speed limit to be held to be at least partly at fault, regardless of the circumstances of the crash, and insurance companies have the right to withhold payment. Already more than 50% Autobahns now have a (partially variable) speed limit. Vehicles also must be able to go faster than 60 km/h. Roughly 30% of German Autobahn have permanent limits. An additional 17% have at least partial limits depending on time, weather or traffic. Study on the speed limit on German Autobahn. Archived 25 May 2013 at the Wayback Machine.
- ↑ Refer to the Toll Regulatory Board website
- ↑ Refer to Section II (D) (1) of Joint Memorandum Circular No. 2018-001, accessible via the Department of Transportation website
- ↑ This value seems unnecessary, since the speed limit of 50 km/h in urban areas is always signed at the entrance of the settlement by road sign 2.30.1.