QGIS API Documentation  3.27.0-Master (0e23467727)
qgsvtpktiles.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvtpktiles.h
3  --------------------------------------
4  Date : March 2022
5  Copyright : (C) 2022 by Nyall Dawson
6  Email : nyall dot dawson 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 QGSVTPKTILES_H
17 #define QGSVTPKTILES_H
18 
19 #include "qgis_core.h"
20 
21 #include "sqlite3.h"
22 #include "qgsvectortilematrixset.h"
23 
24 #include <QVariantMap>
25 
26 class QImage;
27 class QgsRectangle;
29 class QgsLayerMetadata;
30 
37 class CORE_EXPORT QgsVtpkTiles
38 {
39  public:
41  explicit QgsVtpkTiles( const QString &filename );
42 
43 #ifndef SIP_RUN
45  QgsVtpkTiles( const QgsVtpkTiles &other ) = delete;
47  QgsVtpkTiles &operator=( const QgsVtpkTiles &other ) = delete;
48 #endif
49  ~QgsVtpkTiles();
50 
52  bool open();
53 
55  bool isOpen() const;
56 
62  QVariantMap metadata() const;
63 
67  QVariantMap styleDefinition() const;
68 
72  QVariantMap spriteDefinition() const;
73 
77  QImage spriteImage() const;
78 
82  QgsLayerMetadata layerMetadata() const;
83 
87  QgsVectorTileMatrixSet matrixSet() const;
88 
93 
97  QgsRectangle extent( const QgsCoordinateTransformContext &context ) const;
98 
102  QByteArray tileData( int z, int x, int y );
103 
104  private:
105 
106 #ifdef SIP_RUN
108  QgsVtpkTiles( const QgsVtpkTiles &other );
109 #endif
110 
111  QString mFilename;
112  struct zip *mZip = nullptr;
113  mutable QVariantMap mMetadata;
114  mutable QgsVectorTileMatrixSet mMatrixSet;
115  mutable int mPacketSize = -1;
116 };
117 
118 
119 #endif // QGSVTPKTILES_H
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
A structured metadata store for a map layer.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Encapsulates properties of a vector tile matrix set, including tile origins and scaling information.
Utility class for reading and writing ESRI VTPK files.
Definition: qgsvtpktiles.h:38
QgsVtpkTiles & operator=(const QgsVtpkTiles &other)=delete
QgsVtpkTiles cannot be copied.
QgsVtpkTiles(const QgsVtpkTiles &other)=delete
QgsVtpkTiles cannot be copied.
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.
const QgsCoordinateReferenceSystem & crs