geosolutions-it / MapStore2

The solution to create and share maps, dashboards, geostories with 3D support on the web. And it is open-source too!
https://mapstore.geosolutionsgroup.com/
Other
474 stars 379 forks source link

Enhance UX for simple 3D navigation in touch devices #10225

Closed mahmoudadel54 closed 3 days ago

mahmoudadel54 commented 1 month ago

Description

We need to provide further options for the 3D map navigation aimed to limit the user interaction for a more guided 3D experience in contexts where the navigation should not go outside to a particular area and the user should be well focused on a limited extent with limited navigation capabilities. This task mostly involves the 3D Camera settings for which further options should be provided (if possible) in the 3D map map settings UI (see documentation here).

Image

Possible options we should provide to limit the 3D navigation are the following:

Considering the above points (any other interesting idea?) we need first of all to investigate on possible options available in the Cesium JS version current used by MS and evaluate the effort for implementing them

What kind of improvement you want to add? (check one with "x", remove the others)

Other useful information

mahmoudadel54 commented 4 weeks ago

As per my initial investigation:

tdipisa commented 4 weeks ago

@mahmoudadel54 got it. Thank you.

As per my initial investigation:

As I said in the call let's implement it for now only at plugin config level by exposing the new properties. We will evaluate for a possible UI in a second moment

  • Guided 3D navigation: fix camera orientation limits and/or fixed camera orientation [is applicable to implement by current map center]

ok

  • Block tilt operations to prevent the user from going underground [currently disable tilt will disable rotate/zoom by wheel but for applying disable only tilt will need a workaround to implement disabling only the tilt]

let's hear from @allyoucanmap but I would like to maintain things simple and in line with the Cesium JS lib for the moment without any workaround since there are not specific need for doing this.

  • Limited zoom level if possible [it is applicable]

ok

  • Quick reset of the 3D map view to restore the initial state [it is applicable preserve the stored camera map scene]

ok

  • Enable/disable the compass [it is applicable, if user disables the compass, the compass will hide --> as vice versa the compass widget will show it]

I think this can go together with point 2