This mode is purely for animated map movies -- the user can set
the total number of frames, and the animation will progress
frame by frame for that number of frames, advancing the current
map settings frame at each step (also the @frame_number expression
variable).
No time based filtering of data is performed when in this mode.
When selected, this causes the temporal navigation to step between
all available time ranges from layers in the project.
It's useful when a project contains layers with non-contiguous
available times, e.g. from a WMS-T which images available at
irregular dates, and you want to only step between time ranges
where the next available image is shown.
Refs Natural resources Canada Contract: 3000720707
Currently, we pass the frame duration as a QgsInterval and use the average
duration of a month or year during the animation, for instance, 30 days
rather than a month. This makes it impossible to have an animation that
displays on a particular day each month, as the day in the next month will
change depending on the number of days in the previous month.
This changes QgsTemporalNavigationObject to take the time step and time
step unit as separate arguments. The settings in
QgsTemporalUtils::exportAnimation are left unchanged, because in this case
the user interface is already set up to use an interval.
If the time step has a fractional value, the frame duration is calculated
using a QgsInterval as before. If it has an integer value, the calculation
uses QDateTime to advance by the specified time step instead. So a value of
1.5 months results in a frame duration of 45 days, but a value of 1 month
will result in a duration that depends on the length of the current month.
Fixes#37829.
Try to remember/set last timeframe (upon timestep- or timeframe-changes).
Setting the stepsize to a different size, did reset the slider to start
(aka timeframe 0).
Same when you changed the range (data time) extent.
This commit tries to set the slider to the same position as before the
step change, if possible). Else it will take the position of the timeframe
in which the start of the old timeframe fits.
fixes#39994
This commit adds a new signal to the QgsTemporalNavigationObject, which is
emitted when the frameDuration (of current QgsTemporalNavigationObject) is
change.
It also fixes the issue that changing the frame in the Temporal
Navigation-WIDGET was not reflected in the widget itself.