osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.64k stars 1.01k forks source link

Introduce map rotation North fixed / Less sensitive calculate map rotation #17086

Closed billmaurer closed 8 months ago

billmaurer commented 1 year ago

It is very easy to accidentally alter the map orientation by many different gestures on the screen.

This could be done by adding a checkbox "Lock map to this orientation" to the Map Orientation dialog.

The dialog can be opened in Profile - General settings - Map orientation or by long pressing the Map Orientation button on the top left of the map display.

My preference is to keep the map orientation to always point north while in hiking mode.

Zirochkabila commented 1 year ago

Related to https://github.com/osmandapp/OsmAnd/issues/7282

billmaurer commented 1 year ago

Not true. This has nothing to do with the compass or bearing mode or anything like that.

The gesture for zooming in and out is very similar to the gesture for rotating the map. If you let your fingers drift even slightly doing the zoom gesture the map will flip out of the orientation mode you had previously set and into rotation mode. This is highly undesirable.

Nine-Tailed commented 1 year ago

unfortunately they don't listen to us https://github.com/osmandapp/OsmAnd/discussions/16836

billmaurer commented 1 year ago

Yes, this is definitely the same as #16836.

So I'm not the first to be annoyed by this! :-)

arncor commented 1 year ago

I (and a few friends too) use osmand a lot and we all want a "north up" only view. We almost never need manual rotation.

In our opinion the low threshold is very very annoying.

Zirochkabila commented 1 year ago

@billmaurer in item 4. A large button for locking/unlocking the maps turns (7282) - this is exactly the feature you are asking about, isn't it? @Nine-Tailed Regarding the zoom change thing - in the latest nightly version it works well, I think (video attached) Regarding the map tilting - I agree, it's probably worth fixing, @alex-osm - comment with video added https://github.com/osmandapp/OsmAnd/discussions/16836#discussioncomment-5764948

OsmAnd~ 4.5.0#35865m, Released: 2023-04-29

https://user-images.githubusercontent.com/104760013/235340759-8e7ed62a-4c72-40d1-9bc0-db6367ad9def.mp4

H--W commented 1 year ago

I would also like to have this feature. Some underpowered devices are only usable in continuous north up orientation. Also many navigators expect a map to follow a paper map/chart paradigm. I would be willing to edit a text config file to get this feature. Perhaps this should be a per profile setting? Rgds, -H- ver 4.4.7 Android After a bit of thought I should add: Considering the limited exposure I've had with professional navigation equipment; one should note that any operation which could inadvertently change the operating mode of the device wouldn't just be considered an anti-feature, it would be considered a safety hazard and would prevent safety certification. Just say'n. :) -H-:

sonora commented 1 year ago

Folks, I think it's how I've said all along: The map orientation mode "North is up (fixed)" should be exactly what its name promises: North should be up, and it must be reasonably fixed. :wink:

That's how we've had it for 10 years without complaints. The flaw we recently introduced is that by a rather slight two-finger twist of the map, as it sometimes accidentally happens during a pinch zoom gesture, we now slip from "North is up (fixed)" to map orientation mode "Manual rotation". There the map is statically rotated vs. the device orientation, a comparatively rare use case for everyday operation(!)

I see 2 possible solutions:

vshcherb commented 1 year ago

Now I see how development happens, first we rename option and then we constitute that option should work the same as name suggested ;-)

Even "North is up (fixed)" is a good name and we will have that option, it won't be default and we will run into another cycle of consequent issues. Indeed we should have

  1. Lock provided in settings (doesn't matter north is up or not)
  2. Rename back "North is up (fixed)" -> "North is up"
sonora commented 1 year ago

Now I see how development happens, first we rename option and then we constitute that option should work the same as name suggested ;-)

Pardon my little trick to nudge development in the right direction ... :wink::wink::wink: But as you can see, there's popular demand! :wink:

Actually, what started the problems was not adding "(fixed)" in the string to clarify there is no rotation in play, it was removing the threshold which changed the formerly pretty "fixed" behavior to now allowing accidental changes: https://github.com/osmandapp/OsmAnd/discussions/16836#discussion-5018378 :wink:

vshcherb commented 1 year ago

The issue is that it doesn't matter whether we fix rotation further or threshold there is clearly demand to not allow rotate map by any accidental click on compass or any harsh movement, so North up (fixed) makes sense but also make sense Movement direction (fixed)

rouelibre1 commented 1 year ago

I just upgraded to the latest version and I am now impacted by this "fixed north" that isn't fixed... I had heard complaints about it before and didn't understand why it was such a big deal. Now I get it : this is incredibly frustrating... I like the previous behviour where it was already possible to override the "fixed" orientation, but there was no (or little) risk of doing so unintentionally.

Now it's just impossible to not override the "fixed" orientation by zooming in/out with two fingers. Which deafeats the whole purpose of this "fixed" option.

I'm considering rollback until this get fixed (hopefully) in a future version.

scaidermern commented 1 year ago

I'm still wondering why this bug(!) has never been fixed in version 4.4.

mnalis commented 1 year ago

I'm still wondering why this bug(!) has never been fixed in version 4.4.

Is it fixed in some other version? Reading the user experiences with that change, there is no way I'll be upgrading from F-droid version 4.3.12 until there is confirmation that is either reverted, or at least configurable so old behaviour can be selected by the user.

Lock provided in settings (doesn't matter north is up or not)

While I do rotate map often, I also want North is up (when selected) to do exactly that, and not to be disturbed by slightest touch (as I use that one often too, depending on where I am and what I am doing). Previous legacy behaviour was just fine with me, allowing both options easily.

If new (4.5+?) proposed solution would require me to go to options and enable/disable some rotation lock preference (if I'm understanding that correctly?), that would be horrible user experience to me, as I'd basically have to give up one of the options previously available (there is no way I'd be going into preferences all the time to change it on/off over and over again)

Does someone know if simply setting ANGLE_THRESHOLD back to 30 from new ultra-sensitive 5 would fix the issue (by "fix" I mean revert to legacy pre-4.4 behaviour)?

And if it would, could we just have an advanced preference which allows user to set integer for that ANGLE_THRESHOLD? That would seem to me very easy to implement, and allow the user to choose their side in this highly polarized decision. (or alternatively we could have that preference as boolean checkbox saying Ultra-sensitive rotation which can be set to on (setting new ANGLE_THRESHOLD=5) or off (setting legacy ANGLE_THRESHOLD=30)?

scaidermern commented 1 year ago

I'm still wondering why this bug(!) has never been fixed in version 4.4.

Is it fixed in some other version?

Sort of. In version 4.5 the threshold is higher (the same again as in version 4.3?).

sonora commented 1 year ago

This PR https://github.com/osmandapp/OsmAnd/pull/17197 would revert to the old guarded behavior for "North is up" mode while not affecting any other modes.

sonora commented 1 year ago

PS - Wording: So do you think we should rename the two "fixed" modes to just "North is up" and "Manually rotated"? I have no preference, just thought that (fixed) would make it a bit clearer to separate these from the 2 dynamic modes.

EDIT: @vshcherb I am thinking that perhaps using "(static)" instead of ("fixed)" would be the better wording to distinguish the 2 rigid from the two dynamic map orientation modes?

H--W commented 1 year ago

I think most professional navigation devices use "North Up or North-Up" and "Track Up or Track-Up". Most do not have a "Manually Rotated" as ships (boats) and aircraft are always navigating. I have no preference, but for consistency with industry devices either of the first two, and for the third something short and precise. Best Rgds, -H-

mnalis commented 1 year ago

This PR https://github.com/osmandapp/OsmAnd/pull/17197 would revert to the old guarded behavior for "North is up" mode while not affecting any other modes.

Thanks, it seems to work for me. If other people are willing to try it, I've build debug .apk so feel free to try it out and give your experiences.


Of course people should not trust other random people on the .net offering them .apk files to run :smile:, so I'm glad to announce my PR https://github.com/osmandapp/OsmAnd/pull/17222 (which allows people without Android development environment to easily get compiled .apk of OsmAnd by making GitHub actions do it for them) has been merged into master so is available to all.

If you'd prefer that method, fork this repo, create new branch, apply the PR to it, and then in your fork click on Actions / Build debug apk / Run workflow and choose your branch where you applied the PR. Wait about 30 minutes, and there will be .apk ready for you.

vshcherb commented 1 year ago

One decision to simplify situation is to make initial movement of rotation if it's not made then rotation won't be started even if fingers will be moving.

mnalis commented 1 year ago

Thanks @vshcherb, disabling rotation (for the whole length of the gesture) if the initial gesture looked like zoom should probably help (at least somewhat!)

Please mention this issue when that lands in some PR or master, so interested parties can try it out and give feedback.

vshcherb commented 1 year ago

4.5.1 beta is out and ready to upgrade from 4.4 - threshold is higher

Boothy99 commented 1 year ago

4.5.1 beta is out and ready to upgrade from 4.4 - threshold is higher

Thanks Victor. Just updated Beta to 4.5.1. Much better angle before any rotation initiates ... OR ... rotate immediately (intentionally) and no hesitation in rotating. I for one like it so far.

Tried a few "clumsy" zooms and no unintentional falling out of "North is up" until I force it to, by using a good / reasonable angle of rotation of 2 fingers. 👍👌

Nine-Tailed commented 1 year ago

add rotation sensitivity setting please

GallusMax commented 1 year ago

One decision to simplify situation is to make initial movement of rotation if it's not made then rotation won't be started even if fingers will be moving.

Oops - no! Imagine Osmand being mounted on a bike. Try a two-finger-touch while riding. You will never ever be sure if the movement after first touch will be a "zoom" or a "rotate".

milan11 commented 1 year ago

I am a user of OsmAnd and I would prefer to be able to completely unconditionally disable the rotation gesture. The latest improvements maybe made the situation better, but the accidental rotation still happens for me.

It is a great annoyance to build a habit to constantly check whether the map was accidentally rotated or not.

But to be fair, e.g. Google Maps has this problem, too.

I made a pull request with a separate setting added allowing to disable the rotation using gesture per-profile: #17884

screenshot

Until this is solved, I will maybe use the "double tap plus drag" gesture to zoom as a workaround to prevent accidental rotation.

vshcherb commented 1 year ago

Summary as of 10 August 2023.

To do

sonora commented 1 year ago

Thanks for revisiting, Victor!

Repeating myself, but I still think an initial twist threshold may be the most intuitive solution, rather than any more or less hidden settings or double-taps. The threshold should of course

My 5 cents. :wink:

ploink commented 1 year ago

Osmand is one of the greatest apps I use, but the only reason why I never recommend it to non-geek users is that it is overly complicated and has a myrad of settings. I know I could never explain to my mother in law why you can accidentaly rotate a map that is supposed to be fixed north up. She would phone me on a daily basis for support.

I see now how that evolves if issues like this waste a lot of people's time and energy. Taking 5 months to discuss a feature for rotating a fixed map that no one actually seems to want or need while annoying a crowd, then finally settling for "add another setting that Ploink's MIL won't understand". I suggest following the KISS guidelines and keep north up with a giant block of concrete unless one selects the rotation mode from the compass icon or settings menu.That I could explain to her.

Boothy99 commented 1 year ago

For what it's worth, I think a setting to disable any rotation (globally or profile specific) would be a great move to keep everyone happy. A (generous?) twist threshold in "North is up" mode as sonora highlights would also be appreciated.

vshcherb commented 1 year ago

@ploink Osmand is one of the greatest apps I use, but the only reason why I never recommend it to non-geek users is that it is overly complicated and has a myrad of settings. I know I could never explain to my mother in law why you can accidentaly rotate a map that is supposed to be fixed north up. She would phone me on a daily basis for support.

That's not true all apps have accidental map rotation and I didn't see any solution except automatic rotation to north up once app is restarted. That solution is no go for our users (as I see)

scaidermern commented 1 year ago

That's not true all apps have accidental map rotation

Can you name an app that has a mode called "North is up (fixed)" and still allows to rotate the map by accident?

Seriously, so much time and effort to discuss something that has a very simple solution. Make "North is up (fixed)" a fixed rotation mode and a lot of users will be happy.

ploink commented 1 year ago

...all apps have accidental map rotation and I didn't see any solution except automatic rotation to north up once app is restarted. That solution is no go for our users (as I see)

I just checked Komoot which my MIL is using and it turns out you are 100% correct! It annoyingly rotates when I try to zoom. But that does not mean Osmand should copy such bahaviour imho.

What if you are in rotation mode and tap the compass it rotates north up, tap again within a number of seconds and it adds that block of concrete to keep north up?

vshcherb commented 1 year ago

I think I should start cleaning up messages to avoid long issues and create parallel discussion where flood can go @scaidermern where do you see North is fixed?

sonora commented 1 year ago

I supply all test users in my surroundings, novices and experts alike, with a special build which has an initial 30 degree twist guard (could be increased to 45, does not matter) before any rotation from north would take effect.

After the threshold has been surmounted, or if the map is twisted from North anyway, changes are immediate.

Nobody has yet reported an issue with this concept... 😉

ploink commented 1 year ago

Nobody has yet reported an issue with this concept...

Neither did I with the old behaviour, but now I think about it, while on the road, hiking or cycling I did so now and then press the compass to get north up again. It just never exceeded the annoyance treshold for me to visit the issue tracker. I would not do that in the field anyway and at home it was not much of an issue until I upgraded to the recent version from fdroid that rotates too easily.

sonora commented 1 year ago

Regarding

I think I should start cleaning up messages to avoid long issues and create parallel discussion where flood can go

Here's where that was tried on this very topic: https://github.com/osmandapp/OsmAnd/discussions/16836. Some floods are serious enough to come back... 😉 😉 😉

osmonoid commented 1 year ago

@mnalis

[...] which allows user to set integer for that ANGLE_THRESHOLD [...]

@Nine-Tailed

[...] add rotation sensitivity setting please [...]

@vshcherb

[...] To do [...] Introduce a setting to disable rotation [...] it could be a lock of a certain angle [...]

@sonora

[...] initial twist threshold may be the most intuitive solution [...]

@Boothy99

[...] A (generous?) twist threshold in "North is up" mode as sonora highlights [...]

According to statements cited above, the best compromise of all suggestions / possible solutions for this problem is this "initial unlocking twist gesture" which will hopefully satisfy "95%" of the users:

(Please forgive my childish wording/jokes and the emojis, but I had to try to bring a bit more "fun" into this serious topic.)

So at least the 5 of you (but most importantly our dear developer @vshcherb) are mainly on the same track after all! 👍

elf128 commented 1 year ago

Why play with threshold values, when we can just disable rotation completely. There's two modes ( aside from auto-rotating cases ), there for two behaviors and two target audience. Those who want to rotate map, set it to manual rotation and do whatever they want, never leaving that mode. Those people need compass button to keep track of their rotations. All thresholds has to be applied to this mode and only to this mode. Pressing Compass mode should reset map rotation, but keep it in "manual rotation" mode.

Those who don't rotate map, set it to North Up, expecting it's always north up. This is second use case. In this mode it should be impossible to rotate map. Those people don't need compass button, since North is always up. Right Now, people from second group unable to remove compass button cause you need it ONLY to check whether the map has been accidentally rotated.

Essentially, right now map is in Manual Rotate all the time, regardless of what the indicator says. Because you can always rotate the map and meaning of setting it to "North Up" is to temporarily reset map rotation. And I'm not saying someone broke it. It was always like this, it's just become much more noticeable with recent threshold reduction. But since we're talking about possible improvements, why not finally fix it?

scaidermern commented 1 year ago

But since we're talking about possible improvements, why not finally fix it?

Milestone 4.6 has been set, so let's wait and hope for the best.

osmandlover commented 1 year ago

Thanks! I also reported this bug over here: https://github.com/osmandapp/OsmAnd/issues/17979

I just want to add that this doesn't only happen when zooming in and out with a pinch, sometime if you brush against the screen or something the map rotates. It happens sometimes that I take my telephone out of my pocket and the map is rotate. Grr!!

I never ever ever want the map rotated nor tilted. Not ever. Compass mode north fixed pointing up means north fixed pointing up. I want to permanently disable that function and I would be OK with editing the code or changing a config file something to achieve that. I have compiled the app from source. Is there a known workaround that I can do? Or if I could just fix this annoying bug properly can I submit a pull request?

I understand the idea to make the map behave intuitively by conceptually always having the touch points attached to the map. But, rotation and tilt is a feature that many people (most people?) don't want nor need. So this method is prioritizing the conceptual model over the usability. And it has such a simple fix - just make the "fixed" mode behave as the name indicates!

The "increase the rotation threshold" fix is a silly way to fix it. Because it breaks the conceptual "fix map to fingers" model, AND it breaks the idea behind having different compass modes for do the exact same thing (north fixed up and manual rotate). If you want to "force" users to have rotation active then may as well just take away the fixed north mode - what's the point in having both modes?

I was very disappointed that this feature didn't work as I expected as the release notes for v4.4.7 suggested that "map fixed to north" mode would solve this problem that has been annoying me fore years!

just by the way. I love osmand and i dont want to make it sound like i am not greatful for an amazing app. this is just one devil of an annoying bug!!

osmandlover commented 1 year ago

Submitted PR https://github.com/osmandapp/OsmAnd/pull/17981 which solves this issue for me.

maltfield commented 9 months ago

Can someone please clarify which version of OSMAnd introduced this issue, and what is the version on F-Droid that we should downgrade-to to fix it?

sonora commented 9 months ago

@maltfield Going back to my original post about this https://github.com/osmandapp/OsmAnd/discussions/16836, it seems this was introduced in https://github.com/osmandapp/OsmAnd/pull/16746/commits, which would mean that probably 4.3.12 may have been the last official release without the issue.

maltfield commented 9 months ago

Yay! In what version of OsmAnd is this fixed?

elf128 commented 8 months ago

Wait. The fix says it disable rotation only if zoom has been started. Which is not what this topic is about.

This does not disable rotation unconditionally. If you have random touches and first move recognised as rotation, roration will happen.

Jan 20, 2024 16:32:30 Vitaliy @.***>:

Closed #17086[https://github.com/osmandapp/OsmAnd/issues/17086] as completed via #18927[https://github.com/osmandapp/OsmAnd/pull/18927].

— Reply to this email directly, view it on GitHub[https://github.com/osmandapp/OsmAnd/issues/17086#event-11547409264], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ABOXE3KN3AZHYHPC3QKUER3YPQZW5AVCNFSM6AAAAAAXQJADMCVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGU2DONBQHEZDMNA]. You are receiving this because you commented. [Tracking image][https://github.com/notifications/beacon/ABOXE3LC3H2IFNARR4F7UJLYPQZW5A5CNFSM6AAAAAAXQJADMCWGG33NNVSW45C7OR4XAZNWJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XKUY3PNVWWK3TUL5UWJTYAAAAAFMCHPNYA.gif]

scaidermern commented 8 months ago

Sounds like only the second part got fixed. The first part (introduce map rotation North fixed) is still open? :thinking:

vshcherb commented 8 months ago

Yes, north fixed orientation was not introduced, that could be a separate issue for that. First of all we want to fix the default behavior that 99% of users won't complain cause it's a big issue to change settings for most of the users. Later we could think for a small fraction of user who will be unhappy.

Current behavior had a problem for many users that did zoom in and map was rotated with random angle because of gesture nature.

dmpr0 commented 8 months ago

Review

Screenshot
sonora commented 8 months ago

From my testing with a few users, also novice ones: Yes, this now helps in many cases where users happen to start a small zoom operation before any unintended twist. But there are still some who manage to unintentionally twist before zooming, and find their map rotated (there is very little threshold) without intent, often not even noticing it.

So I continue to vote for a significant initial twist threshold. We could of course

PS: Please note that the coding of the latest commit is not clean, should be fixed in a final version: https://github.com/osmandapp/OsmAnd/commit/4d8e2088460f7f2c5385f8c892f81ddcb9504a42#commitcomment-137584766