mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			151 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgstemporalutils.h                                          *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsTemporalUtils
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Contains utility methods for working with temporal layers and projects.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgstemporalutils.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    static QgsDateTimeRange calculateTemporalRangeForProject( QgsProject *project );
 | 
						|
%Docstring
 | 
						|
Calculates the temporal range for a ``project``.
 | 
						|
 | 
						|
This method considers the temporal range available from layers contained within the project and
 | 
						|
returns the maximal combined temporal extent of these layers.
 | 
						|
%End
 | 
						|
 | 
						|
    static QList< QgsDateTimeRange > usedTemporalRangesForProject( QgsProject *project );
 | 
						|
%Docstring
 | 
						|
Calculates all temporal ranges which are in use for a ``project``.
 | 
						|
 | 
						|
This method considers the temporal range available from layers contained within the project and
 | 
						|
returns a list of ranges which cover only the temporal ranges which are actually in use by layers
 | 
						|
in the project.
 | 
						|
 | 
						|
The returned list may be non-contiguous and have gaps in the ranges. The ranges are sorted in ascending order.
 | 
						|
 | 
						|
.. versionadded:: 3.20
 | 
						|
%End
 | 
						|
 | 
						|
    struct AnimationExportSettings
 | 
						|
    {
 | 
						|
      QgsDateTimeRange animationRange;
 | 
						|
 | 
						|
      QgsInterval frameDuration;
 | 
						|
 | 
						|
      QString outputDirectory;
 | 
						|
 | 
						|
      QString fileNameTemplate;
 | 
						|
 | 
						|
      QList<QgsMapDecoration *> decorations;
 | 
						|
 | 
						|
      QList<QgsDateTimeRange> availableTemporalRanges;
 | 
						|
 | 
						|
      double frameRate;
 | 
						|
 | 
						|
    };
 | 
						|
 | 
						|
    static bool exportAnimation( const QgsMapSettings &mapSettings, const AnimationExportSettings &settings, QString &error /Out/, QgsFeedback *feedback = 0 );
 | 
						|
%Docstring
 | 
						|
Exports animation frames by rendering the map to multiple destination images.
 | 
						|
 | 
						|
The ``mapSettings`` argument dictates the overall map settings such as extent
 | 
						|
and size, while animation and export specific settings are specified via the ``settings``
 | 
						|
argument.
 | 
						|
 | 
						|
An optional ``feedback`` argument can be used to provide progress reports and cancellation
 | 
						|
support.
 | 
						|
 | 
						|
:param mapSettings: settings controlling the map render
 | 
						|
:param settings: animation and export settings
 | 
						|
:param feedback: optional feedback object for progress reports and cancellation checks
 | 
						|
 | 
						|
:return: - ``True`` if the export was successful.
 | 
						|
         - error: will be set to a descriptive error message if the export fails
 | 
						|
%End
 | 
						|
 | 
						|
    static QDateTime calculateFrameTime( const QDateTime &start, const long long frame, const QgsInterval &interval );
 | 
						|
%Docstring
 | 
						|
Calculates the frame time for an animation.
 | 
						|
 | 
						|
If the interval original duration is fractional or interval original unit is
 | 
						|
unknown (:py:class:`QgsUnitTypes`.TemporalUnit.TemporalUnknownUnit), then :py:class:`QgsInterval` is used
 | 
						|
to determine the duration of the frame. This uses average durations for months and years.
 | 
						|
 | 
						|
Otherwise, we use QDateTime to advance by the exact duration of the current
 | 
						|
month or year.
 | 
						|
So a time step of 1.5 months will result in a duration of 45
 | 
						|
days, but a time step of 1 month will result in a duration that depends upon
 | 
						|
the number of days in the current month.
 | 
						|
 | 
						|
:param start: time of the animation
 | 
						|
:param frame: number
 | 
						|
:param interval: duration of the animation
 | 
						|
 | 
						|
:return: The calculated datetime for the frame.
 | 
						|
 | 
						|
 | 
						|
.. versionadded:: 3.18
 | 
						|
%End
 | 
						|
 | 
						|
    static QList< QDateTime > calculateDateTimesUsingDuration( const QDateTime &start, const QDateTime &end, const QString &duration, bool &ok /Out/, bool &maxValuesExceeded /Out/, int maxValues = -1 );
 | 
						|
%Docstring
 | 
						|
Calculates a complete list of datetimes between ``start`` and ``end``, using the specified ISO8601 ``duration`` string (eg "PT12H").
 | 
						|
 | 
						|
:param start: start date time
 | 
						|
:param end: end date time
 | 
						|
:param duration: ISO8601 duration string
 | 
						|
:param maxValues: maximum number of values to return, or -1 to return all values
 | 
						|
 | 
						|
:return: - calculated list of date times
 | 
						|
         - ok: will be set to ``True`` if ``duration`` was successfully parsed and date times could be calculated
 | 
						|
         - maxValuesExceeded: will be set to ``True`` if the maximum number of values to return was exceeded
 | 
						|
 | 
						|
.. versionadded:: 3.20
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    static QList< QDateTime > calculateDateTimesFromISO8601( const QString &string, bool &ok /Out/, bool &maxValuesExceeded /Out/, int maxValues = -1 );
 | 
						|
%Docstring
 | 
						|
Calculates a complete list of datetimes from a ISO8601 ``string`` containing a duration (eg "2021-03-23T00:00:00Z/2021-03-24T12:00:00Z/PT12H").
 | 
						|
 | 
						|
:param string: ISO8601 compatible string
 | 
						|
:param maxValues: maximum number of values to return, or -1 to return all values
 | 
						|
 | 
						|
:return: - calculated list of date times
 | 
						|
         - ok: will be set to ``True`` if ``string`` was successfully parsed and date times could be calculated
 | 
						|
         - maxValuesExceeded: will be set to ``True`` if the maximum number of values to return was exceeded
 | 
						|
 | 
						|
.. versionadded:: 3.20
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgstemporalutils.h                                          *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 |