Handle via-way restrictions with multiple from/to ways correctly (no_entry/no_exit) #3100
+153
−21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3086.
The exception was caused by an extremely rare type of restriction: a via-way restriction with multiple from-ways (restriction=no_entry). The following overpass query finds such restrictions:
Currently there are 54. But they are all invalid for various reasons like missing from/to-members, disconnected member ways etc. so we ignore them anyway. There is only one exception, namely the one that has been added only recently and caused the error. That one isn't strictly necessary, because the desired turn restrictions could be represented with a simpler mapping, but it is 'correct' tagging nonetheless. Sidenote: This specific restriction is also time-dependent, so it will typically be ignored.
Still, I somewhat see how this type of mapping can be useful and since we already had everything required in place I did not simply ignore these via-way no_entry/no_exit restrictions but added support for them.