osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.69k stars 1.02k forks source link

Feature request: one-handed gestures (or buttons) to rotate map #16720

Open mikehgentry opened 1 year ago

mikehgentry commented 1 year ago

🚀 feature request

Description

Now that the 3D view is in full swing (and it's working really well, so thanks for that!), being able to easily move the virtual camera around in order to get the right view of a hilly route has become desirable. Rotating the map is the weakspot here - it's often a little cumbersome, and close to impossible one-handed.

Describe the solution you'd like

The double tap and swipe gesture for zooming is only using one axis. You could use the other axis for map rotation.

[edit: I suppose it'd make sense to have quite a large 'deadzone' to stop accidental rotations, unless you're in manual rotate mode already]

Describe alternatives you've considered

Having a pair of buttons that can be switched on for a profile (or making the +/- buttons have an alternate mode, perhaps) would also work, but takes up screen space (or adds another mode to confuse people), and I think the gestures would work pretty intuitively.

pogos-ed commented 6 days ago

I propose to:

  1. enable some minimum threshold distance between fingers for map rotation gesture in 3D Terrain mode. Otherwise the map rotates accidentally if I want to change viewing polar angle using two fingers swipe in 3D Terrain mode.
  2. enable some maximum threshold distance between fingers for two fingers swipe in 3D Terrain mode
  3. add buttons for camera view adjustment in 3D Terrain mode: rotate clockwise/counterclockwise, increase/decrease polar angle
  4. make it possible to set up camera view direction to the sky (disable current limitations for polar angle). The reason is to see the route in 3D Terrain mode from mountain lowland to the summit (see video attached).

https://github.com/user-attachments/assets/205c890b-23ce-4d64-878d-cb76fbfa6b80

vshcherb commented 5 days ago
  1. implemented part of another issue
  2. is not possible to implement (as just limit) as it would have infinite horizon, in your case it's hidden behind mountains but in other cases it will crash with out of memory. It needs to be implemented different with round earth in combination. 2.3. Something to think about