QGIS API Documentation  3.0.2-Girona (307d082)
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.
double computeMapUnitsPerPixel(const QgsRenderContext &c) const
Computes a map units per pixel scaling factor, respecting the minimum and maximum scales set for the ...
bool qgsDoubleNear(double a, double b, double epsilon=4 *DBL_EPSILON)
Compare two doubles (but allow some difference)
Definition: qgis.h:251
double maxScale
The maximum scale, or 0.0 if unset.
double mapUnitsPerPixel() const
Return 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.