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

Level quest asked for place where level is already shown #3529

Closed
Helium314 opened this issue Nov 23, 2021 · 22 comments
Closed

Level quest asked for place where level is already shown #3529

Helium314 opened this issue Nov 23, 2021 · 22 comments

Comments

@Helium314
Copy link
Collaborator

The new (v38.0-beta1) level quest is shown for https://www.openstreetmap.org/node/1691939108, but at the same time a text "on level 6" is displayed.

This appears to be caused by the level quest only caring about the level tag, while the "on level ..." text also checks addr:floor

Not sure what to do here, but asking for a level while showing the answer looks really bad (and makes answering look like a waste of time).

@Helium314 Helium314 added the bug label Nov 23, 2021
@smichel17
Copy link
Member

Any reason not to exclude quests with addr:floor? I think it should work to just add and !addr:floor to line 37

private val filter by lazy { """
nodes with
(${isKindOfShopExpression()})
and !level and (name or brand)
""".toElementFilterExpression()}

@westnordost
Copy link
Member

Both level:ref and addr:floor are labels for the floor. For a proper indoor map however, what we need is the level, i.e. the ordering, the index. If a floor label is given, the level ordering information is still missing. In other words, it does make sense to ask it.

Consider a mall that has the following levels: "P1", "P2", "Gf1", "Gf2", "1", "2". A shop on level "1" (floor:addr=1) will probably have a different numerical level then (likely level=2). Same with the parking levels.

@westnordost westnordost removed the bug label Nov 23, 2021
@matkoniecz
Copy link
Member

Though in such case "on level ..." text likely should be modified.

@westnordost
Copy link
Member

"on level Gf2" makes perfect sense though.

@FloEdelmann
Copy link
Member

Maybe this can be mitigated by using different words in the quest title and the location label?
E.g. on floor 1: On which level is … located?

Using "floor" in the location label might be misleading though, as the level tag would also sometimes be shown there:

/* prefer addr:floor etc. over level as level is rather an index than how the floor is
denominated in the building and thus may (sometimes) not coincide with it. E.g.
addr:floor may be "M" while level is "2" */
val level = tags["addr:floor"] ?: tags["level:ref"] ?: tags["level"]

@smichel17
Copy link
Member

Use a different word depending on which tag is shown?

@westnordost
Copy link
Member

And which words would be hte right words to use?

@smichel17
Copy link
Member

addr:floorfloor
levellevel
level:ref ⇒ I do not understand this tag well enough to say. Based on #3529 (comment), maybe also floor ?

@andrewharvey
Copy link
Contributor

andrewharvey commented Nov 24, 2021

To me the current wording could be improved, when I saw it today I was even more confused why I couldn't enter letters.

Regardless if it asks what floor/level I would expect to answer "G" if the lift button says "G".

I'm surprised you didn't go with my suggestion at #1487 (comment)

We should ask for level:ref which is directly surveyable where lift/wayfinding signage exists to label floor numbers/codes. So you could ask, Which signposted level number or reference is X on?

Both level and level:ref are important but for different reasons, level is important for making indoor maps, level:ref is important for helping people find the place.

If this quest is strictly asking about level and not level:ref then perhaps using:

quest title: "What level number is X on?"
hint text: "With 0 being ground level, and counting up for each level. Not necessarily the signposted number or letter of this floor".

@smichel17
Copy link
Member

smichel17 commented Nov 24, 2021 via email

@westnordost
Copy link
Member

I'm surprised you didn't go with my suggestion at #1487 (comment)

This was the initial plan and also the initial implementation. But I noticed that level:ref is a less helpful information to record than level. No indoor renderer can do anything with just the level:ref information and to somehow associate a level:ref to a level requires some preprocessing that no indoor renderer actually does (AFAIK) and also is somewhat fuzzy.

With StreetComplete's new feature to show surrounding shops etc. on the same level, all prerequisites are there to be able to properly record the shop's level (e.g. 0) rather than just the level:ref (e.g. G). Recording both level and level:ref has little information value and now it is actually easier to record level rather than level:ref: It is easier and less error-prone to compare if the shop it is being asked for is on the same level as a neighbouring shop than to run to the nearest sign/elevator to check how this floor is labelled.

quest title: "What level number is X on?"

sounds reasonable

hint text: "With 0 being ground level, and counting up for each level. Not necessarily the signposted number or letter of this floor".

Last time I checked, for many malls in the US and in Russia, the numerical index starts with 1. This is not considered a tagging mistake, what counts is the order, not at which index the level starts.

@andrewharvey
Copy link
Contributor

This was the initial plan and also the initial implementation. But I noticed that level:ref is a less helpful information to record than level. No indoor renderer can do anything with just the level:ref information and to somehow associate a level:ref to a level requires some preprocessing that no indoor renderer actually does (AFAIK) and also is somewhat fuzzy.

True for rendering indoor maps, but for navigation level:ref is very helpful. I can lookup a shop in OSM and see it's on level LG, then I go to the elevator and press LG. So ultimately both are very important, but from my experience level:ref is much safer to survey because you just need to check the elevator or wayfinding signs. Mapping level I need to check other existing data to see where they start level 0 from so it's not an easy quest to answer.

Last time I checked, for many malls in the US and in Russia, the numerical index starts with 1. This is not considered a tagging mistake, what counts is the order, not at which index the level starts.

After re-reading https://wiki.openstreetmap.org/wiki/Key:level I see the wiki agrees here. In this case won't the mapper need to see how other POIs are tagged within the same building?

@westnordost
Copy link
Member

Mapping level I need to check other existing data to see where they start level 0 from so it's not an easy quest to answer.

Yes, but the app shows this data.

@westnordost
Copy link
Member

In this case won't the mapper need to see how other POIs are tagged within the same building?

They do. Is it not working for you?

@andrewharvey
Copy link
Contributor

They do. Is it not working for you?

When I select a level quest icon, it hides all other icons and just asks what level is it on.

@andrewharvey
Copy link
Contributor

Another issue is for features which span multiple levels, the keyboard won't let me enter a , or - character and won't even let me see the ; character.

@westnordost
Copy link
Member

When I select a level quest icon, it hides all other icons and just asks what level is it on.

And if you press + or -?

@andrewharvey
Copy link
Contributor

And if you press + or -?

Ah I see, I never thought to press those buttons.

@westnordost
Copy link
Member

:-|

@westnordost
Copy link
Member

westnordost commented Nov 29, 2021

So, would that make sense then?

image

(...or minus)

@andrewharvey
Copy link
Contributor

Yeah or maybe it's just me and not an issue for others. And maybe change the wording to "On which level number is" so it's clear I can only enter a number and not LG/G (commonly values for lower ground level or ground level as posted on wayfinding signs/lift buttons), because otherwise users could get very frustrated with the app when it won't let them enter characters.

Thinking about this quest some more how about if you could enter letters, and it detects that if you enter a character(s) then ask which number this level corresponds to? So tag the character(s) as level:ref and the number as level?

@westnordost
Copy link
Member

I implemented smichel's suggestion to use a different wording for addr:floor and level (floor and level)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants