QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsunittypes.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsunittypes.h
3 --------------
4 begin : February 2016
5 copyright : (C) 2016 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSUNITTYPES_H
19#define QGSUNITTYPES_H
20
21#include "qgis.h"
22#include "qgis_core.h"
23#include "qgis_sip.h"
24
25#include <QObject>
26
27/***************************************************************************
28 * This class is considered CRITICAL and any change MUST be accompanied with
29 * full unit tests in test_qgsunittypes.py.
30 * See details in QEP #17
31 ****************************************************************************/
32
38
39class CORE_EXPORT QgsUnitTypes
40{
41 Q_GADGET
42
43 public:
44
50 {
51
55 double value;
56
61 };
62
67 struct AreaValue
68 {
69
73 double value;
74
79 };
80
82 typedef QList<Qgis::RenderUnit> RenderUnitList;
83
90 Q_INVOKABLE static QString encodeUnitType( Qgis::UnitType type );
91
100 Q_INVOKABLE static Qgis::UnitType decodeUnitType( const QString &string, bool *ok SIP_OUT = nullptr );
101
102
103 // DISTANCE UNITS
104
108 Q_INVOKABLE static Qgis::DistanceUnitType unitType( Qgis::DistanceUnit unit );
109
116 Q_INVOKABLE static QString encodeUnit( Qgis::DistanceUnit unit );
117
125 Q_INVOKABLE static Qgis::DistanceUnit decodeDistanceUnit( const QString &string, bool *ok SIP_OUT = nullptr );
126
132 Q_INVOKABLE static QString toString( Qgis::DistanceUnit unit );
133
140 Q_INVOKABLE static QString toAbbreviatedString( Qgis::DistanceUnit unit );
141
149 Q_INVOKABLE static Qgis::DistanceUnit stringToDistanceUnit( const QString &string, bool *ok SIP_OUT = nullptr );
150
157 Q_INVOKABLE static double fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::DistanceUnit toUnit );
158
159 // AREAL UNITS
160
165
172 static QString encodeUnit( Qgis::AreaUnit unit );
173
181 Q_INVOKABLE static Qgis::AreaUnit decodeAreaUnit( const QString &string, bool *ok SIP_OUT = nullptr );
182
188 static QString toString( Qgis::AreaUnit unit );
189
196 static QString toAbbreviatedString( Qgis::AreaUnit unit );
197
205 Q_INVOKABLE static Qgis::AreaUnit stringToAreaUnit( const QString &string, bool *ok SIP_OUT = nullptr );
206
213 static double fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUnit toUnit );
214
220 Q_INVOKABLE static Qgis::AreaUnit distanceToAreaUnit( Qgis::DistanceUnit distanceUnit );
221
228 Q_INVOKABLE static Qgis::DistanceUnit areaToDistanceUnit( Qgis::AreaUnit areaUnit );
229
230 // TEMPORAL UNITS
231
238 static QString encodeUnit( Qgis::TemporalUnit unit );
239
248 Q_INVOKABLE static Qgis::TemporalUnit decodeTemporalUnit( const QString &string, bool *ok SIP_OUT = nullptr );
249
255 static QString toString( Qgis::TemporalUnit unit );
256
263 static QString toAbbreviatedString( Qgis::TemporalUnit unit );
264
273 Q_INVOKABLE static Qgis::TemporalUnit stringToTemporalUnit( const QString &string, bool *ok SIP_OUT = nullptr );
274
286 static double fromUnitToUnitFactor( Qgis::TemporalUnit fromUnit, Qgis::TemporalUnit toUnit );
287
288 // VOLUME UNITS
289
295
302 static QString encodeUnit( Qgis::VolumeUnit unit );
303
312 Q_INVOKABLE static Qgis::VolumeUnit decodeVolumeUnit( const QString &string, bool *ok SIP_OUT = nullptr );
313
319 static QString toString( Qgis::VolumeUnit unit );
320
327 static QString toAbbreviatedString( Qgis::VolumeUnit unit );
328
337 Q_INVOKABLE static Qgis::VolumeUnit stringToVolumeUnit( const QString &string, bool *ok SIP_OUT = nullptr );
338
346 static double fromUnitToUnitFactor( Qgis::VolumeUnit fromUnit, Qgis::VolumeUnit toUnit );
347
354 Q_INVOKABLE static Qgis::VolumeUnit distanceToVolumeUnit( Qgis::DistanceUnit distanceUnit );
355
362 Q_INVOKABLE static Qgis::DistanceUnit volumeToDistanceUnit( Qgis::VolumeUnit volumeUnit );
363
364 // ANGULAR UNITS
365
372 static QString encodeUnit( Qgis::AngleUnit unit );
373
381 Q_INVOKABLE static Qgis::AngleUnit decodeAngleUnit( const QString &string, bool *ok SIP_OUT = nullptr );
382
387 static QString toString( Qgis::AngleUnit unit );
388
395 static double fromUnitToUnitFactor( Qgis::AngleUnit fromUnit, Qgis::AngleUnit toUnit );
396
404 Q_INVOKABLE static QString formatAngle( double angle, int decimals, Qgis::AngleUnit unit );
405
414 Q_INVOKABLE static QgsUnitTypes::DistanceValue scaledDistance( double distance, Qgis::DistanceUnit unit, int decimals, bool keepBaseUnit = false );
415
424 Q_INVOKABLE static QgsUnitTypes::AreaValue scaledArea( double area, Qgis::AreaUnit unit, int decimals, bool keepBaseUnit = false );
425
436 Q_INVOKABLE static QString formatDistance( double distance, int decimals, Qgis::DistanceUnit unit, bool keepBaseUnit = false );
437
448 Q_INVOKABLE static QString formatArea( double area, int decimals, Qgis::AreaUnit unit, bool keepBaseUnit = false );
449
450 // RENDER UNITS
451
458 static QString encodeUnit( Qgis::RenderUnit unit );
459
467 Q_INVOKABLE static Qgis::RenderUnit decodeRenderUnit( const QString &string, bool *ok SIP_OUT = nullptr );
468
469
473 static QString toString( Qgis::RenderUnit unit );
474
481 static QString toAbbreviatedString( Qgis::RenderUnit unit );
482
483
484 // LAYOUT UNITS
485
492 static QString encodeUnit( Qgis::LayoutUnit unit );
493
501 Q_INVOKABLE static Qgis::LayoutUnit decodeLayoutUnit( const QString &string, bool *ok SIP_OUT = nullptr );
502
507 Q_INVOKABLE static Qgis::LayoutUnitType unitType( Qgis::LayoutUnit units );
508
513 static QString toAbbreviatedString( Qgis::LayoutUnit unit );
514
519 static QString toString( Qgis::LayoutUnit unit );
520
521};
522
523#endif // QGSUNITTYPES_H
DistanceUnitType
Types of distance units.
Definition qgis.h:5075
UnitType
Unit types.
Definition qgis.h:4996
LayoutUnit
Layout measurement units.
Definition qgis.h:5203
AngleUnit
Units of angles.
Definition qgis.h:5138
DistanceUnit
Units of distance.
Definition qgis.h:5013
AreaUnit
Units of area.
Definition qgis.h:5090
TemporalUnit
Temporal units.
Definition qgis.h:5159
RenderUnit
Rendering size units.
Definition qgis.h:5183
LayoutUnitType
Types of layout units.
Definition qgis.h:5223
VolumeUnit
Units of volume.
Definition qgis.h:5115
Helper functions for various unit types.
static Q_INVOKABLE Qgis::VolumeUnit decodeVolumeUnit(const QString &string, bool *ok=nullptr)
Decodes a volume unit from a string.
static Q_INVOKABLE Qgis::DistanceUnit stringToDistanceUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a distance unit.
static Q_INVOKABLE QgsUnitTypes::AreaValue scaledArea(double area, Qgis::AreaUnit unit, int decimals, bool keepBaseUnit=false)
Will convert an area with a given unit to an area value which is nice to display.
static Q_INVOKABLE QgsUnitTypes::DistanceValue scaledDistance(double distance, Qgis::DistanceUnit unit, int decimals, bool keepBaseUnit=false)
Will convert a distance with a given unit to a distance value which is nice to display.
static Q_INVOKABLE QString toString(Qgis::DistanceUnit unit)
Returns a translated string representing a distance unit.
static Q_INVOKABLE QString formatArea(double area, int decimals, Qgis::AreaUnit unit, bool keepBaseUnit=false)
Returns an area formatted as a friendly string.
static Q_INVOKABLE double fromUnitToUnitFactor(Qgis::DistanceUnit fromUnit, Qgis::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
static Q_INVOKABLE Qgis::VolumeUnit stringToVolumeUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a volume unit.
static Q_INVOKABLE QString formatDistance(double distance, int decimals, Qgis::DistanceUnit unit, bool keepBaseUnit=false)
Returns an distance formatted as a friendly string.
static Q_INVOKABLE QString toAbbreviatedString(Qgis::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
static Q_INVOKABLE Qgis::DistanceUnitType unitType(Qgis::DistanceUnit unit)
Returns the type for a distance unit.
static Q_INVOKABLE Qgis::UnitType decodeUnitType(const QString &string, bool *ok=nullptr)
Decodes a unit type from a string.
static Q_INVOKABLE Qgis::AreaUnit decodeAreaUnit(const QString &string, bool *ok=nullptr)
Decodes an areal unit from a string.
static Q_INVOKABLE Qgis::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string.
static Q_INVOKABLE Qgis::TemporalUnit stringToTemporalUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a temporal unit.
QList< Qgis::RenderUnit > RenderUnitList
List of render units.
static Q_INVOKABLE Qgis::LayoutUnit decodeLayoutUnit(const QString &string, bool *ok=nullptr)
Decodes a layout unit from a string.
static Q_INVOKABLE Qgis::AreaUnit stringToAreaUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to an areal unit.
static Q_INVOKABLE Qgis::AreaUnit distanceToAreaUnit(Qgis::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding area unit, e.g., meters to square meters.
static Q_INVOKABLE Qgis::TemporalUnit decodeTemporalUnit(const QString &string, bool *ok=nullptr)
Decodes a temporal unit from a string.
static Q_INVOKABLE Qgis::AngleUnit decodeAngleUnit(const QString &string, bool *ok=nullptr)
Decodes an angular unit from a string.
static Q_INVOKABLE Qgis::DistanceUnit areaToDistanceUnit(Qgis::AreaUnit areaUnit)
Converts an area unit to its corresponding distance unit, e.g., square meters to meters.
static Q_INVOKABLE Qgis::DistanceUnit volumeToDistanceUnit(Qgis::VolumeUnit volumeUnit)
Converts a volume unit to its corresponding distance unit, e.g., cubic meters to meters.
static Q_INVOKABLE QString encodeUnit(Qgis::DistanceUnit unit)
Encodes a distance unit to a string.
static Q_INVOKABLE QString encodeUnitType(Qgis::UnitType type)
Encodes a unit type to a string.
static Q_INVOKABLE QString formatAngle(double angle, int decimals, Qgis::AngleUnit unit)
Returns an angle formatted as a friendly string.
static Q_INVOKABLE Qgis::VolumeUnit distanceToVolumeUnit(Qgis::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding volume unit, e.g., meters to cubic meters.
static Q_INVOKABLE Qgis::DistanceUnit decodeDistanceUnit(const QString &string, bool *ok=nullptr)
Decodes a distance unit from a string.
#define SIP_OUT
Definition qgis_sip.h:58
A combination of area value and unit.
double value
The value part of the distance.
Qgis::AreaUnit unit
The value part of the distance.
A combination of distance value and unit.
double value
The value part of the distance.
Qgis::DistanceUnit unit
The value part of the distance.