QGIS API Documentation 4.1.0-Master (376402f9aeb)
Loading...
Searching...
No Matches
qgsscalecalculator.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsscalecalculator.h
3 Calculates scale based on map extent and units
4 -------------------
5 begin : May 18, 2004
6 copyright : (C) 2004 by Gary E.Sherman
7 email : sherman at mrcc.com
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#ifndef QGSSCALECALCULATOR_H
20#define QGSSCALECALCULATOR_H
21
22#include "qgis.h"
23#include "qgis_core.h"
24#include "qgis_sip.h"
25#include "qgsellipsoidutils.h"
26
27class QString;
28class QgsRectangle;
37class CORE_EXPORT QgsScaleCalculator
38{
39 public:
46
47
54 Qgis::ScaleCalculationMethod method() const { return mMethod; }
55
62 void setMethod( Qgis::ScaleCalculationMethod method );
63
68 void setDpi( double dpi );
69
74 double dpi() const;
75
81 void setMapUnits( Qgis::DistanceUnit mapUnits );
82
88 Qgis::DistanceUnit mapUnits() const;
89
96 void setEllipsoid( const QString &ellipsoid );
97
103 QString ellipsoid() const { return mEllipsoidDefinition.acronym; }
104
113 double calculate( const QgsRectangle &mapExtent, double canvasWidth ) const;
114
124 QSizeF calculateImageSize( const QgsRectangle &mapExtent, double scale ) const;
125
137 double calculateGeographicDistance( const QgsRectangle &mapExtent ) const;
138
153 double calculateGeographicDistanceAtLatitude( double latitude, double longitude1, double longitude2 ) const;
154
155 private:
157 void calculateMetrics( const QgsRectangle &mapExtent, double &delta, double &conversionFactor ) const;
158
159 // Must be horizontal middle by default, for stable API compatibility
161
163 double mDpi = 96;
164
167
169 QgsEllipsoidUtils::EllipsoidDefinition mEllipsoidDefinition;
170};
171
172#endif // #ifndef QGSSCALECALCULATOR_H
DistanceUnit
Units of distance.
Definition qgis.h:5326
@ Meters
Meters.
Definition qgis.h:5327
@ Unknown
Unknown distance unit.
Definition qgis.h:5376
ScaleCalculationMethod
Scale calculation logic.
Definition qgis.h:5603
@ HorizontalMiddle
Calculate horizontally, across midle of map.
Definition qgis.h:5605
A rectangle specified with double values.
QString ellipsoid() const
Returns ellipsoid's acronym.
Qgis::ScaleCalculationMethod method() const
Returns the method to use for map scale calculations.
double dpi() const
Returns the DPI (dots per inch) used in scale calculations.
Qgis::DistanceUnit mapUnits() const
Returns current map units.
QgsScaleCalculator(double dpi=0, Qgis::DistanceUnit mapUnits=Qgis::DistanceUnit::Meters)
Constructor.
Contains definition of an ellipsoid.