mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	E.g. when a vector tile connection has a manually set zoom level range which doesn't include level 0, we still need this available for correct tile feature decoding Fixes #47934
		
			
				
	
	
		
			369 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			369 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgstiles.h                                                  *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsTileXYZ
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Stores coordinates of a tile in a tile matrix set. Tile matrix is identified
 | 
						|
by the :py:func:`~zoomLevel`, and the position within tile matrix is given by :py:func:`~column`
 | 
						|
and :py:func:`~row`.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgstiles.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    QgsTileXYZ( int tc = -1, int tr = -1, int tz = -1 );
 | 
						|
%Docstring
 | 
						|
Constructs a tile identifier from given column, row and zoom level indices
 | 
						|
%End
 | 
						|
 | 
						|
    int column() const;
 | 
						|
%Docstring
 | 
						|
Returns tile's column index (X)
 | 
						|
%End
 | 
						|
    int row() const;
 | 
						|
%Docstring
 | 
						|
Returns tile's row index (Y)
 | 
						|
%End
 | 
						|
    int zoomLevel() const;
 | 
						|
%Docstring
 | 
						|
Returns tile's zoom level (Z)
 | 
						|
%End
 | 
						|
 | 
						|
    QString toString() const;
 | 
						|
%Docstring
 | 
						|
Returns tile coordinates in a formatted string
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
class QgsTileRange
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Range of tiles in a tile matrix to be rendered. The selection is rectangular,
 | 
						|
given by start/end row and column numbers.
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgstiles.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    QgsTileRange( int c1 = -1, int c2 = -1, int r1 = -1, int r2 = -1 );
 | 
						|
%Docstring
 | 
						|
Constructs a range of tiles from given span of columns and rows
 | 
						|
%End
 | 
						|
    bool isValid() const;
 | 
						|
%Docstring
 | 
						|
Returns whether the range is valid (when all row/column numbers are not negative)
 | 
						|
%End
 | 
						|
 | 
						|
    int startColumn() const;
 | 
						|
%Docstring
 | 
						|
Returns index of the first column in the range
 | 
						|
%End
 | 
						|
    int endColumn() const;
 | 
						|
%Docstring
 | 
						|
Returns index of the last column in the range
 | 
						|
%End
 | 
						|
    int startRow() const;
 | 
						|
%Docstring
 | 
						|
Returns index of the first row in the range
 | 
						|
%End
 | 
						|
    int endRow() const;
 | 
						|
%Docstring
 | 
						|
Returns index of the last row in the range
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
class QgsTileMatrix
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Defines a matrix of tiles for a single zoom level: it is defined by its size (width * \brief height)
 | 
						|
and map extent that it covers.
 | 
						|
 | 
						|
Please note that we follow the XYZ convention of X/Y axes, i.e. top-left tile has [0,0] coordinate
 | 
						|
(which is different from TMS convention where bottom-left tile has [0,0] coordinate).
 | 
						|
 | 
						|
.. versionadded:: 3.14
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgstiles.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    static QgsTileMatrix fromWebMercator( int zoomLevel );
 | 
						|
%Docstring
 | 
						|
Returns a tile matrix for the usual web mercator
 | 
						|
%End
 | 
						|
 | 
						|
    static QgsTileMatrix fromCustomDef( int zoomLevel, const QgsCoordinateReferenceSystem &crs,
 | 
						|
                                        const QgsPointXY &z0TopLeftPoint, double z0Dimension,
 | 
						|
                                        int z0MatrixWidth = 1, int z0MatrixHeight = 1 );
 | 
						|
%Docstring
 | 
						|
Returns a tile matrix for a specific CRS, top left point, zoom level 0 dimension in CRS units.
 | 
						|
 | 
						|
The ``z0Dimension`` argument must specify the dimension (width or height, in map units) of the root tiles in zoom level 0.
 | 
						|
%End
 | 
						|
 | 
						|
    static QgsTileMatrix fromTileMatrix( int zoomLevel, const QgsTileMatrix &tileMatrix );
 | 
						|
%Docstring
 | 
						|
Returns a tile matrix based on another one
 | 
						|
%End
 | 
						|
 | 
						|
    QgsCoordinateReferenceSystem crs() const;
 | 
						|
%Docstring
 | 
						|
Returns the crs of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`setCrs`
 | 
						|
%End
 | 
						|
 | 
						|
    void setCrs( const QgsCoordinateReferenceSystem &crs );
 | 
						|
%Docstring
 | 
						|
Sets the ``crs`` of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`crs`
 | 
						|
 | 
						|
.. versionadded:: 3.22.6
 | 
						|
%End
 | 
						|
 | 
						|
    int zoomLevel() const;
 | 
						|
%Docstring
 | 
						|
Returns the zoom level of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`setZoomLevel`
 | 
						|
%End
 | 
						|
 | 
						|
    void setZoomLevel( int level );
 | 
						|
%Docstring
 | 
						|
Sets the zoom ``level`` of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`zoomLevel`
 | 
						|
 | 
						|
.. versionadded:: 3.22.6
 | 
						|
%End
 | 
						|
 | 
						|
    int matrixWidth() const;
 | 
						|
%Docstring
 | 
						|
Returns number of columns of the tile matrix
 | 
						|
%End
 | 
						|
 | 
						|
    int matrixHeight() const;
 | 
						|
%Docstring
 | 
						|
Returns number of rows of the tile matrix
 | 
						|
%End
 | 
						|
 | 
						|
    QgsRectangle extent() const;
 | 
						|
%Docstring
 | 
						|
Returns extent of the tile matrix
 | 
						|
%End
 | 
						|
 | 
						|
    double scale() const;
 | 
						|
%Docstring
 | 
						|
Returns scale denominator of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`setScale`
 | 
						|
%End
 | 
						|
 | 
						|
    void setScale( double scale );
 | 
						|
%Docstring
 | 
						|
Sets the scale denominator of the tile matrix.
 | 
						|
 | 
						|
.. seealso:: :py:func:`scale`
 | 
						|
 | 
						|
.. versionadded:: 3.22.6
 | 
						|
%End
 | 
						|
 | 
						|
    QgsRectangle tileExtent( QgsTileXYZ id ) const;
 | 
						|
%Docstring
 | 
						|
Returns extent of the given tile in this matrix
 | 
						|
%End
 | 
						|
 | 
						|
    QgsPointXY tileCenter( QgsTileXYZ id ) const;
 | 
						|
%Docstring
 | 
						|
Returns center of the given tile in this matrix
 | 
						|
%End
 | 
						|
 | 
						|
    QgsTileRange tileRangeFromExtent( const QgsRectangle &mExtent ) const;
 | 
						|
%Docstring
 | 
						|
Returns tile range that fully covers the given extent
 | 
						|
%End
 | 
						|
 | 
						|
    QPointF mapToTileCoordinates( const QgsPointXY &mapPoint ) const;
 | 
						|
%Docstring
 | 
						|
Returns row/column coordinates (floating point number) from the given point in map coordinates
 | 
						|
%End
 | 
						|
 | 
						|
    bool isRootTileMatrix() const;
 | 
						|
%Docstring
 | 
						|
Returns the root status of the tile matrix (zoom level == 0)
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
class QgsTileMatrixSet
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Defines a set of tile matrices for multiple zoom levels.
 | 
						|
 | 
						|
.. versionadded:: 3.22.6
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgstiles.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    virtual ~QgsTileMatrixSet();
 | 
						|
 | 
						|
    bool isEmpty() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the matrix set is empty.
 | 
						|
%End
 | 
						|
 | 
						|
    void addGoogleCrs84QuadTiles( int minimumZoom = 0, int maximumZoom = 14 );
 | 
						|
%Docstring
 | 
						|
Adds tile matrices corresponding to the standard web mercator/GoogleCRS84Quad setup.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsTileMatrix tileMatrix( int zoom ) const;
 | 
						|
%Docstring
 | 
						|
Returns the tile matrix corresponding to the specified ``zoom``.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsTileMatrix rootMatrix() const;
 | 
						|
%Docstring
 | 
						|
Returns the root tile matrix (usually corresponding to zoom level 0).
 | 
						|
 | 
						|
.. versionadded:: 3.28
 | 
						|
%End
 | 
						|
 | 
						|
    void setRootMatrix( const QgsTileMatrix &matrix );
 | 
						|
%Docstring
 | 
						|
Sets the root tile ``matrix`` (usually corresponding to zoom level 0).
 | 
						|
 | 
						|
.. versionadded:: 3.28
 | 
						|
%End
 | 
						|
 | 
						|
    void addMatrix( const QgsTileMatrix &matrix );
 | 
						|
%Docstring
 | 
						|
Adds a ``matrix`` to the set.
 | 
						|
 | 
						|
Any existing matrix with the same :py:func:`QgsTileMatrix.zoomLevel()` will be replaced.
 | 
						|
%End
 | 
						|
 | 
						|
    int minimumZoom() const;
 | 
						|
%Docstring
 | 
						|
Returns the minimum zoom level for tiles present in the set.
 | 
						|
 | 
						|
.. seealso:: :py:func:`maximumZoom`
 | 
						|
%End
 | 
						|
 | 
						|
    int maximumZoom() const;
 | 
						|
%Docstring
 | 
						|
Returns the maximum zoom level for tiles present in the set.
 | 
						|
 | 
						|
.. seealso:: :py:func:`minimumZoom`
 | 
						|
%End
 | 
						|
 | 
						|
    void dropMatricesOutsideZoomRange( int minimumZoom, int maximumZoom );
 | 
						|
%Docstring
 | 
						|
Deletes any existing matrices which fall outside the zoom range specified
 | 
						|
by ``minimumZoom`` to ``maximumZoom``, inclusive.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsCoordinateReferenceSystem crs() const;
 | 
						|
%Docstring
 | 
						|
Returns the coordinate reference system associated with the tiles.
 | 
						|
 | 
						|
In the case of a tile set containing mixed CRS at different zoom levels
 | 
						|
this method will return the crs of the minimum zoom tile matrix.
 | 
						|
%End
 | 
						|
 | 
						|
    double scaleToZoom( double scale ) const;
 | 
						|
%Docstring
 | 
						|
Calculates a fractional zoom level given a map ``scale`` denominator.
 | 
						|
 | 
						|
The zoom level will be linearly interpolated between zoom levels present in the set.
 | 
						|
%End
 | 
						|
 | 
						|
    int scaleToZoomLevel( double scale ) const;
 | 
						|
%Docstring
 | 
						|
Finds the best fitting (integer) zoom level given a map ``scale`` denominator.
 | 
						|
 | 
						|
Values are constrained to the zoom levels between :py:func:`~QgsTileMatrixSet.minimumZoom` and :py:func:`~QgsTileMatrixSet.maximumZoom`.
 | 
						|
%End
 | 
						|
 | 
						|
    double scaleForRenderContext( const QgsRenderContext &context ) const;
 | 
						|
%Docstring
 | 
						|
Calculates the correct scale to use for the tiles when rendered using the specified render ``context``.
 | 
						|
 | 
						|
.. versionadded:: 3.26
 | 
						|
%End
 | 
						|
 | 
						|
    double calculateTileScaleForMap( double actualMapScale,
 | 
						|
                                     const QgsCoordinateReferenceSystem &mapCrs,
 | 
						|
                                     const QgsRectangle &mapExtent,
 | 
						|
                                     const QSize mapSize,
 | 
						|
                                     const double mapDpi
 | 
						|
                                   ) const;
 | 
						|
%Docstring
 | 
						|
Calculates the correct scale to use for the tiles when rendered using the specified map properties.
 | 
						|
 | 
						|
.. versionadded:: 3.26
 | 
						|
%End
 | 
						|
 | 
						|
    virtual bool readXml( const QDomElement &element, QgsReadWriteContext &context );
 | 
						|
%Docstring
 | 
						|
Reads the set from an XML ``element``.
 | 
						|
 | 
						|
.. seealso:: :py:func:`writeXml`
 | 
						|
%End
 | 
						|
 | 
						|
    virtual QDomElement writeXml( QDomDocument &document, const QgsReadWriteContext &context ) const;
 | 
						|
%Docstring
 | 
						|
Writes the set to an XML element.
 | 
						|
%End
 | 
						|
 | 
						|
    Qgis::ScaleToTileZoomLevelMethod scaleToTileZoomMethod() const;
 | 
						|
%Docstring
 | 
						|
Returns the scale to tile zoom method.
 | 
						|
 | 
						|
.. seealso:: :py:func:`setScaleToTileZoomMethod`
 | 
						|
%End
 | 
						|
 | 
						|
    void setScaleToTileZoomMethod( Qgis::ScaleToTileZoomLevelMethod method );
 | 
						|
%Docstring
 | 
						|
Sets the scale to tile zoom method.
 | 
						|
 | 
						|
.. seealso:: :py:func:`scaleToTileZoomMethod`
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgstiles.h                                                  *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 |