|Specifies the maximum legal speed limit on a road, railway or waterway|
|Used on these elements|
|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 kilometres per hour. If the speed limit should be specified in a different unit the unit can be added to the end of the value, separated by a space (see Examples). The tag is also used on nodes to specify maxspeed traffic signs.
The maximum speed limit for a highway=*, railway=rail, waterway=river etc can be specified as follows (these are tagging examples for linear features, you can additionally map the traffic signs themselves on a node at the sign position with traffic_sign=maxspeed and maxspeed=*):
|The maximum fixed numeric speed limit, followed by the appropriate unit if not measured in km/h when no units 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).|
||maxspeed:variable=*||Indicates that there is a (variable) maximum speed limit displayed on electronic variable signs.|
Please do not use this tag for railway lines and tag instead the maximum allowed speed there.
||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.|
||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 |
||maxspeed=<countrycode>:<zone type>||Only in some places, notably Romania and Russia, it is common to find that maxspeed holds a value of the form '<countrycode>:<zone type>'. 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. The format includes a country code followed by a ':' and a zone identifier (For example 'RO:urban'). This non-numeric notation is used to avoid the correction of an entire country map due legislation changes regarding maximum speed. In all other places it is more common to place the appropriate numeric value in maxspeed and then identify the type of limit in the '<countrycode>:<zone type>' format using either source:maxspeed=* or maxspeed:type=*. For more information on this, and for a table of common values see Speed limits.|
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.
- 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.
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
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 , at a solid line painted across the roadway near the sign, at a fixed distance away from the sign, or at the nearest intersection.
|maxspeed=60 + source:maxspeed=sign||Alternatively maxspeed=60 km/h can be used.|
|maxspeed=50 mph + source:maxspeed=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
||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 + source:maxspeed=sign||A speed limit of 60 miles per hour on a road in the UK based on a "national speed limit" sign.|
|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|
- Other services:
Regular expression for numeric values only:
Regular expression which catches numeric values and implicit values, e.g. like
^([^ ]+?)(?:[ ]?(?:km/h|kmh|kph|mph|knots))?$
One mile per hour corresponds to 1.609 km/h and oneto 1.852 kilometres per hour.
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).
- minspeed=* for the minimum speed
- access=* for other restrictions
- source:maxspeed=* 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
- Max Speed via Overpass - Map showing speed limits. Wait for lines to show then click and edit.
- Proposed features/Practical maxspeed - 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.
- Average speed per way - currently nonfunctional - an attempt to collect/derive useful average speed information for routing
- Overview of possible units
- Transport modes of the key access=*
- Detailed overview of implicit speed limits
- Description of the lanes suffix for mapping individual lanes
- General article about speed limits
- Proposed features/Dynamic maxspeed: Alternative to maxspeed=signals
- CyclOSM A cycle render map who render road under 32km/h with cyan shading.