The MapViews tool has a couple of limitations that make it difficult to use with complex maps with specific needs. When a user adds a Map View, the visibility of the layers will be kept in sync with the visibility of the layers in the TOC; when a layer is activated in the TOC, the change is also applied to the Map View. It is possible to partially or completely disconnect the visibility of the layer in a Map View by toggling the visibility of the layer in the Layer Options settings of the Map View. After this action, a reset symbol appears.
This means that when you want to completely unlink the visibility of TOC layers from the visibility of Map View layers , you need to toggle all layers individually in the Layer Options settings of the Map View. For maps with a limited number of layers, this is not a big problem, but this is a big limitation in the user experience for complex maps with many layers (maybe also with similar names) in different groups.
In order to address the above, this task should include following basic actions:
replacing of UI component using the new TOC one
introducing groups configuration in views
review the workflow of layer overrides: opacity, visibility and clippingPolygon
In addition, due to the above, clipping options for both Terrain and 3D Tiles layers should be differently handled moving them to Globe settings or enhancing the TOC component respectively.
As for the unlink logic, the header should include the following components:
an input field to filter the layer nodes (similar to main TOC)
a toolbar with following buttons for the whole TOC:
global sync/reset button: this button will be available if one or more layers have been modified in the layer options, clicking this button will remove all the view overrides and it will align the state of layers to the one in the map TOC
global copy config button: this button will allow the user to copy the layer state (visibility and opacity configurations) of the TOC into the map view. In this way the map view will not be affected by future changes inside the map TOC until you click on the sync button (current reset)
What kind of improvement you want to add? (check one with "x", remove the others)
[x] Minor changes to existing features
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Other... Please describe:
### Tasks
- [ ] Refactor of Layer Settings UI using the TOC components and review the merge workflow
- [ ] Persist the support for clipping for Terrain layer
- [ ] Persist the support for clipping for 3D Tiles layers
- [ ] Include a TOC header in Layer Options with filter and toolbar
Description
The MapViews tool has a couple of limitations that make it difficult to use with complex maps with specific needs. When a user adds a Map View, the visibility of the layers will be kept in sync with the visibility of the layers in the TOC; when a layer is activated in the TOC, the change is also applied to the Map View. It is possible to partially or completely disconnect the visibility of the layer in a Map View by toggling the visibility of the layer in the Layer Options settings of the Map View. After this action, a reset symbol appears.
This means that when you want to completely unlink the visibility of TOC layers from the visibility of Map View layers , you need to toggle all layers individually in the Layer Options settings of the Map View. For maps with a limited number of layers, this is not a big problem, but this is a big limitation in the user experience for complex maps with many layers (maybe also with similar names) in different groups.
In order to address the above, this task should include following basic actions:
In addition, due to the above, clipping options for both Terrain and 3D Tiles layers should be differently handled moving them to Globe settings or enhancing the TOC component respectively.
As for the unlink logic, the header should include the following components:
What kind of improvement you want to add? (check one with "x", remove the others)
Other useful information