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

[v36.0] Can we get back the option for Compass Mode? #3377

Open
pkoby opened this issue Oct 13, 2021 · 21 comments
Open

[v36.0] Can we get back the option for Compass Mode? #3377

pkoby opened this issue Oct 13, 2021 · 21 comments
Labels
enhancement needs PR accepted suggestion, but only if a contributor implements it

Comments

@pkoby
Copy link

pkoby commented Oct 13, 2021

I tried the new version today with follow mode, and I can find no fault with the new functionality. I like the track of my path, and I think that pointing in the direction of movement is useful.

However, I don't think it's ideal for walking. For cycling, your focus is mostly on what's ahead, and you're not spending a lot of time looking around. When walking, though, I am constantly glancing around to see what's on either side, or weaving around a university campus aimlessly.

For walking, Compass Mode was excellent because I could face towards a quest and know exactly where to look. Now, I might see a quest to the side, but I don't know for sure that I'm facing the same way as the map (the direction takes awhile to catch up to a quick turn on foot).

Can I petition that we return to at least the option of using the compass? Perhaps it could be a triple toggle: tap once to find location, tap again to follow movement, tap a third time to follow compass. Then if you manually pan away, it turns black, tap again to return to red mode, then tap again to cycle. Maybe follow location only would also orient northwards?

@mnalis
Copy link
Member

mnalis commented Oct 13, 2021

I'll second first part of this suggestion - as a pedestrian I prefer previous (compass orientation) behaviour... But in/on a moving vehicle I can see how new mode (direction of movement) would be preferred.

Perhaps just a adding a preference in settings menu (like the existing one for show all notes) asking whether one would like to use compass or direction of movement mode would be sufficient?

Because, if I go mapping as a pedestrian, I'm unlikely to often (eg. to warrant a button) switch to direction mode and back. And if I start as a bicyclist (or a passenger in a car/train/etc) in direction mode, I'm even less likely to change the setting to compass mode in that session at all.

As for the suggestion in the last paragraph, please no.
(If we're going to use screen estate for new buttons, I'd much rather have a button for quick changing of quest preset, as I'm much more likely to change that; but that is a thought for some some other discussion). Also, please let's not start overloading what buttons do when pressed - we've just had a long-awaited massive simplification in that UI area in v36!

@westnordost
Copy link
Member

westnordost commented Oct 13, 2021

@pkoby , I agree that the compass is useful in these situations. In fact, the compass is still used. It is now as before displayed as a err... triangle that faces away from your GPS position:

https://raw.githubusercontent.com/streetcomplete/StreetComplete/master/app/src/main/res/drawable-xhdpi/location_direction.png

This should be enough to see what quest you are looking at

@smichel17
Copy link
Member

smichel17 commented Oct 13, 2021

I think having more than two modes would be confusing. That said, I agree that the compass direction is useful. I haven't shared this with anyone, but I was planning to open an issue and send a PR to modify follow mode to consider both your movement direction and compass direction — probably a weighted average, depending on the speed of your movement (moving fast = ignore compass; moving slow = mostly compass). Would something like that work for you?

While I'm here, a couple other miscellaneous thoughts:

  • Showing the movement trail has really highlighted how inaccurate my gps is sometimes. When I was downtown in my "city", it regularly placed me on the wrong side of the street, even though there are no buildings taller than ~3 stories. And when a fix is first acquired, my position regularly "drifts" off by 10-20 meters before correcting back in the right direction (this mostly happens when I'm standing still… or maybe that's just when it's most noticeable).

  • I prefer manual orientation over all 3 of "follow my position" modes. I can adjust the map with much more precision to see the details I need to answer the quest I want than they can.

    • This is probably exacerbated by the showing/hiding quest behavior. I often tweak the zoom or orientation to prevent quests from overlapping, so I can answer them in the order I want (usually, quests closest to me first— the inability to prioritize these is a Tangram limitation). If the auto-display algorithm were better (pending Tangram improvements or Explore migration from tangram to MapLibre #3123), I might feel differently.
    • I have done most of my mapping in residential neighborhoods, where seeing nearby building outlines is fundamentally important to figuring out whether I'm looking at the right building (especially when the mapped shape does not perfectly match the building's real shape). In other locations, it may be different.
  • I wonder whether it would make sense to optimize one of the "follow" modes for walking and the other for moving faster. What is the current "follow, from bird's eye view" function optimized for, anyway? I guess some people (@mnalis?) like to follow but keep the map oriented north? This is really weird to me; I always prefer to keep the phone oriented roughly to the direction I'm currently facing.

  • I DO find the new follow mode helpful to quickly re-orient myself if the map has become out of sync with my orientation (and then immediately do some manual adjustment, canceling follow mode in the process).

triangle that faces away from your GPS position … should be enough to see what quest you are looking at

It is usually enough to see what I am looking at, except when the thing I am looking at is off screen, because it is to my side instead of in front of me, and the map is angled slightly wrong because of gps accuracy or going around a corner.

@mnalis
Copy link
Member

mnalis commented Oct 13, 2021

@westnordost yes, triangle is shown (and is very useful!) but I can see how sometimes people (myself included) might prefer a whole screen (in 3D mode) to be rotated in compass direction (as it was in previous SC versions below 36). For example, on the left picture (simulated behavior in previous versions) it might be more easy to know what is exactly in front of you (and what is on your sides) as opposed to the right picture (current behavior).

Screenshot_20211013_233954_de westnordost streetcomplete debug2 Screenshot_20211013_233710_de westnordost streetcomplete debug2

@pkoby
Copy link
Author

pkoby commented Oct 13, 2021

Thanks for all the quick input!

consider both your movement direction and compass direction — probably a weighted average, depending on the speed of your movement (moving fast = ignore compass; moving slow = mostly compass). Would something like that work for you?

I forgot about this option, but I had considered it as well. Yes, if I'm moving about 10mph (average, so it doesn't keep switching when the GPS bounces around) the follow movement mode is best, but walking speeds or stopped (which might still read as moving anyway) could be a compass mode.

triangle that faces away from your GPS position … should be enough to see what quest you are looking at

It is usually enough to see what I am looking at, except when the thing I am looking at is off screen, because it is to my side instead of in front of me, and the map is angled slightly wrong because of gps accuracy or going around a corner.

This exactly. Previous versions, if I saw a quest on the edge, I would turn towards it to get it in the longer part of the screen. Then it was easier to hit. I also do SC surveys while walking a dog, so I'm limited to one hand, so rotating the phone to get the quest closer to my thumb was useful. In v36, I've also encountered a quest near the edge that I am about to tap when the map rotates as it catches up to my movement and the quest moves. At least with compass mode, I knew where to expect the quest to go.

So at this point, I think two great options would be a speed-dependent option, or as @mnalis suggests, a toggle in the settings.

@westnordost
Copy link
Member

westnordost commented Oct 13, 2021

What is the current "follow, from bird's eye view" function optimized for, anyway?

@smichel17 I tested it mostly while walking. I did a short trip via bike. (This is deliberate, you could say it is optimized for walking. I'd instead say it is optimized to not produce weird results while walking.)

weighted average, depending on the speed of your movement (moving fast = ignore compass; moving slow = mostly compass). Would something like that work for you?

I'd say it is something that could potentially be quite good. It needs experimentation and if the concept turns out to work well, careful calibration. The main issue to make this work as intended at all is to detect if someone is standing still. After all, it could simply be that the next GPS position takes a little longer than before to arrive.

a toggle in the settings.

You know, I am very wary to add any new toggles in the settings. So, this is not on the plan right now. In @mnalis example, you could just as well not use the "navigation mode" but just the "follow-me"-mode.

@mnalis
Copy link
Member

mnalis commented Oct 13, 2021

I think having more than two modes would be confusing. That said, I agree that the compass direction is useful. I haven't shared this with anyone, but I was planning to open an issue and send a PR to modify follow mode to consider both your movement direction and compass direction — probably a weighted average, depending on the speed of your movement (moving fast = ignore compass; moving slow = mostly compass). Would something like that work for you?

As a resident give user a choice proponent, it would not work for me really, unless it was accompanied by preference in settings which would allow one to choose between:

  • Automatic rotation uses compass
  • Automatic rotation uses direction of movement
  • Automatic rotation uses automatic automatic rotation 😄 (ie. chooses compass or d-o-m automatically depending on the speed of movement)

It's not that I hate automation, I love it, but I go crazy when it does something "wrong" and I can't override it. Imagine if you could not override methods when you inherit a class in Kotlin (or whatever terminology is used these days) - it would be horrible for programmer, even if the original classes were superbly done and did a vast majority of things right.

In fact, you don't need imagine, just look at TangramES issues (like problems with mapping induced by arbitrary limit on max zoom which we cannot override - #2878, #2373, #2359...)

  • Showing the movement trail has really highlighted how inaccurate my gps is sometimes.

Yes, I knew GPX trail would help a lot for correctly orienting oneself (due to my previous experience with it in OsmAnd), that's why I suggested it initially (and am greatly happy it was implemented! ❤️)

  • I prefer manual orientation over all 3 of "follow my position" modes. I can adjust the map with much more precision to see the details I need to answer the quest I want than they can.

I agree. I allow automatic orientation mostly only when I have only hand available so am unable to manually rotate, and there often only until it point where I want it, and then I drop back to manual orientation.

  • I wonder whether it would make sense to optimize one of the "follow" modes for walking and the other for moving faster. What is the current "follow, from bird's eye view" function optimized for, anyway?

For me? 😄 I love that mode. I rarely use 3D mode of SC and find it distracting usually (especially when there are tall buildings with quests in/around them, when I would love even better if I could turn that current bird's eye 3D into real 2D flat-earth mode)

I guess some people (@mnalis?) like to follow but keep the map oriented north? This is really weird to me; I always prefer to keep the phone oriented roughly to the direction I'm currently facing.

While I sometimes do like "follow GPS but keep map oriented North" mode, I usually do that for navigation with active GPX track (eg. OsmAnd) in area I'm analyzed before or am familiar with its paper map, and not when map solving (eg. SC).
I do it for example because if I'm following the path on north-east edge of the mountain, and "path is always before me" is useless piece of the information, while "oops, it looks like I'm currently going north and bending to north-west, I've likely taken a wrong turn sometimes before" is very useful.

For SC mapping however:

  • if I'm in the area with a lots of quests, I'm most likely in "2D full manual (manual position and manual rotation and manual zoom)" mode and I'm constantly fiddling with all of them as I walk and solve quests.
  • when I'm in an area with sporadic quests only, I'm more likely to be in "2D follow GPS, but keep manual rotation" (and then I drop to fully manual mode when I reach area with more quests). Manual rotation would still mostly follow "what is up on screen is before me in IRL" with (some small deviation maybe), but would not change all the time automatically (which I don't like for some reason - perhaps because when stuff moves on screen before I had a chance to click it, it feels more like I'm playing a real-time strategy game than mapping OSM 😄. Maybe new much-more-slowly-changing "rotate to direction mode" would grow up on me, but I'm not sure at the moment, and haven't had enough time to see if it would - but I'm certainly not an instant fan of it)

@mnalis
Copy link
Member

mnalis commented Oct 13, 2021

You know, I am very wary to add any new toggles in the settings. So, this is not on the plan right now.

@westnordost If a preference setting was absolutely not an option (no pun intended), and only one automatic rotation was to remain in the SC, I would vote for compass direction (as used in previous SC versions) as it offers most flexibility (simply rotate map by rotating yourself when onehanded) and least possible confusion (no magic mode switching, no guessing how long one has to walk for direction-of-movement to point in same way as compass etc). (see my previous comment for more in-depth explanation why)

I would (as could be guessed) still love for that to be a user selectable preference, but I do understand that you dislike (and would like to avoid) them whenever possible (preferences, not users 😄)

In @mnalis example, you could just as well not use the "navigation mode" but just the "follow-me"-mode.

See @pkoby and my comments about one-handed operation. While I do not use 3D follow-me rotate-me mode all the time, I find it extremely useful when one handed (eg. walking and carrying stuff, or walking with bike etc) to shortly jump into that mode, rotate myself slightly if needed (worked until v35) to rotate screen exactly as I want it, and then drop back to 2D follow-me mode.
With v36, that is no longer possible (well, perhaps it is I one does hundred meters calculated walk, but that is unreasonable), so one-handed mode becomes much harder (if not impossible) to use.

@smichel17
Copy link
Member

@mnalis As usual, your posts produce an initial reaction of meme of person recoiling at a wall of text,
but then are quite easily readable once that feeling subsides and I start to read them. 😅

I'd instead say it is optimized to not produce weird results while walking

Good point; predictability/consistency are totally reasonable things to optimize for. So, we have the "smart mode" and the "dumb mode", so to speak :)

As a resident give user a choice proponent

I'll respond in a new discussion to avoid going too far off-topic here. In short: we agree more than it might seem.

I do it for example because if I'm following the path on north-east edge of the mountain

Okay, that's use case makes sense to me (and maybe it was someone else who mentioned mostly using follow+flat+north).

stuff moves on screen before I had a chance to click it … new much-more-slowly-changing "rotate to direction mode"

Now that the orientation updates happen less frequently, maybe it would be helpful to show a indicator right before that happens, to avoid surprise moves. It would need to be very subtle, to avoid being infuriating. I'm thinking something like, start rotating the view very, very slowly about a quarter second before jumping to the next orientation. Although, I guess the map is still moving with your location, so maybe this is not fixable anyway :P

The main issue to make this work as intended at all is to detect if someone is standing still. After all, it could simply be that the next GPS position takes a little longer than before to arrive.

Does LocationManager not continue to provide updates when someone is standing still? It seems like the sane behavior would be to notify subscribers that there is a location update, and the location is the same. If not, we'll need to find a workaround.

It needs experimentation and if the concept turns out to work well, careful calibration

Agreed. Not sure how long I will take to get to this as I have been spending a lot of time on StreetComplete recently and I need to do other things, too! :P So if someone else wants to try it before me, go for it.

@matkoniecz
Copy link
Member

Sorry for asking that - but which of available settings was "compass mode"?

@pkoby
Copy link
Author

pkoby commented Oct 14, 2021

In older versions, after tapping the locate button, tapping the north arrow button in the top-right would angle the map and point in with the phone compass.

@westnordost
Copy link
Member

Alright, I'll accept a PR that introduces a setting. It should be a multiselect "Navigation mode: orientation" where the user can select between
"by movement direction"
"by compass direction"
Default is "movement direction".

@westnordost westnordost added enhancement needs PR accepted suggestion, but only if a contributor implements it labels Oct 15, 2021
@matkoniecz
Copy link
Member

In older versions, after tapping the locate button, tapping the north arrow button in the top-right would angle the map and point in with the phone compass.

Sadly I am still confused. Is "by compass direction" referring to

  • toward geographic North (current mode based on what I just checked)
  • toward the direction as phone is pointed (in the same direction as blue cone)
  • something else (likely as the first is request but appears to be present and second would be unlikely to be described as "compass mode")

Is "movement direction" referring to

  • toward the direction as phone is pointed (in the same direction as blue cone)
  • overall direction from last X seconds of movement
  • something else?

@smichel17
Copy link
Member

  • Movement = overall direction from last X seconds of movement (current behavior)
  • Compass = direction the phone is pointed (same as the blue cone) (old behavior)

I think "compass" is the confusing word here becaus a compass normally points north, so unless you understood that SC is calculating the direction of the phone based on the compass sensor reading, you wouldn't connect the two. Maybe "movement direction" vs "phone orientation" or something life that.

@kuba-orlik
Copy link

I've tried very hard to adjust to the fact that the map isn't automatically oriented to the direction my phone is pointed and I just can't do it. Having to mentally rotate the map myself is extra effort for me and it's actively contributing to me solving less quests, as I'm often confused as to what I'm supposed to be looking at.

Can we at least get an option to disable follow mode in the settings?

@matkoniecz
Copy link
Member

matkoniecz commented Apr 2, 2022

Can we at least get an option to disable follow mode in the settings?

It gets disabled when you move the map, after you do this map center is no longer glued to your position.

@kuba-orlik
Copy link

By that I meant can we have a toggle that when turned on would disable follow mode and use compass mode instead?

@mnalis
Copy link
Member

mnalis commented Apr 5, 2022

Alright, I'll accept a PR that introduces a setting. It should be a multiselect "Navigation mode: orientation" where the user can select between "by movement direction" "by compass direction"
Default is "movement direction".

I'm not an Kotlin programmer by any means, but I'm willing to have a try to implement this, unless someone else is planing to / is already working on it?
If seems that this orientation change was implemented as a part of PR #3335, if I'm not wrong?

@matkoniecz
Copy link
Member

matkoniecz commented Apr 5, 2022

unless someone else is planing to / is already working on it?

As far as I know: no, and noone mentioned that they wish to work on it.

@rugk
Copy link
Contributor

rugk commented Apr 6, 2022

Sorry but what happened to the "weighted average" idea? I also miss this option, but instead of a setting if the app automatically does the "right" thing, that's of course to be preferred, if possible. It's harder to implement, but maybe worth it, IMHO.
And I think that solution would be very elegant – if it works.

Though, thinking about it, maybe forget it, I have one counter example: When being in bus/tram and sitting backwards to driving direction, I actually also rather want "compass mode" rather than "movement mode".

@kuba-orlik
Copy link

I'm not a Kotlin developer, but I've started a bounty on this issue

https://app.bountysource.com/issues/111947459-v36-0-can-we-get-back-the-option-for-compass-mode

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement needs PR accepted suggestion, but only if a contributor implements it
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants