31 return QStringLiteral(
"distance" );
34 return QStringLiteral(
"area" );
37 return QStringLiteral(
"volume" );
40 return QStringLiteral(
"<unknown>" );
48 QString normalized =
string.trimmed().toLower();
122 return QStringLiteral(
"meters" );
125 return QStringLiteral(
"km" );
128 return QStringLiteral(
"feet" );
131 return QStringLiteral(
"yd" );
134 return QStringLiteral(
"mi" );
137 return QStringLiteral(
"degrees" );
140 return QStringLiteral(
"<unknown>" );
143 return QStringLiteral(
"nautical miles" );
146 return QStringLiteral(
"cm" );
149 return QStringLiteral(
"mm" );
162 QString normalized =
string.trimmed().toLower();
199 return QObject::tr(
"meters",
"distance" );
202 return QObject::tr(
"kilometers",
"distance" );
205 return QObject::tr(
"feet",
"distance" );
208 return QObject::tr(
"yards",
"distance" );
211 return QObject::tr(
"miles",
"distance" );
214 return QObject::tr(
"degrees",
"distance" );
217 return QObject::tr(
"centimeters",
"distance" );
220 return QObject::tr(
"millimeters",
"distance" );
223 return QObject::tr(
"<unknown>",
"distance" );
226 return QObject::tr(
"nautical miles",
"distance" );
236 return QObject::tr(
"mm",
"render" );
239 return QObject::tr(
"map units",
"render" );
242 return QObject::tr(
"px",
"render" );
245 return QObject::tr(
"%",
"render" );
248 return QObject::tr(
"pt",
"render" );
251 return QObject::tr(
"in",
"render" );
254 return QObject::tr(
"unknown",
"render" );
257 return QObject::tr(
"m",
"render" );
269 return QObject::tr(
"m",
"distance" );
272 return QObject::tr(
"km",
"distance" );
275 return QObject::tr(
"ft",
"distance" );
278 return QObject::tr(
"yd",
"distance" );
281 return QObject::tr(
"mi",
"distance" );
284 return QObject::tr(
"deg",
"distance" );
287 return QObject::tr(
"cm",
"distance" );
290 return QObject::tr(
"mm",
"distance" );
296 return QObject::tr(
"NM",
"distance" );
309 QString normalized =
string.trimmed().toLower();
349 #define DEGREE_TO_METER 111319.49079327358 350 #define FEET_TO_METER 0.3048 351 #define NMILE_TO_METER 1852.0 352 #define KILOMETERS_TO_METER 1000.0 353 #define CENTIMETERS_TO_METER 0.01 354 #define MILLIMETERS_TO_METER 0.001 355 #define YARDS_TO_METER 0.9144 356 #define YARDS_TO_FEET 3.0 357 #define MILES_TO_METER 1609.344 625 return QStringLiteral(
"m2" );
627 return QStringLiteral(
"km2" );
629 return QStringLiteral(
"ft2" );
631 return QStringLiteral(
"y2" );
633 return QStringLiteral(
"mi2" );
635 return QStringLiteral(
"ha" );
637 return QStringLiteral(
"ac" );
639 return QStringLiteral(
"nm2" );
641 return QStringLiteral(
"deg2" );
643 return QStringLiteral(
"cm2" );
645 return QStringLiteral(
"mm2" );
647 return QStringLiteral(
"<unknown>" );
654 QString normalized =
string.trimmed().toLower();
695 return QObject::tr(
"square meters",
"area" );
697 return QObject::tr(
"square kilometers",
"area" );
699 return QObject::tr(
"square feet",
"area" );
701 return QObject::tr(
"square yards",
"area" );
703 return QObject::tr(
"square miles",
"area" );
705 return QObject::tr(
"hectares",
"area" );
707 return QObject::tr(
"acres",
"area" );
709 return QObject::tr(
"square nautical miles",
"area" );
711 return QObject::tr(
"square degrees",
"area" );
713 return QObject::tr(
"square millimeters",
"area" );
715 return QObject::tr(
"square centimeters",
"area" );
717 return QObject::tr(
"<unknown>",
"area" );
727 return QObject::tr(
"m²",
"area" );
729 return QObject::tr(
"km²",
"area" );
731 return QObject::tr(
"ft²",
"area" );
733 return QObject::tr(
"yd²",
"area" );
735 return QObject::tr(
"mi²",
"area" );
737 return QObject::tr(
"ha",
"area" );
739 return QObject::tr(
"ac",
"area" );
741 return QObject::tr(
"NM²",
"area" );
743 return QObject::tr(
"deg²",
"area" );
745 return QObject::tr(
"cm²",
"area" );
747 return QObject::tr(
"mm²",
"area" );
756 QString normalized =
string.trimmed().toLower();
793 #define KM2_TO_M2 1000000.0 794 #define CM2_TO_M2 0.0001 795 #define MM2_TO_M2 0.000001 796 #define FT2_TO_M2 0.09290304 797 #define YD2_TO_M2 0.83612736 798 #define MI2_TO_M2 2589988.110336 799 #define HA_TO_M2 10000.0 800 #define AC_TO_FT2 43560.0 801 #define DEG2_TO_M2 12392029030.5 802 #define NM2_TO_M2 3429904.0 1173 switch ( distanceUnit )
1251 QString normalized =
string.trimmed().toLower();
1290 return QObject::tr(
"cubic meters",
"volume" );
1292 return QObject::tr(
"cubic feet",
"volume" );
1294 return QObject::tr(
"cubic yards",
"volume" );
1296 return QObject::tr(
"barrels",
"volume" );
1298 return QObject::tr(
"cubic decimeters",
"volume" );
1300 return QObject::tr(
"liters",
"volume" );
1302 return QObject::tr(
"gallons",
"volume" );
1304 return QObject::tr(
"cubic inches",
"volume" );
1306 return QObject::tr(
"cubic centimeters",
"volume" );
1308 return QObject::tr(
"cubic degrees",
"volume" );
1310 return QObject::tr(
"<unknown>",
"volume" );
1320 return QObject::tr(
"m³",
"volume" );
1322 return QObject::tr(
"ft³",
"volume" );
1324 return QObject::tr(
"yds³",
"volume" );
1326 return QObject::tr(
"bbl",
"volume" );
1328 return QObject::tr(
"dm³",
"volume" );
1330 return QObject::tr(
"l",
"volume" );
1332 return QObject::tr(
"gal",
"volume" );
1334 return QObject::tr(
"in³",
"volume" );
1336 return QObject::tr(
"cm³",
"volume" );
1338 return QObject::tr(
"deg³",
"volume" );
1340 return QObject::tr(
"<unknown>",
"volume" );
1348 QString normalized =
string.trimmed().toLower();
1382 #define DEG2_TO_M3 1379474361572186.2 1394 return 35.314666572222;
1396 return 1.307950613786;
1398 return 6.2898107438466;
1404 return 264.17205124156;
1406 return 61023.7438368;
1421 return 0.028316846592;
1435 return 1728.000629765;
1452 return 26.999998234;
1462 return 201.974025549;
1464 return 46656.013952472;
1491 return 41.999998943;
1493 return 9702.002677722;
1522 return 61.023758990;
1550 return 231.000069567;
1580 return 16.387060000;
1604 return 0.000264172 ;
1632 switch ( distanceUnit )
1670 switch ( volumeUnit )
1725 return QStringLiteral(
"m3" );
1727 return QStringLiteral(
"ft3" );
1729 return QStringLiteral(
"yd3" );
1731 return QStringLiteral(
"bbl" );
1733 return QStringLiteral(
"dm3" );
1735 return QStringLiteral(
"l" );
1737 return QStringLiteral(
"gal" );
1739 return QStringLiteral(
"in3" );
1741 return QStringLiteral(
"cm3" );
1743 return QStringLiteral(
"deg3" );
1745 return QStringLiteral(
"<unknown>" );
1755 return QStringLiteral(
"degrees" );
1757 return QStringLiteral(
"radians" );
1759 return QStringLiteral(
"gon" );
1761 return QStringLiteral(
"moa" );
1763 return QStringLiteral(
"soa" );
1765 return QStringLiteral(
"tr" );
1767 return QStringLiteral(
"milliradians" );
1769 return QStringLiteral(
"mil" );
1771 return QStringLiteral(
"<unknown>" );
1778 QString normalized =
string.trimmed().toLower();
1812 return QObject::tr(
"degrees",
"angle" );
1814 return QObject::tr(
"radians",
"angle" );
1816 return QObject::tr(
"gon",
"angle" );
1818 return QObject::tr(
"minutes of arc",
"angle" );
1820 return QObject::tr(
"seconds of arc",
"angle" );
1822 return QObject::tr(
"turns",
"angle" );
1824 return QObject::tr(
"milliradians",
"angle" );
1826 return QObject::tr(
"mil",
"angle" );
1828 return QObject::tr(
"<unknown>",
"angle" );
1845 return M_PI / 180.0;
1847 return 400.0 / 360.0;
1855 return M_PI / 180.0 * 1000;
1857 return 3200.0 / 180;
1868 return 180.0 / M_PI;
1872 return 200.0 / M_PI;
1874 return 60 * 180.0 / M_PI;
1876 return 3600 * 180.0 / M_PI;
1882 return 3200.0 / M_PI;
1893 return 360.0 / 400.0;
1895 return M_PI / 200.0;
1899 return 60 * 360.0 / 400.0;
1901 return 3600 * 360.0 / 400.0;
1905 return M_PI / 200.0 * 1000;
1907 return 3200.0 / 200.0;
1920 return M_PI / 180.0 / 60.0;
1922 return 400.0 / 360.0 / 60.0;
1928 return 1.0 / 360.0 / 60.0;
1930 return M_PI / 180.0 / 60.0 * 1000;
1932 return 3200.0 / 180.0 / 60.0;
1945 return M_PI / 180.0 / 3600.0;
1947 return 400.0 / 360.0 / 3600.0;
1953 return 1.0 / 360.0 / 3600.0;
1955 return M_PI / 180.0 / 3600.0 * 1000;
1957 return 3200.0 / 180.0 / 3600.0;
1974 return 360.0 * 60.0;
1976 return 360.0 * 3600.0;
1980 return 2 * M_PI * 1000;
1993 return 180.0 / M_PI / 1000;
1997 return 200.0 / M_PI / 1000;
1999 return 180.0 * 60.0 / M_PI / 1000;
2001 return 180.0 * 3600.0 / M_PI / 1000;
2003 return M_PI / 2 / 1000;
2007 return 3200.0 / 1000.0 / M_PI;
2019 return 180.0 / 3200;
2023 return 200.0 / 3200;
2025 return 60 * 180.0 / 3200;
2027 return 3600.0 * 180 / 3200;
2029 return 1.0 / ( 2 * 32000 );
2031 return 1000.0 * M_PI / 3200.0;
2053 unitLabel = QObject::tr(
"°",
"angle" );
2056 unitLabel = QObject::tr(
" rad",
"angle" );
2059 unitLabel = QObject::tr(
" gon",
"angle" );
2062 unitLabel = QObject::tr(
"′",
"angle minutes" );
2065 unitLabel = QObject::tr(
"″",
"angle seconds" );
2068 unitLabel = QObject::tr(
" tr",
"angle turn" );
2071 unitLabel = QObject::tr(
" millirad",
"angular mil SI" );
2074 unitLabel = QObject::tr(
" mil",
"angular mil NATO" );
2080 return QStringLiteral(
"%L1%2" ).arg( angle, 0,
'f', decimals ).arg( unitLabel );
2096 else if ( std::fabs( distance ) > 1000.0 )
2101 else if ( std::fabs( distance ) < 0.01 )
2106 else if ( std::fabs( distance ) < 0.1 )
2120 if ( keepBaseUnit || std::fabs( distance ) >= 1.0 )
2133 if ( std::fabs( distance ) <= 5280.0 || keepBaseUnit )
2146 if ( std::fabs( distance ) <= 1760.0 || keepBaseUnit )
2159 if ( std::fabs( distance ) >= 1.0 || keepBaseUnit )
2198 result.
value = -1.0;
2390 return QStringLiteral(
"%L1%2" ).arg( dist.
value, 0,
'f', decimals ).arg( unitText );
2402 return QStringLiteral(
"%L1%2" ).arg( areaValue.
value, 0,
'f', decimals ).arg( unitText );
2410 return QStringLiteral(
"MM" );
2412 return QStringLiteral(
"RenderMetersInMapUnits" );
2414 return QStringLiteral(
"MapUnit" );
2416 return QStringLiteral(
"Pixel" );
2418 return QStringLiteral(
"Percentage" );
2420 return QStringLiteral(
"Point" );
2422 return QStringLiteral(
"Inch" );
2431 QString normalized =
string.trimmed().toLower();
2440 if ( normalized == QLatin1String(
"meters" ) )
2444 if ( normalized == QLatin1String(
"mapunits" ) )
2450 if ( normalized == QLatin1String(
"percent" ) )
2454 if ( normalized == QLatin1String(
"points" ) )
2471 return QObject::tr(
"millimeters",
"render" );
2474 return QObject::tr(
"meters at scale",
"render" );
2477 return QObject::tr(
"map units",
"render" );
2480 return QObject::tr(
"pixels",
"render" );
2483 return QObject::tr(
"percent",
"render" );
2486 return QObject::tr(
"points",
"render" );
2489 return QObject::tr(
"inches",
"render" );
2492 return QObject::tr(
"<unknown>",
"render" );
2505 return QStringLiteral(
"cm" );
2507 return QStringLiteral(
"m" );
2509 return QStringLiteral(
"in" );
2511 return QStringLiteral(
"ft" );
2513 return QStringLiteral(
"pt" );
2515 return QStringLiteral(
"pi" );
2517 return QStringLiteral(
"px" );
2519 return QStringLiteral(
"mm" );
2526 QString normalized =
string.trimmed().toLower();
2580 return QObject::tr(
"px" );
2582 return QObject::tr(
"mm" );
2584 return QObject::tr(
"cm" );
2586 return QObject::tr(
"m" );
2588 return QObject::tr(
"in",
"unit inch" );
2590 return QObject::tr(
"ft" );
2592 return QObject::tr(
"pt" );
2594 return QObject::tr(
"pica" );
2604 return QObject::tr(
"pixels" );
2606 return QObject::tr(
"millimeters" );
2608 return QObject::tr(
"centimeters" );
2610 return QObject::tr(
"meters" );
2612 return QObject::tr(
"inches" );
2614 return QObject::tr(
"feet" );
2616 return QObject::tr(
"points" );
2618 return QObject::tr(
"picas" );
VolumeUnit
Units of volume.
Meters value as Map units.
static Q_INVOKABLE AreaUnit decodeAreaUnit(const QString &string, bool *ok=nullptr)
Decodes an areal unit from a string.
double value
The value part of the distance.
static Q_INVOKABLE QgsUnitTypes::UnitType decodeUnitType(const QString &string, bool *ok=nullptr)
Decodes a unit type from a string.
QgsUnitTypes::DistanceUnit unit
The value part of the distance.
double value
The value part of the distance.
static Q_INVOKABLE QString toString(QgsUnitTypes::DistanceUnit unit)
Returns a translated string representing a distance unit.
static Q_INVOKABLE QgsUnitTypes::DistanceValue scaledDistance(double distance, QgsUnitTypes::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 QgsUnitTypes::AngleUnit decodeAngleUnit(const QString &string, bool *ok=nullptr)
Decodes an angular unit from a string.
static Q_INVOKABLE QString formatAngle(double angle, int decimals, QgsUnitTypes::AngleUnit unit)
Returns an angle formatted as a friendly string.
static Q_INVOKABLE AreaUnit stringToAreaUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to an areal unit.
LayoutUnitType
Types of layout units.
DistanceUnitType
Types of distance units.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit decodeDistanceUnit(const QString &string, bool *ok=nullptr)
Decodes a distance unit from a string.
Percentage of another measurement (e.g., canvas size, feature size)
static Q_INVOKABLE QgsUnitTypes::DistanceUnit areaToDistanceUnit(QgsUnitTypes::AreaUnit areaUnit)
Converts an area unit to its corresponding distance unit, e.g., square meters to meters.
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Unit is a paper based measurement unit.
#define KILOMETERS_TO_METER
AngleUnit
Units of angles.
static Q_INVOKABLE QString formatArea(double area, int decimals, QgsUnitTypes::AreaUnit unit, bool keepBaseUnit=false)
Returns an area formatted as a friendly string.
static Q_INVOKABLE QString toAbbreviatedString(QgsUnitTypes::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
static Q_INVOKABLE QgsUnitTypes::LayoutUnit decodeLayoutUnit(const QString &string, bool *ok=nullptr)
Decodes a layout unit from a string.
Degrees, for planar geographic CRS distance measurements.
#define CENTIMETERS_TO_METER
Cubic degrees, for planar geographic CRS volume measurements.
static Q_INVOKABLE QgsUnitTypes::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string.
Square degrees, for planar geographic CRS area measurements.
A combination of distance value and unit.
static Q_INVOKABLE QString encodeUnit(QgsUnitTypes::DistanceUnit unit)
Encodes a distance unit to a string.
static Q_INVOKABLE QgsUnitTypes::VolumeUnit distanceToVolumeUnit(QgsUnitTypes::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding volume unit, e.g., meters to cubic meters.
DistanceUnit
Units of distance.
static Q_INVOKABLE DistanceUnitType unitType(QgsUnitTypes::DistanceUnit unit)
Returns the type for a distance unit.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit volumeToDistanceUnit(QgsUnitTypes::VolumeUnit volumeUnit)
Converts a volume unit to its corresponding distance unit, e.g., cubic meters to meters.
static Q_INVOKABLE QgsUnitTypes::AreaValue scaledArea(double area, QgsUnitTypes::AreaUnit unit, int decimals, bool keepBaseUnit=false)
Will convert an area with a given unit to an area value which is nice to display. ...
QgsUnitTypes::AreaUnit unit
The value part of the distance.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit stringToDistanceUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a distance unit.
Unit is a geographic (e.g., degree based) unit.
Points (e.g., for font sizes)
static Q_INVOKABLE QString encodeUnitType(QgsUnitTypes::UnitType type)
Encodes a unit type to a string.
static Q_INVOKABLE QString formatDistance(double distance, int decimals, QgsUnitTypes::DistanceUnit unit, bool keepBaseUnit=false)
Returns an distance formatted as a friendly string.
double qgsRound(double number, int places)
Returns a double number, rounded (as close as possible) to the specified number of places...
#define MILLIMETERS_TO_METER
A combination of area value and unit.
LayoutUnit
Layout measurement units.
Angular milliradians (SI definition, 1/1000 of radian)
Angular mil (NATO definition, 6400 mil = 2PI radians)
Unit is a screen based measurement unit.
static Q_INVOKABLE double fromUnitToUnitFactor(QgsUnitTypes::DistanceUnit fromUnit, QgsUnitTypes::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
static Q_INVOKABLE VolumeUnit decodeVolumeUnit(const QString &string, bool *ok=nullptr)
Decodes a volume unit from a string.
static Q_INVOKABLE QgsUnitTypes::AreaUnit distanceToAreaUnit(QgsUnitTypes::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding area unit, e.g., meters to square meters.
static Q_INVOKABLE VolumeUnit stringToVolumeUnit(const QString &string, bool *ok=nullptr)
Converts a translatedstring to a volume unit.
Unit is a standard measurement unit.
RenderUnit
Rendering size units.