Sorry for a long post, but topic is tricky. If anyone manages to read entire one I would appreciate it.
Surveying speed limits is useful but horrifyingly complex.
Even seemingly clear cases, where numeric speed limit are signed, has problem with correctly marking where their applicability ends.
Aktron / Wikimedia Commons - CC-BY-SA-4.0
In some countries it may apply under next crossing - with extra fun what counts as a crossing for this legal purpose.
In some “until further notice” which can happen in multiple ways.
Many have also zone signs, which are cancelled by end zone sign and regular expiration for other signs.
You can get speed limits differing depending on lane, depending on vehicle type, different in forward and backward direction on the same way.
And combinations of that, and unlimited complexity of maxspeed:conditional (paging @minh_nguyen for some horrific but technically still applying speed limits).
Large speed limit zones may make surveying quite complex. Sometimes they can be quite confusing.
But overall signed speed limit or signed allowed unlimited speed is fairly doable.
But you also get cases which are worse. Where you have no signed speed limit, but it is left implied and falls back to default speed limit defined in legislation.
On borders of Poland following “helpful” default speed limit welcomes travelers:
It would be nice if mapper could answer “speed limit is implied here” if not sure which specific rule applies, rather than tag something wrong or incomplete or be unable to tag anything.
Obviously, ATYL applies but in my case I want to add support for such tagging in editor (StreetComplete) and I do not want to do this if OSM community disagrees.
And when making an editor there are some cases where asking user about exact speed limit is likely to result in nonsense answer, even after putting massive effort into interface guiding mapper.
For example in United States where speed limit is almost always signed with numeric speed limit signs. Signs such as “maximum speed 75” are basically always present. As I understand, speed limit falling back to default speed limits set by legislation are very rare. The problem is that it is not merely built-up / outside settlements distinction like in much of Europe. It is a bizarre mix of piles of rules, defined in various government levels. Due to their immense complexity and rarity how often they apply, noone bothers to learn them.
Just collecting all of them and monitoring law for changes works would probably require full time work of multiple people.
And that is not the worst part - many of them are poorly defined, and there is no way to ask mapper in way that anyone would answer it correctly.
For example, in Colorado: what is in legal terms threshold between “rural winding mountain road” and “rural open mountain road”?
And “Residence district” in Iowa that has own default speed limits on roads within it has specific definition.
the territory within a city contiguous to and including a highway, not comprising a business, suburban, or school district, where forty percent or more of the frontage on such highway for a distance of three hundred feet or more is occupied by dwellings or by dwellings and buildings in use for business
That is nonstarter to expect mappers to reliably apply that definition (in very rare cases where it applies)
And just burden on translators to translate that legalese is unreasonable.
See Default speed limits - OpenStreetMap Wiki for more gory details if anyone is interested. There is far more of such fun.
Asking mappers to distinguish those is just nonworkable, but tagging for “no signed speed limit here, default speed limits applies” is still possible for them and is helpful to record. And it is helpful as it points rare mappers interested in and capable of dealing with this rules to tag it somehow in more detail. And it also allows to avoid listing such roads as “speed limit missing, please survey”.
Poland has much simpler distinction but distinguishing reliably between PL:urban and PL:rural is far from easy. Among complications:
- sometimes you need to survey extra kilometer to check whether urban/rural transition is signed
- PL:urban is intended to be signed also in more densely populated village areas
- sometimes it is not signed in dense built-up areas
- sometimes it is signed in empty fields or forests
giving mappers option “no signed speed limit” would limit applying of wrong PL:urban and PL:rural, while not blocking mapping by more experienced mappers.
And if you are editing tags directly then have fun remembering that in Poland “dual carriageway with 2 or more lanes in each direction” and “dual carriageway with 1 lane in each direction” get different default speed limits, in Alaska road with asphalt or concrete surface get different speed limits depending on whether they are in an unincorporated area and so on.
Escape hatch in form of being able to tag “default speed limit of some jkind applies” would help.
The same applies in many more places.
So I am proposing speed_limit_implied=yes
as new tag for that, but I am also open to better names if anyone see one.
In some areas it would exceptional and rare and in some it may be more commonly applicable. In some it may be likely and possible to fix, in some it may be unlikely to be replaced by more specific tagging.
I am asking this as I am considering working on maxspeed overlay in StreetComplete that would be displaying various already tagged speed limits, highlight missing ones and allow to add missing and edit existing.
Doing it is mammoth-sized task due to immense complexity. And I judge it to be not viable at all to implement properly without key to mark “no speed limit signs here”.
By “properly” I mean here that tagging when used by people who are not experts on speed limit law can reliably improve quality of OpenStreetMap data. Obviously, completely avoiding bad edit is impossible but it should be kept to a very low rate.
See Add a maxspeed overlay · Issue #4282 · streetcomplete/StreetComplete · GitHub for issue tracking this idea.
Alternative solutions:
(1) Do not implement speed limit overlay in StreetComplete if it requires such tagging, close feature request with rejection.
(2) Disable speed limit overlay by default, enable only in areas where even without using this tag it is likely that useful answer will be given by experts.
But given how much work such feature would require: outcome is probably the same as “give up on such feature”
(3) Ask local communities like USA whether they would welcome such tagging, and have speed limit overlay enabled only there and enable it by default.
It would be disabled completely in other areas.
(4) use different key, maybe even put it into maxspeed_type (maxspeed:type=speed_limit_implied
?). Start using maxspeed=implicit
on roads (highway=lines
)?
(4b) use fixme - but fixme is for freeform tags, and this info in some cases would be also useful to automatically deterministic
Would it be fine for StreetComplete to start using speed_limit_implied=yes
?
- yes, it seems fine for StreetComplete to start using
speed_limit_implied=yes
- no, StreetComplete should not start using
speed_limit_implied=yes
(if you are against: commenting why would be really welcome)
disclaimer: I proposed something like that already in January 2021 on tagging mailing list, and there was no ethusiastic support. Either it is in fact a bad idea, or I explained it poorly or people who supported it had no real option to express support. Or there was other reason for that.
I was writing it partially based on feedback from that thread.
If anyone is still reading: thanks! Comments, votes, reactions are welcomed!