QGIS API Documentation  3.2.0-Bonn (bc43194)
qgsmapunitscale.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapunitscale.cpp
3  -------------------
4  begin : April 2014
5  copyright : (C) Sandro Mani
6  email : smani at sourcepole dot ch
7 
8  ***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #include "qgsmapunitscale.h"
18 #include "qgsrendercontext.h"
19 
21 {
22  double mup = c.mapToPixel().mapUnitsPerPixel();
23  double renderScale = c.rendererScale();
24  if ( !qgsDoubleNear( minScale, 0 ) )
25  {
26  mup = std::min( mup / ( renderScale / minScale ), mup );
27  }
28  if ( !qgsDoubleNear( maxScale, 0 ) )
29  {
30  mup = std::max( mup / ( renderScale / maxScale ), mup );
31  }
32  return mup;
33 }
double rendererScale() const
Returns the renderer map scale.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:251
double computeMapUnitsPerPixel(const QgsRenderContext &c) const
Computes a map units per pixel scaling factor, respecting the minimum and maximum scales set for the ...
double maxScale
The maximum scale, or 0.0 if unset.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
double mapUnitsPerPixel() const
Returns current map units per pixel.
Contains information about the context of a rendering operation.
const QgsMapToPixel & mapToPixel() const
double minScale
The minimum scale, or 0.0 if unset.