EnMAP-Box / enmap-box

EnMAP-Box source code repository. See https://enmap-box.readthedocs.io for documentation
GNU General Public License v3.0
35 stars 16 forks source link

[Feature Request] Temporal Controler Panel #277

Open jakimowb opened 1 year ago

jakimowb commented 1 year ago

QGIS uses the QgsTemporalControllerWidget to manage the temporal properties of its central QgsMapCanvas via:

grafik

void QgsMapCanvas::setTemporalController(QgsTemporalController * controller)    
void QgsMapCanvas::setTemporalRange(const QgsDateTimeRange & range)     

Following the multi-mapview approach realized in the EnMAP-Box, it would make sense to have similar panel that:

This may be implemented as an extendable list of QgsTemporalControlerWidgets and a matrix that allows to link these controller witth EnMAP-Box MapCanvases.

Untitled-2022-11-26-1603

janzandr commented 1 year ago

I would suggest to only have a single Temporal Controller.

janzandr commented 1 year ago

Also, I would not temporally control at a MapView-level, but rather individual layer, like known from QGIS. image

janzandr commented 1 year ago

Hi @jakimowb, before you start implementing this, please let's meet and discuss details.

jakimowb commented 1 year ago

I don't get your point. The temporal controler in QGIS controls "at MapView-level", i.e. the QgsMapCanvas filters all layers which are out-of-date range. That's what I like to see in the EnMAP-Box as well. The only difference is, that we should have a multi-map solution that allows to modifiy map date ranges individually. For example:

Map 1: range 2000-2005 - but this can be changed independent of Map 2 Map 2: range 2010-2020 - but this can be changed independent of Map 1

In any case, the temporal properties of a data source are set at the map layer level (and as known from QGIS), e.g. using the layer properties dialog or specialized EnMAP-Box widgets / object. For example a renderer that is aware of the QgsMapCanvas temporal range and selects the bands automatically.

janzandr commented 1 year ago

The temporal controler in QGIS controls "at MapView-level"

No, not true. Here you see 3 QGIS Map Views, all are controled by the single Temporal Controller panel: image

I would suggest, that we stick to the same concept for the EnMAP-Box. Otherwise it may get to complicated.

jakimowb commented 1 year ago

Now I understand what you mean. My feature request is to enhance this concept and allow to show different time frames in different maps canvases (or to disconnect a canvas from a temporal controler, what seems no to be possible in QGIS). Why do you think it is "to complicated"?

janzandr commented 1 year ago

Why do you think it is "to complicated"?

Having more than one Temporal Controller is to complicated. I would stick to the basic concept introduced by QGIS: all layers, that are under temporal control, are controlled by THE Temporal Controller, no matter in what MapView they are displayed.