QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsvectortileutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvectortileutils.h
3  --------------------------------------
4  Date : March 2020
5  Copyright : (C) 2020 by Martin Dobias
6  Email : wonder dot sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSVECTORTILEUTILS_H
17 #define QGSVECTORTILEUTILS_H
18 
19 #include "qgis_core.h"
20 
21 #define SIP_NO_FILE
22 
23 #include <QSet>
24 
25 class QPointF;
26 class QPolygon;
27 
29 class QgsFields;
30 class QgsMapToPixel;
31 class QgsRectangle;
32 class QgsVectorLayer;
33 
34 class QgsTileMatrix;
35 class QgsTileRange;
36 class QgsTileXYZ;
37 class QgsVectorTileLayer;
38 
45 class CORE_EXPORT QgsVectorTileUtils
46 {
47  public:
48 
50  static QVector<QgsTileXYZ> tilesInRange( QgsTileRange range, int zoomLevel );
52  static void sortTilesByDistanceFromCenter( QVector<QgsTileXYZ> &tiles, QPointF center );
53 
59  static QPolygon tilePolygon( QgsTileXYZ id, const QgsCoordinateTransform &ct, const QgsTileMatrix &tm, const QgsMapToPixel &mtp );
60 
62  static QgsFields makeQgisFields( const QSet<QString> &flds );
63 
72  static double scaleToZoom( double mapScale, double z0Scale = 559082264.0287178 );
73 
80  static int scaleToZoomLevel( double mapScale, int sourceMinZoom, int sourceMaxZoom, double z0Scale = 559082264.0287178 );
82  static QgsVectorLayer *makeVectorLayerForTile( QgsVectorTileLayer *mvt, QgsTileXYZ tileID, const QString &layerName );
84  static QString formatXYZUrlTemplate( const QString &url, QgsTileXYZ tile, const QgsTileMatrix &tileMatrix );
86  static bool checkXYZUrlTemplate( const QString &url );
87 };
88 
89 #endif // QGSVECTORTILEUTILS_H
QgsVectorTileLayer
Implements a map layer that is dedicated to rendering of vector tiles. Vector tiles compared to "ordi...
Definition: qgsvectortilelayer.h:84
QgsTileXYZ
Stores coordinates of a tile in a tile matrix set. Tile matrix is identified by the zoomLevel(),...
Definition: qgstiles.h:37
QgsTileRange
Range of tiles in a tile matrix to be rendered. The selection is rectangular, given by start/end row ...
Definition: qgstiles.h:70
QgsFields
Container of fields for a vector layer.
Definition: qgsfields.h:44
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:41
QgsVectorTileUtils
Random utility functions for working with vector tiles.
Definition: qgsvectortileutils.h:45
QgsTileMatrix
Defines a matrix of tiles for a single zoom level: it is defined by its size (width *.
Definition: qgstiles.h:107
QgsMapToPixel
Perform transforms between map coordinates and device coordinates.
Definition: qgsmaptopixel.h:38
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition: qgsvectorlayer.h:391
QgsCoordinateTransform
Class for doing transforms between two map coordinate systems.
Definition: qgscoordinatetransform.h:57