Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename "Closed road" to something more appropriate #443

Closed
RudyTheDev opened this issue Apr 25, 2022 · 16 comments
Closed

Rename "Closed road" to something more appropriate #443

RudyTheDev opened this issue Apr 25, 2022 · 16 comments
Labels
bug Something isn't working

Comments

@RudyTheDev
Copy link

"Closed road" is a bad label for highway=construction because a closed road does not imply "under construction". It could easily be interpreted to mean something like access=no or abandoned:highway=*, nor is this something one would obviously select from search results, like at least "road under construction".

And the bigger issue is that any highway=construction is called "road", whether a path or bridge or anything else. So a pedestrian bridge appears as "closed road".

Before trying to figure out the best way to name and/or separate this, is there a rationale for this label?

@bhousel
Copy link
Member

bhousel commented Apr 25, 2022

Before trying to figure out the best way to name and/or separate this, is there a rationale for this label?

context is here: openstreetmap/iD#5599

This preset isn't for a "Road under construction"

It's for something like a bridge out or other medium-to-long term closure that affects routing.
The important thing is to make it simple for people to tag roads that are closed.

@RudyTheDev
Copy link
Author

This preset isn't for a "Road under construction"

What do you mean? It is set for highway=construction, which is by definition for "roads/paths under construction". Something is being built or renovated and inaccessible for a longer period. That is not the same as "road closed", which can be for various reasons and construction is only one of them. The label is wrong.

It's for something like a bridge out or other medium-to-long term closure that affects routing.

That is not what highway=construction means. That's just access=no, which all routers know about.

@bhousel
Copy link
Member

bhousel commented Apr 25, 2022

The preset matches on both highway=construction and access=no
(please read the discussion on the ticket I linked to)

https://github.com/openstreetmap/id-tagging-schema/blob/9fdecc983443ce75185c2923caae9f7703f2cae4/data/presets/highway/construction.json

@RudyTheDev
Copy link
Author

Yes, I have read the discussion. I had even commented on it. I am asking about the label specifically. I see you implemented the "Closed road" label, but you never explained why something that requires highway=construction has a label that implies more than construction. Having access=no does not change the meaning of highway=construction. It's still a "way under construction" but with an explicit (presumably, surveyed) access tag. This makes it one type of "closed road", yes; but a "closed road" can be closed for different reasons. The label makes it sound like it applies to any closed road. This is misleading.

@bhousel
Copy link
Member

bhousel commented Apr 25, 2022

Having access=no does not change the meaning of highway=construction

It absolutely does.

@1ec5
Copy link
Contributor

1ec5 commented Apr 25, 2022

Before trying to figure out the best way to name and/or separate this, is there a rationale for this label?

context is here: openstreetmap/iD#5599

This preset isn't for a "Road under construction"

It's for something like a bridge out or other medium-to-long term closure that affects routing. The important thing is to make it simple for people to tag roads that are closed.

“Under Construction” is problematic because people are inclined to use it on roads that are only undergoing minor construction, like widening or restriping. Misuse of this preset would break the routing graph. On the flip side, “Closed Road” is also problematic because plenty of roads are closed to some or all traffic for reasons other than construction. But long-term road closures are more nuanced than a preset alone can adequately describe.

As I understand it, the preset is applicable if and only if both conditions are satisfied:

  • The road is under construction – the user can only indicate this using the preset.
  • The road is off-limits – the user normally indicates this using the Access field, but it’s included in the preset for convenience.

Is there a name for the preset that better communicates both of these requirements? “Road Closed for Construction”? People who want to indicate that the road is closed for some other reason will be less inclined to choose this preset and more inclined to use the Access field.

By the way, the preset’s icon tries to imply that the closure is due to construction, but I think it’s a very Americentric icon. Construction-related signs and road closure signs aren’t orange or striped in most countries.

@tyrasd tyrasd added the bug Something isn't working label May 12, 2022
@tyrasd
Copy link
Member

tyrasd commented May 12, 2022

I agree with @RudyTheDev. Whether a road is closed to traffic or not should be mapped with the corresponding access tag, independently of the value of the highway tag. The wiki also clearly states that highway=construction should only be used for roads/paths/etc. which are under construction. To mix these two concepts into the current Closed Road preset was a mistake IMO.

“Under Construction” is problematic because people are inclined to use it on roads that are only undergoing minor construction, like widening or restriping.

I think this is much less of an issue in practice, because the used symbology (icon, map rendering) quite clearly indicates that the road in question should be considered impassible.

@tyrasd tyrasd closed this as completed in dd1705e May 12, 2022
@1ec5
Copy link
Contributor

1ec5 commented May 12, 2022

I think this is much less of an issue in practice, because the used symbology (icon, map rendering) quite clearly indicates that the road in question should be considered impassible.

Maybe this isn’t so clear to the novice mappers I’ve seen use this preset to map short-term lane closures and such. Not everyone reads the wiki before urgently retagging a road as being closed for construction. The kind of sign depicted in the icon is the kind that’s also used for short-term lane closures and other roadwork. I appreciate the parallelism between “Railway Under Construction” and “Road Under Construction”, but it doesn’t seem like a big deal to add another word, like “Major”, to emphasize the substantial nature of the construction.

Regardless, would you consider moving the Allowed Access field higher up so that mappers realize they have the ability (and possibly the obligation) to add an appropriate access tag to a road under construction? Currently it’s buried quite a ways below the fold.

@tyrasd
Copy link
Member

tyrasd commented May 12, 2022

add another word, like “Major”

I don't know. Something like "Road Under Major Construction" or "Road Under Construction (Major)" would look a bit odd to me at first glance… Doesn't that a whole lot on unnecessary ambiguity to the name? For example, can a construction be considered major if the road which is under construction is only a minor road or path?

Should we just try it as is for now and readjust the name should we find that many novice mappers use it incorrectly in practice?

moving the Allowed Access field higher up

Sure! That's a good idea. I'll swap it with the "note" field. //edit: done in bf47827

@bhousel
Copy link
Member

bhousel commented May 12, 2022

I think this is much less of an issue in practice, because the used symbology (icon, map rendering) quite clearly indicates that the road in question should be considered impassible.

Doesn't this make the problem worse?
To restate what @1ec5 said above - novices will pick this preset thinking that they've make a road impassable, and all they've done is assign a highway=construction tag - which routers still treat as passable?

The access=no tag was pretty important when I created the preset originally, but I'm not sure whether routers treat this tag combination differently today.

I feel like this is a big step backwards.

@RudyTheDev
Copy link
Author

routers still treat as passable

Is this actually true? I have not seen my routes go through highway=construction and almost none of them have any sort of access tags here. I don't know what routers they use underneath, but I have always assumed they ignore construction stuff. After all, it's not like they can blanket follow highway= because they would quickly run into pedestrian-only paths and such. So including construction in routing would have been a deliberate choice.

Anyway, here is some limited naive testing I did to see what routers do (because I could be completely wrong about something I assumed long ago). I'm trying the ones from https://wiki.openstreetmap.org/wiki/Routing/online_routers that work and have an online tool.

I picked a random spot I found with a highway=construction (and construction=residential so it won't assume something invalid) road and no access tag that's clearly a shorter/faster route: https://www.openstreetmap.org/way/693836135#map=17/52.53713/-0.25284 :

Area in editor

These are my results:

OSRM (also one of option on OSM main page)
OSRM

GraphHopper (also one of option on OSM main page)
GraphHopper

OpenRouteService
OpenRouteService

BRouter (car)
BRouter car

BRouter (bike)
Brouter (bike)

Routino
Routino

Valhalla (car)
Valhalla (car)

Valhalla (bike)
Valhalla (bike)

None of these examples routed cars through construction (and one routed a bike through it, which is nice to see because it means the "raw" route is theoretically valid and I didn't pick an invalid example). Obviously, it's a very limited test scenario (how many routers are there?) But these look like major routers, so I would conclude routers don't normally route through construction. Am I wrong in my thinking? I don't know how else to test routers en masse across different scenarios.

@bhousel
Copy link
Member

bhousel commented May 12, 2022

None of these examples routed cars through construction (and one routed a bike through it, which is nice to see because it means the "raw" route is theoretically valid and I didn't pick an invalid example). Obviously, it's a very limited test scenario (how many routers are there?) But these look like major routers, so I would conclude routers don't normally route through construction.

Thanks for testing! I was told in 2018 that we needed the access=no tag, but it looks like now we don't.

Regardless, "Closed Road" is still a much better name for preset than "Road Under Construction". We will definitely see users misuse it once this goes live.

@1ec5
Copy link
Contributor

1ec5 commented May 12, 2022

I don't know what routers they use underneath, but I have always assumed they ignore construction stuff.

I’m also unaware of any router or routing profile that currently routes over highway=construction. A typical router wouldn’t even bring an unrecognized highway value into the routing graph, so including highway=construction would be a deliberate choice. The OSRM project did experience some painful back and forth some years ago on whether to route over roads tagged as e.g. highway=residential construction=yes. Ultimately they decided to discard such ways as tagging errors not to be encouraged: Project-OSRM/osrm-backend#4230 Project-OSRM/osrm-backend#4462. The wiki raises the possibility that a road might be closed for construction but remain open for pedestrians and cyclists. However, to me that seems like a case for motor_vehicle=no and construction=minor rather than highway=construction.

Now that the preset no longer adds access=no, will the initially empty Allowed Access field have “yes” placeholders throughout, or does iD somehow know that highway=construction implies access=no? Some people do gravitate toward an “under construction” preset for minor construction, so it isn’t a purely theoretical concern, though it’s hard to know whether the issue is prevalent. Seeing “no” all over that field would at least clue these mappers into the intended use of the preset.

@tyrasd
Copy link
Member

tyrasd commented May 12, 2022

Now that the preset no longer adds access=no, will the initially empty Allowed Access field have “yes” placeholders throughout, or does iD somehow know that highway=construction implies access=no?

It does not yet take this into account, but would actually be a very good addition to be implemented in iD alongside the change in the presets. 👍

@RudyTheDev
Copy link
Author

be a very good addition to be implemented in iD

Random question, but how is it done for other presets? Like, when you add a "Cycle Path" https://github.com/openstreetmap/id-tagging-schema/blob/dd1705e5a7b1b3e83fe37eeb1ad91a45605c0d04/data/presets/highway/cycleway.json where do these "yes", "no", "designated" values come from? I had always assumed it's part of the preset.

implied

actual tags

@tyrasd
Copy link
Member

tyrasd commented May 12, 2022

These values are defined outside of the presets repository in the iD code itself. See https://github.com/openstreetmap/iD/blob/v2.20.4/modules/ui/fields/access.js#L102

It would probably be more elegant to have them stored alongside the presets, but (partly) for legacy reasons it is currently implemented like this and it does work well enough to not be a high priority thing to improve very soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants