QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsquickmapsettings.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsquickmapsettings.h
3  --------------------------------------
4  Date : 27.12.2014
5  Copyright : (C) 2014 by Matthias Kuhn
6  Email : matthias (at) opengis.ch
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 QGSQUICKMAPSETTINGS_H
17 #define QGSQUICKMAPSETTINGS_H
18 
19 #include "qgis_quick.h"
20 
21 #include <QObject>
22 
24 #include "qgsmaplayer.h"
25 #include "qgsmapsettings.h"
26 #include "qgsmapthemecollection.h"
27 #include "qgspoint.h"
28 #include "qgsrectangle.h"
29 
30 class QgsProject;
31 
47 class QUICK_EXPORT QgsQuickMapSettings : public QObject
48 {
49  Q_OBJECT
50 
58  Q_PROPERTY( QgsProject *project READ project WRITE setProject NOTIFY projectChanged )
59 
60 
68  Q_PROPERTY( QgsRectangle extent READ extent WRITE setExtent NOTIFY extentChanged )
70  Q_PROPERTY( QgsRectangle visibleExtent READ visibleExtent NOTIFY visibleExtentChanged )
72  Q_PROPERTY( double mapUnitsPerPixel READ mapUnitsPerPixel NOTIFY mapUnitsPerPixelChanged )
74  Q_PROPERTY( double mapUnitsPerPoint READ mapUnitsPerPoint NOTIFY mapUnitsPerPointChanged )
75 
76 
80  Q_PROPERTY( double rotation READ rotation WRITE setRotation NOTIFY rotationChanged )
81 
82 
87  Q_PROPERTY( QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged )
88 
89 
94  Q_PROPERTY( QSize outputSize READ outputSize WRITE setOutputSize NOTIFY outputSizeChanged )
95 
96 
101  Q_PROPERTY( double outputDpi READ outputDpi WRITE setOutputDpi NOTIFY outputDpiChanged )
102 
103 
108  Q_PROPERTY( QgsCoordinateReferenceSystem destinationCrs READ destinationCrs WRITE setDestinationCrs NOTIFY destinationCrsChanged )
109 
110 
118  Q_PROPERTY( QList<QgsMapLayer *> layers READ layers WRITE setLayers NOTIFY layersChanged )
119 
120  public:
122  explicit QgsQuickMapSettings( QObject *parent = nullptr );
123  ~QgsQuickMapSettings() = default;
124 
126  QgsMapSettings mapSettings() const;
127 
129  QgsRectangle extent() const;
130 
132  void setExtent( const QgsRectangle &extent );
133 
135  void setProject( QgsProject *project );
136 
138  QgsProject *project() const;
139 
141  Q_INVOKABLE void setCenter( const QgsPoint &center );
142 
144  double mapUnitsPerPixel() const;
145 
147  Q_INVOKABLE void setCenterToLayer( QgsMapLayer *layer, bool shouldZoom = true );
148 
150  double mapUnitsPerPoint() const;
151 
153  QgsRectangle visibleExtent() const;
154 
156  Q_INVOKABLE QgsCoordinateTransformContext transformContext() const;
157 
165  Q_INVOKABLE QPointF coordinateToScreen( const QgsPoint &point ) const;
166 
174  Q_INVOKABLE QgsPoint screenToCoordinate( const QPointF &point ) const;
175 
178 
180  double rotation() const;
181 
183  void setRotation( double rotation );
184 
186  QColor backgroundColor() const;
187 
189  void setBackgroundColor( const QColor &color );
190 
196  QSize outputSize() const;
197 
203  void setOutputSize( QSize outputSize );
204 
206  double outputDpi() const;
207 
209  void setOutputDpi( double outputDpi );
210 
212  QgsCoordinateReferenceSystem destinationCrs() const;
213 
215  void setDestinationCrs( const QgsCoordinateReferenceSystem &destinationCrs );
216 
224  QList<QgsMapLayer *> layers() const;
225 
235  void setLayers( const QList<QgsMapLayer *> &layers );
236 
242  qreal devicePixelRatio() const;
243 
244 
250  void setDevicePixelRatio( const qreal &devicePixelRatio );
251 
252  signals:
255 
258 
261 
266 
269 
272 
275 
278 
281 
284 
285  private slots:
286 
292  void onReadProject( const QDomDocument &doc );
293 
297  void onCrsChanged();
298 
299  private:
300  QgsProject *mProject = nullptr;
301  QgsMapSettings mMapSettings;
302  qreal mDevicePixelRatio = 1.0;
303 };
304 
305 #endif // QGSQUICKMAPSETTINGS_H
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Base class for all map layer types.
Definition: qgsmaplayer.h:70
The QgsMapSettings class contains configuration for rendering of the map.
Point geometry type, with support for z-dimension and m-values.
Definition: qgspoint.h:49
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:99
The QgsQuickMapSettings class encapsulates QgsMapSettings class to offer settings of configuration of...
void setTransformContext(const QgsCoordinateTransformContext &context)
Sets the coordinate transform context, which stores various information regarding which datum transfo...
void mapUnitsPerPointChanged()
Returns the distance in geographical coordinates that equals to one point unit in the map.
void extentChanged()
Geographical coordinates of the rectangle that should be rendered.
void outputSizeChanged()
The size of the resulting map image.
void projectChanged()
A project property should be used as a primary source of project all other components in the applicat...
void outputDpiChanged()
Output DPI used for conversion between real world units (e.g.
void layersChanged()
Set list of layers for map rendering.
void destinationCrsChanged()
CRS of destination coordinate reference system.
void visibleExtentChanged()
Returns the actual extent derived from requested extent that takes takes output image size into accou...
~QgsQuickMapSettings()=default
void mapUnitsPerPixelChanged()
Returns the distance in geographical coordinates that equals to one pixel in the map.
void backgroundColorChanged()
The background color used to render the map.
void rotationChanged()
The rotation of the resulting map image, in degrees clockwise.
A rectangle specified with double values.
Definition: qgsrectangle.h:42