NOTICE: is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum

I am currently doing some processing of OSM highway data, and attempting to identify speed limits for highways. Of course, some highways are tagged with maxspeed=*, but where this is absent or clearly incorrect, I would like to assume a default speed limit for the road based on its type.

In the UK, the default national speed limit is 70mph on motorways and dual carriageways, 60mph on other roads. So, for example, a "highway=primary" road could be either 70mph or 60mph[1].

I understand that dual carriageways are normally mapped as separate ways, but as far as I can from the wiki, there is no way to determine from highway tags that the way is part of a dual carriageway.

Is the only/correct way to determine this, to check whether there is a relation that includes the way, and is tagged as a dual carriageway?

[1] There is an additional complication - the speed limit for a highway may vary according to the vehicle type, weight etc., which may not be representable using the maxspeed tag. I guess that's a separate question, though!

asked 28 Feb '13, 16:47

Dave's gravatar image

accept rate: 0%

edited 28 Feb '13, 16:56


In some areas (Derbyshire's an example), many / most "highway=primary" roads aren't national limit (either 60 or 70 depending on carriageway separation) but are actively signed at 50mph or lower. Where maxspeed's missing, you probably need to get out and survey.

(28 Feb '13, 16:51) SomeoneElse ♦

Additional complications: There's many dual carriageways that aren't part of a route relation (because they're not part of a route), and extreme cases have different speed limits for day and night and by type of vehicle (such as Montana's very common "reasonable and prudent" daytime speed, 65 daytime HGV/PSV speed, 55 night speed, and 45 night HGV/PSV speed. Or Oregon's "no speed limit but basic speed rule still applies and it may really be 55 even when outside speed zones" speed limit, with a mandatory 55 for HGV even when there is no speed zone.

(03 Mar '13, 09:11) Baloo Uriza

In OSM, most dual-carriageways are not specifically tagged as such. But the separate ways will be tagged as oneway=yes. So in the UK, you can probably assume that a way tagged as highway=trunk or highway=primary plus oneway=yes will be part of a dual-carriageway. Though there may be some exceptions to this.

Many major roads are mapped with route relations, but these usually don't specify if it is dual-carriageway or not. Some route relations include both single and dual-carriageway sections of a route.

You could do some sort of query in GIS software, ie if there are 2 ways running in opposite directions approximately parallel to each other, and both tagged with highway=primary/trunk, and oneway=yes, and both have the same ref/name tag, then they are part of a dual carriageway. But this is rather complicated, and may require a lot of processing.

Of course, even if a road is dual-carriageway, it may not have a speed limit of 70 mph. eg there may be a lower speed if it passes through an urban area, or some other restriction. So best to survey the roads and tag the actual speed where possible.

permanent link

answered 28 Feb '13, 18:28

Vclaw's gravatar image

accept rate: 22%

edited 28 Feb '13, 18:51


Thanks, that's useful information. Looking for parallel ways is an option, though I would do that in my own codespace as I'm importing and processing the OSM data myself. Of course the maxspeed tag (where present and sensible-looking) would always take precedence.

Unfortunately, as I'm trying to build a database of all roads within the EU (and eventually beyond), getting out and surveying them isn't really an option!

(01 Mar '13, 13:11) Dave

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 28 Feb '13, 16:47

question was seen: 4,091 times

last updated: 03 Mar '13, 09:13

NOTICE: is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum