QGIS API Documentation  3.21.0-Master (56b4176581)
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( const QgsTileRange &range, int zoomLevel );
52  static void sortTilesByDistanceFromCenter( QVector<QgsTileXYZ> &tiles, const QPointF &center );
53 
59  static QPolygon tilePolygon( QgsTileXYZ id, const QgsCoordinateTransform &ct, const QgsTileMatrix &tm, const QgsMapToPixel &mtp );
60 
62  static QgsFields makeQgisFields( QSet<QString> flds );
63 
69  static double scaleToZoom( double mapScale );
70 
72  static int scaleToZoomLevel( double mapScale, int sourceMinZoom, int sourceMaxZoom );
74  static QgsVectorLayer *makeVectorLayerForTile( QgsVectorTileLayer *mvt, QgsTileXYZ tileID, const QString &layerName );
76  static QString formatXYZUrlTemplate( const QString &url, QgsTileXYZ tile, const QgsTileMatrix &tileMatrix );
78  static bool checkXYZUrlTemplate( const QString &url );
79 };
80 
81 #endif // QGSVECTORTILEUTILS_H
Class for doing transforms between two map coordinate systems.
Container of fields for a vector layer.
Definition: qgsfields.h:45
Perform transforms between map coordinates and device coordinates.
Definition: qgsmaptopixel.h:39
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Defines a matrix of tiles for a single zoom level: it is defined by its size (width *.
Definition: qgstiles.h:104
Range of tiles in a tile matrix to be rendered.
Definition: qgstiles.h:67
Stores coordinates of a tile in a tile matrix set.
Definition: qgstiles.h:34
Represents a vector layer which manages a vector based data sets.
Implements a map layer that is dedicated to rendering of vector tiles.
Random utility functions for working with vector tiles.