streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.72k stars 343 forks source link

Misuse of source:maxspeed for edits in UK #492

Closed SK53 closed 6 years ago

SK53 commented 6 years ago

Some years ago a long discussion on talk-gb agreed that information of about the type of speed limit would be added in a tag maxspeed:type and source:maxspeed would be used, as expected, for information about how the maxspeed was obtained (survey, aerial imagery etc). Therefore adding source:maxspeed tags with values like GB:rural is strongly deprecated. I realise that usage may be different elsewhere, but I think it is important that mapping tools respect community consensus.

The UK consensus was to always add a numeric value in maxspeed, use maxspeed:type to clarify whether the value was absolute (explicitly signed as such) or a national speed limit (denoted by the black bend on white sign). How the maxspeed information was obtained (survey, aerial etc) belongs in the source:maxspeed tag. Adding a source:maxspeed tag alone is very poor practice and almost certainly will not be recognised by any data consumers.

Additionally the valid values for maxspeed:type in the UK are:

There is no 'rural' speedlimit tag in the UK, and limited need to map generic urban speedlimits. Urban speed limits are more-or-less universally signed. Historically, some where not and places with streetlights did default to the national urban limit (so GB:urban is valid, but not very useful).

There is a residual tail of source:maxspeed tags with type values but these date back to before the discussion alluded to as above.

westnordost commented 6 years ago

Would source:maxspeed=rural+lanes>=4 be equivalent to GB:nsl_dual?

trigpoint commented 6 years ago

Would source:maxspeed=rural+lanes>=4 be equivalent to GB:nsl_dual?

No, as SK53 says there is no rural speed limit in the UK. the national speed limit is perfectly possible in a built up area.

GB:nsl_dual is determined by it being a dual carriageway, it has nothing to do with the lane count.

HTH

trigpoint commented 6 years ago

For example, here the speed limit changes from gb:nsl_single to dual https://www.mapillary.com/app/?focus=photo&pKey=_y3T1isTcA9f_g2hMZ_L9A&lat=52.90009551&lng=-2.59772864&z=17

and here returns to nsl:single https://www.mapillary.com/app/?focus=photo&pKey=iOyNeMsRmFzhZe320OMLUg&lat=52.89876199&lng=-2.56329404&z=17

westnordost commented 6 years ago

Ah, so it is oneway=yes. So, the difference between gb:nsl_single and gb:nsl_dual is that one is oneway and the other is not?

SK53 commented 6 years ago

No: for the dual speed to apply the road must be a dual carriageway which will usually be 2 lanes in each direction, although there are exceptions. There are undoubtedly oneway roads where the 60 mph national speed limit applies.

I realise this makes it difficult to provide a value in street complete because the information requires two questions. You may wish to consider using a neutral value (perhaps with a fixme), for instance maxspeed:type=GB:nsl_unspecified or GB:national, and fixme=precise nature of national speedlimit not determined.

It is quite likely that the most common cases are minor roads whether in the town or country: so if you need a rural/urban divide 30 mph & GB:nsl_single are reasonably save defaults (for now: much of the country is moving to 20 mph limits in towns).

On 16 August 2017 at 18:47, Tobias Zwick notifications@github.com wrote:

Ah, so it is oneway=yes. So, the difference between gb:nsl_single and gb:nsl_dual is that one is oneway and the other is not?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/westnordost/StreetComplete/issues/492#issuecomment-322847736, or mute the thread https://github.com/notifications/unsubscribe-auth/AFM0EiYkj4sicsIeiz-P3Gs35v0gAbqSks5sYysbgaJpZM4O43-9 .

westnordost commented 6 years ago

Since you mention exceptions, what would the user need to be asked exactly to differentiate between nsl_single and nsl_double?

SK53 commented 6 years ago

If they are a regular user of British roads: "Is this a dual carriageway?" But this will seem absurd for a minor road in Wales. In some cases it is possible that the two roads making up a dual carriageway are in a shared relation.

I do think that knowing that the national speed limit applies is probably the most useful thing for several reasons:

On 16 August 2017 at 19:14, Tobias Zwick notifications@github.com wrote:

Since you mention exceptions, what would the user need to be asked exactly to differentiate between nsl_single and nsl_double?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/westnordost/StreetComplete/issues/492#issuecomment-322855044, or mute the thread https://github.com/notifications/unsubscribe-auth/AFM0Er1Hs3-K3UgQfvod0vqs_mc_gfG7ks5sYzFogaJpZM4O43-9 .

westnordost commented 6 years ago

I am not sure if I understand you fully. If you are basically saying that if the survey-user (through StreetComplete) would at least answer that "national speed limit applies", this is a useful thing, then I understand. But how to tag this unspecified-national-road then (in Britain)? I wouldn't want to introduce new tags or fixmes with StreetcCmplete.

trigpoint commented 6 years ago

I am not sure what you mean by the last pargraph, maybe ask if it is a single or dual carriageway?

westnordost commented 6 years ago

I guess that would be the necessary thing to ask. So, to summarize the request made with this ticket is an exception in behavior made for streets in the UK:

I am going to post some objections towards implementing this special behavior later, I just want to understand and document first what exactly should be done for this ticket to be solved.

mrenvoize commented 6 years ago

There are basically five types of speed limit in the UK: Motorway (always 70 unless it's "variable" in which case electronic overhead signs change the speed limit depending on traffic conditions. National Speed Limit (Dual Carriage Way). National Speed Limit (Single Carriage Way). Urban (30) and finally 'Signed'.

I'm not up to date on the tagging of these myself. But hope that explanationay help to explain why the tags exist in their current form in the UK.

Sent from my Sony D5803 using FastHub

mrenvoize commented 6 years ago

A signed limit can be found pretty much anywhere except for motorways. If not signed, the road could be any of the other limits. It may be crazy, but even a tiny rural Road where you would dream of driving at 60 will have an official limit of national Speed Limit if it's not otherwise signed.

Sent from my Sony D5803 using FastHub

SK53 commented 6 years ago

Certainly use maxspeed:type not source:maxspeed. This is probably the most important objection in my OP, as it overrides a long-standing convention of the relevant community.

Introducing rural and urban tag values is not critical, but not particularly useful either. I always worry when one tool introduces a tagging practice which is fundamentally different from that established by the community. I'm perfectly aware that this makes life difficult for a worldwide application. In general if this continue to be used they should be regarded as fixmes.

30 mph limits do not have repeater signs: the old rule (not repealed) was if a road had streetlighting the speed limit was 30 mph unless another speedlimit was posted. This is the closest to urban, but technically it applies to any section of road, whether in a town or not. You may need to look at the proportion of answers rural/urban in the UK to see if this is an issue.

If no-one is answering urban then you can ask the single or dual carriageway question. Otherwise stick with urban/rural and perhaps set the maxspeed:type=GB:national. It would then remain for local mappers to add the maxspeed tag.

HTH

westnordost commented 6 years ago

I thought the whole thing through again. I think I will actually change that for implicit street limits, always the maxspeed:type tagging scheme is used, for every country. Because:

  1. StreetComplete is kinda misusing source:maxspeed, even in the documented not-accepted-by-the-British interpretation of the tag, because source:something always refers to something. But StreetComplete does not set that something (maxspeed) in that case.
  2. the fundamental critique of source:maxspeed is correct anyway - the convention is that source:* describes the source of the tag. An implicit speed limit type/zone is not a source.
  3. the definition of maxspeed:type is solid and there is no reason to not also use it outside of Great Britain.
  4. worldwide data consumers need to look at both maxspeed:type, source:maxspeed (and zone:maxspeed) anyway to derive a concrete speed limit for an implicit one, so it shouldn't make much difference anyway.
  5. source:maxspeed can be (automatically) inferred from maxspeed:type, but not the other way round, as source:maxspeed may contain other values, such as sign, survey, imported data from open datasource XYZ...

I reckon that is a relatively weak line of argumentation, because one can argue that maxspeed:type also refers to a maxspeed, but I'd say, less so, plus, point 2 and 5 definitely speaks for maxspeed:type.

Also, I need to note this down here: This is not an argumentation about the deprecation for source:maxspeed or anything but just my rationale which tag among several alternatives this app shall use.

And second, don't always use the rural/urban value scheme, but implement country-wise exceptions to that if other things determine the implicit speed limit. In that case, so far GB will be the only exception.

@SK53 : Question - can nsl_single and nsl_dual always be inferred from oneway=yes/no?

SK53 commented 6 years ago

Logic seems sound to me. Perhaps I should add something on the wiki (and look-up zone:maxspeed). Historically some mappers wanted to have maxspeed=national as I think is done in some other countries, but there was a strong preference for an explicit number and equally a dislike of abuse of the source tag.

I dont think you can be absolutely sure that a oneway road in this situation is a dual carriageway but I would think the number of exceptions is rather low.

On 30 August 2017 at 19:36, Tobias Zwick notifications@github.com wrote:

I thought the whole thing through again. I think I will actually change that for implicit street limits, always the maxspeed:type tagging scheme is used, for every country. Because:

  1. StreetComplete is kinda misusing source:maxspeed, even in the documented not-accepted-by-the-British https://wiki.openstreetmap.org/wiki/Key:source:maxspeed interpretation of the tag, because source:something always refers to something. But StreetComplete does not set that something (maxspeed) in that case.
  2. the fundamental critique of source:maxspeed is correct anyway - the convention is that source:* describes the source of the tag. An implicit speed limit type/zone is not a source.
  3. the definition of maxspeed:type is solid and there is no reason to not also use it outside of Great Britain.
  4. worldwide data consumers need to look at both maxspeed:type, source:maxspeed (and zone:maxspeed) anyway to derive a concrete speed limit for simply that type, so it shouldn't make much difference anyway.
  5. source:maxspeed can be (automatically) inferred from maxspeed:type, but not the other way round, as source:maxspeed may contain other values, such as sign, survey, imported data from open datasource XYZ...

I reckon that is a relatively weak line of argumentation, because one can argue that maxspeed:type also refers to a maxspeed, but I'd say, less so, plus, point 2 and 5 definitely speaks for maxspeed:type.

Also, I need to note this down here: This is not an argumentation about the deprecation for source:maxspeed or anything but just my rationale which tag among several alternatives this app shall use.

And second, don't always use the rural/urban value scheme, but implement country-wise exceptions to that if other things determine the implicit speed limit. In that case, so far GB will be the only exception.

@SK53 https://github.com/sk53 : Question - can nsl_single and nsl_dual always be inferred from oneway=yes/no?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/westnordost/StreetComplete/issues/492#issuecomment-326080750, or mute the thread https://github.com/notifications/unsubscribe-auth/AFM0EtSllOHXuJUxk59Hnxrw_59yvIMSks5sdau3gaJpZM4O43-9 .

westnordost commented 6 years ago

It's just that many users might not be able to answer if it is single or dual carriageway, also, I would say that asking users for this street lighting thing is also not very straightforward. So, for Britain, I lean towards tagging everything implicit (minus trunk, motorway, living_street) as maxspeed:type=GB:national or even posing the rural/urban question and tagging as such if that might be helpful to determine things and will not spur protest in GB.

trigpoint commented 6 years ago

maxspeed:type=GB:national would not be appropriate as it does not distinguish between single and dual carriageways.

westnordost commented 6 years ago

And how will the user, @trigpoint ?

westnordost commented 6 years ago

Any comment regarding what I last said from you, @SK53 ?

westnordost commented 6 years ago

So,... what about this then? @trigpoint @SK53

westnordost commented 6 years ago

I now opened a topic in the forum, so it can be discussed by a larger audience. https://forum.openstreetmap.org/viewtopic.php?id=60025

westnordost commented 6 years ago

Actually, I implemented that (do not use rural/urban but nsl_single/dual) now. Question asked is:

"Are the carriageways of this road here physically separated (i.e. through a barrier)? The default speed limit depends on whether this is the case or not."

Regarding maxspeed:type, I will still wait some days if any cogent arguments turn up that speak against the switch from source:maxspeed to maxspeed:type in the German forum (since source:maxspeed mostly originated from Germany).

systemed commented 6 years ago

@westnordost The UK forum is probably a smaller audience than here :) - most UK users use the talk-gb mailing list.

On the specific question

Question - can nsl_single and nsl_dual always be inferred from oneway=yes/no?

Not always - for example, the 'flares' leading into a roundabout (and indeed the roundabout itself) are one-way, but not formally dual carriageways. Where people have mapped pedestrian islands and other road-centre obstructions by splitting the way, that too would not be classed as a dual carriageway.

Aside from roundabouts, flares and slip-roads, however, I'd estimate that well over 95% of rural one-way NSLs are indeed dual carriageways. I've been trying to think of counter-examples and all of them have an explicitly signed speed limit (rather than NSL). You can probably detect flares by their short length, roundabouts by the junction=roundabout tag, and slip-roads by the _link tagging.

Edit: https://goo.gl/maps/91NnxqgUaeL2 is a rural NSL one-way road which isn't a dual carriageway. (@trigpoint may know it - it's in his part of the world!) Apologies for GSV link.

westnordost commented 6 years ago

See my last commit, the British user will have to always answer the dual carriageway question.

On 11 October 2017 13:27:02 CEST, Richard Fairhurst notifications@github.com wrote:

@westnordost The UK forum is probably a smaller audience than here :) - most UK users use the talk-gb mailing list.

On the specific question

Question - can nsl_single and nsl_dual always be inferred from oneway=yes/no?

Not always - for example, the 'flares' leading into a roundabout (and indeed the roundabout itself) are one-way, but not formally dual carriageways. Where people have mapped pedestrian islands and other road-centre obstructions by splitting the way, that too would not be classed as a dual carriageway.

Aside from roundabouts, flares and slip-roads, however, I'd estimate that well over 95% of rural one-way NSLs are indeed dual carriageways. You can probably detect flares by their short length, roundabouts by the junction=roundabout tag, and slip-roads by the _link tagging.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/westnordost/StreetComplete/issues/492#issuecomment-335779450

-- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.

westnordost commented 6 years ago

@systemed Another case where this may be is when a road is simply not mapped that much in detail in OSM that the two carriageways are actually drawn separate. Probably this happens very seldomly in reality, but this app should not assume something if it can be 100% sure.

westnordost commented 6 years ago

All done.

systemed commented 6 years ago

@westnordost Yep. To be fair I've never seen that in the UK (our road network is well mapped) but it's reasonably common in the US.