-
-
Notifications
You must be signed in to change notification settings - Fork 358
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
Way with complicated surface tag shows as without surface tag #5330
Comments
Expected answer is |
If the surface was indeed unknown, that would be the correct answer, or even better if a note was created. But here the surface is already described, so it would be useless to add another description of the surface in words. I'm afraid, however, that many users would be tempted to enter a wrong answer. |
Is there any case of this problem actually happening anywhere? |
It's probably very rare, so solving it has low priority. |
I am not sure. Perhaps not in SC, but in the data it would be useful for programs which are not able to parse this information. |
In most cases I found, (and I noticed that in northeastern Germany, |
I agree with @rhhsm about not coloring in |
I plan to look how many such places exist worldwide, maybe manual handling will take less time than extra filtering. For now I commented on https://www.openstreetmap.org/changeset/122193302 https://www.openstreetmap.org/changeset/142930527 https://www.openstreetmap.org/changeset/136056524 |
A written description would be even more difficult to parse for programs. The best answer in the cases described above would be to reply with |
For example, see https://www.openstreetmap.org/way/4708393/history |
@rhhsm What you think about tagging such as https://www.openstreetmap.org/way/4708393/history ? Would you consider it as preferable to omitting (I do not want to apply weird tagging as workaround, but I think that it is genuinely better than no |
If we should not tag for the renderer, we should certainly not tag for the OSM editor app :) So I think we should add |
Just because it is supported by app it does not mean that using this tagging scheme is incorrect. I agree, that is why asked
and commented
|
I agree; in hindsight it was bad idea to name this principle as "Do not tag for the renderer", as the actual meaning of the phrase is "Do not mistag for the renderer"; and its popular phrasing makes it frequently misunderstood. Tagging (correctly) for the renderer (and for any other data consumer) is not only accepted, it is in fact the whole purpose of OSM existence 😃
You mean human time to implement extra filtering functionality (i.e. adding extra tag surface:lanes to ignore-coloring-as-red; which seems easy to me, although I have not looked at the code yet) or CPU-time (i.e. cumulative slowdown affecting UI, which I would think should also not being the issue)? |
and surface:lanes:backward and surface:lanes:forward and skipping in surface quest and tests and maintaining even more complex code (it is already on edge of what I can understand) it is also about precedent - there are many cases where such similar detail may appear, and could be solved by tagging and future confused issues "why this is colouring in this way" or "why quest is not asked here" Note that I am right now processing doing all that in StreetComplete would not work well |
I'm not sure if we're talking about same thing, I was thinking more about just not coloring in red such already-complexly-mapped surfaces in Surface overlay; not about fixing strange values or attempting to consolidate them, nor changing quests etc. IOW It would not prevent people who decide on changing the surface; but it would not invite them to do so (which it currently does by waving that red cloth in front of mapper eyes 😸). E.g. adding extra check to this: Lines 70 to 72 in eade1b3
via something like this (I have not checked syntax / tried to compile, just an example): - if (isIndoor(element.tags) || isPrivateOnFoot(element) || isLink(element.tags)) {
+ if (isIndoor(element.tags) || isPrivateOnFoot(element) || isLink(element.tags) || isComplexSurface(element.tags)) {
[...]
+ private fun isComplexSurface(tags: Map<String, String>): Boolean =
+ tags["surface:lanes"] || tags["surface:lanes:forward"] || tags["surface:lanes:backward"] || tags["surface:lanes:both_lanes"] And adding a test or two for this case. It does not seem to me to raise the complexity significantly? Or would that not work (I have not tried writing overlays yet)? Or are we simply talking about different things? I would be willing to write and test that code to reduce load on main devs, if such a fix is deemed acceptable?
Sure, but I'm not talking here about having StreetComplete use something else -
Nice effort, thanks for that!
Which is why I'm not proposing anything like that 😺 |
I am not proposing to do it instead of perfectly valid
I think that such surface should be rather shown as complex (in black, like I am not enthusiastic as from own experience I expect that there will be an endless parade of similar ideas. I was dealing with it in some places. |
So (if I'm understanding it correctly), e.g. taking the example from the top of the issue, if the way was tagged:
you would leave those existing tags in place but also add Am I understanding that correctly? If so, what would be the advantage of doing that human-readable transcription of machine-readable tags? (and if there are clear advantages, should we be doing such human-readable tags transcription for other tags too?) Dunno 🤷, to me it would seem to have more problems then it solves (adding useless duplication is lesser of the problems; breaking 2NF in that way would require endless effort to keep those tags in sync should any of them change, which might not be possible to automate in 100% of the cases, thus requiring possible separate database for storing exceptions, human time for reviews, bot upgrades & maintenance for new cases etc.)
Makes sense, thanks.
Yes, good point, the quest also should not be asked on such already-detailed-surfaces. If nobody objects (or prefers to do it themselves!), I could give it a try. |
The following PR would be accepted: (In a nutshell:
|
Do you intend to implement it, @mnalis ? |
OK, I'll give it a go |
After some time SC asks the user what is the surface again (or the user uses the surface overlay) and we are back at square one. See version 35 of https://www.openstreetmap.org/way/275480468/history. |
Are you sure? I think it should ask the surface again immediately, because when a general surface like |
I have been rummaging through @mnalis draft PR with the intention to finish it. However, with heavy heart, I have now reached a point where I'd actually rather close this issue as will-not-fix with the advice to always add a The reason is, in a nutshell, that it would add too much complexity to the code. In particular, it adds too many asterisks to the code, in the sense that having to handle (By the way, if there only was the surface quests, it wouldn't be such an issue, but to accommodate it in the overlay is a real PITA.) So, anyway, sorry that this is not going to be implemented and also sorry to @mnalis that he poured some work into this already. But, there is something that came to my mind when reviewing the whole "generic surfaces plus Do we really need to require a
¹ However, surface quests are rarely re-asked because they are only re-asked if the road hasn't been touched in X years. Roads are generally touched more often, so this mechanic isn't working well and never did, TBH. So the original reason to ask again if |
@matkoniecz what do you think about this? |
In general, personally I am not really liking when editors are pushing some tagging in one direction or another with primary justification as "it would add too much complexity to the code" But in this case I think that I would use |
I rather meant, what do you think about the latter part of my previous post. Think about why we require - or surface ~ paved|unpaved and !surface:note
+ or surface ~ paved|unpaved and !check_date:surface This forces SC users to re-survey any road with a generic surface once. |
I agree with this idea and I like it. |
This way https://www.openstreetmap.org/way/787847733 and the oneway ways the the northeast have a rather complicated surface that is different for different lanes. However, on SC its surface is quested and in the surface overlay it shows red, i.e. as if its surface has not been tagged yet.
This creates the risk that an unsuspecting user will decide that it's "mostly asphalt" or "mostly sett" and will answer the quest like this, which would be wrong.
Probably a very rare occasion so not very urgent...
Expected Behavior
Ways that have a more complicated surface tag (for instance
surface:lanes:*=*|*
; there may be others) should not be considered as being without surface tag. No surface quest should appear, and they should not appear as red in the surface overlay.Versions affected
54.1
The text was updated successfully, but these errors were encountered: