QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsvectortilemvtencoder.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvectortilemvtencoder.h
3  --------------------------------------
4  Date : April 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 QGSVECTORTILEMVTENCODER_H
17 #define QGSVECTORTILEMVTENCODER_H
18 
19 #define SIP_NO_FILE
20 
21 #include "qgstiles.h"
22 #include "qgsvectortilerenderer.h"
23 #include "vector_tile.pb.h"
24 #include "qgscoordinatetransform.h"
25 
40 class CORE_EXPORT QgsVectorTileMVTEncoder
41 {
42  public:
44  explicit QgsVectorTileMVTEncoder( QgsTileXYZ tileID );
45 
47  explicit QgsVectorTileMVTEncoder( QgsTileXYZ tileID, const QgsTileMatrix &tileMatrix );
48 
50  int resolution() const { return mResolution; }
52  void setResolution( int extent ) { mResolution = extent; }
53 
55  int tileBuffer() const { return mBuffer; }
57  void setTileBuffer( int buffer ) { mBuffer = buffer; }
58 
60  void setTransformContext( const QgsCoordinateTransformContext &transformContext ) { mTransformContext = transformContext; }
61 
67  void addLayer( QgsVectorLayer *layer, QgsFeedback *feedback = nullptr, QString filterExpression = QString(), QString layerName = QString() );
68 
70  QByteArray encode() const;
71 
72  private:
73  void addFeature( vector_tile::Tile_Layer *tileLayer, const QgsFeature &f );
74 
75  private:
76  QgsTileXYZ mTileID;
77  int mResolution = 4096;
78  int mBuffer = 256;
79  QgsCoordinateTransformContext mTransformContext;
80 
81  QgsRectangle mTileExtent;
83 
84  QgsVectorTileFeatures mFeatures;
85 
86  vector_tile::Tile tile;
87 
88  QMap<QVariant, int> mKnownValues;
89 
90 };
91 
92 #endif // QGSVECTORTILEMVTENCODER_H
qgsvectortilerenderer.h
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition: qgscoordinatetransformcontext.h:57
QgsTileXYZ
Stores coordinates of a tile in a tile matrix set. Tile matrix is identified by the zoomLevel(),...
Definition: qgstiles.h:37
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:41
QgsTileMatrix
Defines a matrix of tiles for a single zoom level: it is defined by its size (width *.
Definition: qgstiles.h:107
QgsVectorTileMVTEncoder::tileBuffer
int tileBuffer() const
Returns size of the buffer zone around tile edges in integer tile coordinates. The default is 256 (~6...
Definition: qgsvectortilemvtencoder.h:55
QgsVectorTileMVTEncoder::setResolution
void setResolution(int extent)
Sets the resolution of coordinates of geometries within the tile.
Definition: qgsvectortilemvtencoder.h:52
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:44
QgsVectorTileMVTEncoder::setTransformContext
void setTransformContext(const QgsCoordinateTransformContext &transformContext)
Sets coordinate transform context for transforms between layers and tile matrix CRS.
Definition: qgsvectortilemvtencoder.h:60
qgscoordinatetransform.h
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:211
QgsVectorTileMVTEncoder::setTileBuffer
void setTileBuffer(int buffer)
Sets size of the buffer zone around tile edges in integer tile coordinates.
Definition: qgsvectortilemvtencoder.h:57
qgstiles.h
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition: qgsvectorlayer.h:391
QgsVectorTileMVTEncoder
Handles conversion of vector features to Mapbox vector tiles encoding.
Definition: qgsvectortilemvtencoder.h:40
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:55
QgsVectorTileFeatures
QMap< QString, QVector< QgsFeature > > QgsVectorTileFeatures
Features of a vector tile, grouped by sub-layer names (key of the map)
Definition: qgsvectortilerenderer.h:27
QgsVectorTileMVTEncoder::resolution
int resolution() const
Returns resolution of coordinates of geometries within the tile. The default is 4096.
Definition: qgsvectortilemvtencoder.h:50