QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
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 
55  static QPolygon tilePolygon( QgsTileXYZ id, const QgsCoordinateTransform &ct, const QgsTileMatrix &tm, const QgsMapToPixel &mtp );
57  static QgsFields makeQgisFields( QSet<QString> flds );
58 
64  static double scaleToZoom( double mapScale );
65 
67  static int scaleToZoomLevel( double mapScale, int sourceMinZoom, int sourceMaxZoom );
69  static QgsVectorLayer *makeVectorLayerForTile( QgsVectorTileLayer *mvt, QgsTileXYZ tileID, const QString &layerName );
71  static QString formatXYZUrlTemplate( const QString &url, QgsTileXYZ tile, const QgsTileMatrix &tileMatrix );
73  static bool checkXYZUrlTemplate( const QString &url );
74 };
75 
76 #endif // QGSVECTORTILEUTILS_H
QgsVectorTileLayer
Implements a map layer that is dedicated to rendering of vector tiles.
Definition: qgsvectortilelayer.h:84
QgsTileXYZ
Stores coordinates of a tile in a tile matrix set.
Definition: qgstiles.h:33
QgsTileRange
Range of tiles in a tile matrix to be rendered.
Definition: qgstiles.h:66
QgsFields
Container of fields for a vector layer.
Definition: qgsfields.h:45
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:42
QgsVectorTileUtils
Random utility functions for working with vector tiles.
Definition: qgsvectortileutils.h:46
QgsTileMatrix
Defines a matrix of tiles for a single zoom level: it is defined by its size (width * height) and map...
Definition: qgstiles.h:103
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:387
QgsCoordinateTransform
Class for doing transforms between two map coordinate systems.
Definition: qgscoordinatetransform.h:53