Helium314 / SCEE

OpenStreetMap surveyor app for experienced OSM contributors
GNU General Public License v3.0
114 stars 8 forks source link

Idea for a `direction=`-Quest UI #549

Closed wielandb closed 1 month ago

wielandb commented 1 month ago

I would want to implement a quest that asks for direction= and I have an Idea on how to do it, but I want to check in with the SCEE-contributors and @Helium314 first if this solution is too "janky", even for SCEE.

My idea would be to use a 3x3 MultipleSelect Quest form to let the user input in what direction something looks:

compassA

It would be possible to select one or more options, from what a value for direction like SE, 90-180 or 0-360 would be constructed.

compassB compassC

The ideal solution would be something like the TimePicker Fragment, but with direction values. Even more ideally, it should rotate together with the map, like the e.g. the StreetSideSelect Puzzle, but for now, I do not have the knowledge to implement it like that and IIRC someone already tried something like this and it did not work for some reason.

So what do y'all think? Can I implement the quest like this?

HolgerJeromin commented 1 month ago

You should label the center "westnordost" Sorry, could not resist. Nice gui!

mnalis commented 1 month ago

The ideal solution would be something like the TimePicker Fragment, but with direction values. Even more ideally, it should rotate together with the map

Yes, that "even more ideal" would indeed be quite nice and usable!

However, I'm not a fan of your proposed idea (not that I don't appreciate the effort you put in! :heart:).

I know that there are some people who orient themselves by North, and have map always point to the North (just search OsmAnd issue tracker for threads about it!) and swear by it, but many people are not working like that, but instead know what is "in front of them", "to the left", "to the backward-right" etc.

Trying to convert between those two coordinate systems in head is quite taxing and very prone to errors (e.g. I often find notes left by myself where I miscalculated, even if I take extra care to not make mistakes there, and can only correct with help of image direction if picture was taken and GPX file correlated to the note timestamp/location, especially if I left a note more than few days ago)

HolgerJeromin commented 1 month ago

I must confess I use all my maps (also build-in car navigation) north only. Thats why I was happy with the proposal.

My phone has no (or not good working) compass so this would be a problem. :-(

mnalis commented 1 month ago

I must confess I use all my maps (also build-in car navigation) north only. Thats why I was happy with the proposal.

I guessed as much :smile_cat:

Does your car navigation says "Turn to the northwest in 100 meters" though, or does it still say "Turn slightly left in 100 meters" (and which way would you prefer, out of curiosity?)

My phone has no (or not good working) compass so this would be a problem. :-(

Broken compass is not a problem currently in SC/SCEE, as the map direction is either:

There was a compass option before, but it was removed, and we never got it back (see https://github.com/streetcomplete/StreetComplete/issues/3377). That's too bad, as it was extremely useful for "left-right" (instead of "North-South") oriented people, especially when using SC(EE) with one hand only.

wielandb commented 1 month ago

However, I'm not a fan of your proposed idea (not that I don't appreciate the effort you put in! ❤️).

No problem, I anticipated that, that's why I wanted to ask before putting in the implementation effort.

I will keep in the back of my head that I will try something like my proposed ideal solution once I gain enough knowledge about Kotlin and Android development to understand how to implement a whole new Fragment/Dialog.

HolgerJeromin commented 1 month ago

Does your car navigation says "Turn to the northwest in 100 meters" though, or does it still say "Turn slightly left in 100 meters" (and which way would you prefer, out of curiosity?)

No sound output (2012 VW Touran), but in the corner of the map a first person view icon (as in "turn left"). And my phone navi with sound output speaks "turn left". Never thought about "turn northwest" but I think I would not like it.

Ref this language: "The language is notable for its use of pure geographic directions (north, south, east, west) rather than egocentric directions (left, right, forward, backward),[9] ...

https://en.wikipedia.org/wiki/Guugu_Yimithirr_language#:~:text=The%20language%20is%20notable%20for%20its%20use%20of%20pure%20geographic%20directions%20(north%2C%20south%2C%20east%2C%20west)%20rather%20than%20egocentric%20directions%20(left%2C%20right%2C%20forward%2C%20backward)%2C%5B9%5D%20though%20such%20%22purity%22%20is%20disputed.%5B10%5D%20Still

Helium314 commented 1 month ago

Does your car navigation says "Turn to the northwest in 100 meters" though, or does it still say "Turn slightly left in 100 meters"

When using car navigation you are usually moving, and in a very clear direction. When having a SCEE quest open, you are very often standing still, and maybe have a recent location history that does not easily allow inferring your previous movement direction. Compass as alternative could be quite broken as already mentioned, so quality of data might be questionable.

I'd be ok with implementing this sort of UI, with a clear warning that this requires north-aligning the map and thus is not suitable for everyone. Map rotation is accessible from the quest form, and possibly could be set to north while the quest is open. This UI could still be switched later after a UI suitable for everyone is done.

mnalis commented 1 month ago

Compass as alternative could be quite broken as already mentioned, so quality of data might be questionable.

That's why I didn't recommend using compass as a data source / reference here :smiley_cat:

I'd be ok with implementing this sort of UI, with a clear warning that this requires north-aligning the map and thus is not suitable for everyone.

I like how e.g. EveryDoor handles the situation: it keeps map oriented as the user rotated it (the default is North, of course, but there is manual rotation gesture available to change it), and then using that same map orientation uses egocentric rotation to specify directions (e.g. if you rotate the map so "up" is in front of you, if the direction is directly left of you in real life, you would point the arrow to the left side of the screen). [^1] E.g. in this example the map is not rotated to the North (instead the "up" of the screen is my real-life "forward" direction, and buildings are to my left in both RL and the screen, and the arrow points to the left and little to my back where the viewpoint being tagged is looking at)

small_Screenshot_20240602_160922_Every Door small_Screenshot_20240602_160929_Every Door

That way both people who prefer N/W/S/E (who just would never rotate the map) and the people who prefer egocentric left/right/forward are best served - as they all get exactly what they want.

The disadvantage being it is likely more work, of course...

[^1]: of course, EveryDoor lacks both the recent GPS trail and Compass direction, making it generally harder to properly orient oneself on the map, but this one feature works great once you are oriented