23#include "moc_qgsunittypes.cpp"
25using namespace Qt::StringLiterals;
50 return u
"<unknown>"_s;
58 const QString normalized =
string.trimmed().toLower();
193 return u
"<unknown>"_s;
196 return u
"nautical miles"_s;
211 return u
"chain british benoit b1895a"_s;
214 return u
"chain british benoit b1895b"_s;
217 return u
"chain british sears 1922 truncated"_s;
220 return u
"chain british sears 1922"_s;
223 return u
"chain clarkes"_s;
226 return u
"chain us survey"_s;
229 return u
"feet british 1865"_s;
232 return u
"feet british 1936"_s;
235 return u
"feet british benoit 1895a"_s;
238 return u
"feet british benoit 1895b"_s;
241 return u
"feet british sears 1922 truncated"_s;
244 return u
"feet british sears 1922"_s;
247 return u
"feet clarkes"_s;
250 return u
"feet gold coast"_s;
253 return u
"feet indian"_s;
255 return u
"feet indian 1937"_s;
258 return u
"feet indian 1962"_s;
261 return u
"feet indian 1975"_s;
264 return u
"feet us survey"_s;
270 return u
"links british benoit 1895a"_s;
273 return u
"links british benoit 1895b"_s;
276 return u
"links british sears 1922 truncated"_s;
279 return u
"links british sears 1922"_s;
282 return u
"links clarkes"_s;
285 return u
"links us survey"_s;
288 return u
"yards british benoit 1895a"_s;
291 return u
"yards british benoit 1895b"_s;
294 return u
"yards british sears 1922 truncated"_s;
297 return u
"yards british sears 1922"_s;
300 return u
"yards clarkes"_s;
303 return u
"yards indian"_s;
306 return u
"yards indian 1937"_s;
309 return u
"yards indian 1962"_s;
312 return u
"yards indian 1975"_s;
315 return u
"miles us survey"_s;
318 return u
"yards fathom"_s;
321 return u
"german legal meters"_s;
334 const QString normalized =
string.trimmed().toLower();
408 return QObject::tr(
"meters",
"distance" );
411 return QObject::tr(
"kilometers",
"distance" );
414 return QObject::tr(
"feet",
"distance" );
417 return QObject::tr(
"yards",
"distance" );
420 return QObject::tr(
"miles",
"distance" );
423 return QObject::tr(
"degrees",
"distance" );
426 return QObject::tr(
"centimeters",
"distance" );
429 return QObject::tr(
"millimeters",
"distance" );
432 return QObject::tr(
"inches",
"distance" );
435 return QObject::tr(
"<unknown>",
"distance" );
438 return QObject::tr(
"nautical miles",
"distance" );
441 return QObject::tr(
"chains (international)",
"distance" );
444 return QObject::tr(
"chains (British, Benoit 1895 A)",
"distance" );
447 return QObject::tr(
"chains (British, Benoit 1895 B)",
"distance" );
450 return QObject::tr(
"chains (British, Sears 1922 truncated)",
"distance" );
453 return QObject::tr(
"chains (British, Sears 1922)",
"distance" );
456 return QObject::tr(
"chains (Clarke's)",
"distance" );
459 return QObject::tr(
"chains (US survey)",
"distance" );
462 return QObject::tr(
"feet (British, 1865)",
"distance" );
465 return QObject::tr(
"feet (British, 1936)",
"distance" );
468 return QObject::tr(
"feet (British, Benoit 1895 A)",
"distance" );
471 return QObject::tr(
"feet (British, Benoit 1895 B)",
"distance" );
474 return QObject::tr(
"feet (British, Sears 1922 truncated)",
"distance" );
477 return QObject::tr(
"feet (British, Sears 1922)",
"distance" );
480 return QObject::tr(
"feet (Clarke's)",
"distance" );
483 return QObject::tr(
"feet (Gold Coast)",
"distance" );
486 return QObject::tr(
"feet (Indian)",
"distance" );
489 return QObject::tr(
"feet (Indian 1937)",
"distance" );
492 return QObject::tr(
"feet (Indian 1962)",
"distance" );
495 return QObject::tr(
"feet (Indian 1975)",
"distance" );
498 return QObject::tr(
"feet (US survey)",
"distance" );
501 return QObject::tr(
"links",
"distance" );
504 return QObject::tr(
"links (British, Benoit 1895 A)",
"distance" );
507 return QObject::tr(
"links (British, Benoit 1895 B)",
"distance" );
510 return QObject::tr(
"links (British, Sears 1922 truncated)",
"distance" );
513 return QObject::tr(
"links (British, Sears 1922)",
"distance" );
516 return QObject::tr(
"links (Clarke's)",
"distance" );
519 return QObject::tr(
"links (US survey)",
"distance" );
522 return QObject::tr(
"yards (British, Benoit 1895 A)",
"distance" );
525 return QObject::tr(
"yards (British, Benoit 1895 B)",
"distance" );
528 return QObject::tr(
"yards (British, Sears 1922 truncated)",
"distance" );
531 return QObject::tr(
"yards (British, Sears 1922)",
"distance" );
534 return QObject::tr(
"yards (Clarke's)",
"distance" );
537 return QObject::tr(
"yards (Indian)",
"distance" );
540 return QObject::tr(
"yards (Indian 1937)",
"distance" );
543 return QObject::tr(
"yards (Indian 1962)",
"distance" );
546 return QObject::tr(
"yards (Indian 1975)",
"distance" );
549 return QObject::tr(
"miles (US survey)",
"distance" );
552 return QObject::tr(
"fathoms",
"distance" );
555 return QObject::tr(
"meters (German legal)",
"distance" );
565 return QObject::tr(
"mm",
"render" );
568 return QObject::tr(
"map units",
"render" );
571 return QObject::tr(
"px",
"render" );
574 return QObject::tr(
"%",
"render" );
577 return QObject::tr(
"pt",
"render" );
580 return QObject::tr(
"in",
"render" );
583 return QObject::tr(
"unknown",
"render" );
586 return QObject::tr(
"m",
"render" );
598 return QObject::tr(
"m",
"distance" );
601 return QObject::tr(
"km",
"distance" );
617 return QObject::tr(
"ft",
"distance" );
629 return QObject::tr(
"yd",
"distance" );
633 return QObject::tr(
"mi",
"distance" );
636 return QObject::tr(
"deg",
"distance" );
639 return QObject::tr(
"cm",
"distance" );
642 return QObject::tr(
"mm",
"distance" );
645 return QObject::tr(
"in",
"distance" );
651 return QObject::tr(
"NM",
"distance" );
660 return QObject::tr(
"ch",
"distance" );
669 return QObject::tr(
"lk",
"distance" );
672 return QObject::tr(
"f",
"distance" );
675 return QObject::tr(
"glm",
"distance" );
689 const QString normalized =
string.trimmed().toLower();
748 if ( normalized.compare(
toString( unit ), Qt::CaseInsensitive ) == 0 )
782 return 111319.49079327358;
794 return 20.116782494376;
798 return 20.116765121553;
800 return 20.1166195164;
802 return 20.11684023368;
804 return 0.30480083333333;
808 return 0.30479973333333;
810 return 0.30479973476327;
812 return 0.30479933333333;
814 return 0.30479947153868;
818 return 0.30479971018151;
820 return 0.30479951024815;
828 return 0.30480060960122;
834 return 0.20116782494376;
838 return 0.20116765121553;
840 return 0.201166195164;
842 return 0.2011684023368;
846 return 0.91439920428981;
850 return 0.91439841461603;
854 return 0.91439853074444;
862 return 1609.3472186944;
878 constexpr double FEET_TO_INCHES = 12;
879 constexpr double YARDS_TO_FEET = 3.0;
891 return FEET_TO_INCHES;
893 return 1.0 / YARDS_TO_FEET;
905 return YARDS_TO_FEET;
907 return YARDS_TO_FEET * FEET_TO_INCHES;
920 return 1.0 / FEET_TO_INCHES;
922 return 1.0 / ( YARDS_TO_FEET * FEET_TO_INCHES );
966 return u
"<unknown>"_s;
973 const QString normalized =
string.trimmed().toLower();
1016 return QObject::tr(
"square meters",
"area" );
1018 return QObject::tr(
"square kilometers",
"area" );
1020 return QObject::tr(
"square feet",
"area" );
1022 return QObject::tr(
"square yards",
"area" );
1024 return QObject::tr(
"square miles",
"area" );
1026 return QObject::tr(
"hectares",
"area" );
1028 return QObject::tr(
"acres",
"area" );
1030 return QObject::tr(
"square nautical miles",
"area" );
1032 return QObject::tr(
"square degrees",
"area" );
1034 return QObject::tr(
"square millimeters",
"area" );
1036 return QObject::tr(
"square centimeters",
"area" );
1038 return QObject::tr(
"square inches",
"area" );
1040 return QObject::tr(
"<unknown>",
"area" );
1050 return QObject::tr(
"m²",
"area" );
1052 return QObject::tr(
"km²",
"area" );
1054 return QObject::tr(
"ft²",
"area" );
1056 return QObject::tr(
"yd²",
"area" );
1058 return QObject::tr(
"mi²",
"area" );
1060 return QObject::tr(
"ha",
"area" );
1062 return QObject::tr(
"ac",
"area" );
1064 return QObject::tr(
"NM²",
"area" );
1066 return QObject::tr(
"deg²",
"area" );
1068 return QObject::tr(
"cm²",
"area" );
1070 return QObject::tr(
"mm²",
"area" );
1072 return QObject::tr(
"in²",
"area" );
1081 const QString normalized =
string.trimmed().toLower();
1120#define KM2_TO_M2 1000000.0
1121#define CM2_TO_M2 0.0001
1122#define MM2_TO_M2 0.000001
1123#define FT2_TO_M2 0.09290304
1124#define IN2_TO_M2 0.00064516
1125#define YD2_TO_M2 0.83612736
1126#define MI2_TO_M2 2589988.110336
1127#define HA_TO_M2 10000.0
1128#define AC_TO_FT2 43560.0
1129#define DEG2_TO_M2 12392029030.5
1130#define NM2_TO_M2 3429904.0
1557 switch ( distanceUnit )
1705 return u
"<unknown>"_s;
1712 const QString normalized =
string.trimmed().toLower();
1753 return QObject::tr(
"seconds",
"temporal" );
1755 return QObject::tr(
"milliseconds",
"temporal" );
1757 return QObject::tr(
"minutes",
"temporal" );
1759 return QObject::tr(
"hours",
"temporal" );
1761 return QObject::tr(
"days",
"temporal" );
1763 return QObject::tr(
"weeks",
"temporal" );
1765 return QObject::tr(
"months",
"temporal" );
1767 return QObject::tr(
"years",
"temporal" );
1769 return QObject::tr(
"decades",
"temporal" );
1771 return QObject::tr(
"centuries",
"temporal" );
1773 return QObject::tr(
"steps",
"temporal" );
1775 return QObject::tr(
"<unknown>",
"temporal" );
1785 return QObject::tr(
"s",
"temporal" );
1787 return QObject::tr(
"ms",
"temporal" );
1789 return QObject::tr(
"min",
"temporal" );
1791 return QObject::tr(
"h",
"temporal" );
1793 return QObject::tr(
"d",
"temporal" );
1795 return QObject::tr(
"wk",
"temporal" );
1797 return QObject::tr(
"mon",
"temporal" );
1799 return QObject::tr(
"y",
"temporal" );
1801 return QObject::tr(
"dec",
"temporal" );
1803 return QObject::tr(
"cen",
"temporal" );
1805 return QObject::tr(
"steps",
"temporal" );
1807 return QObject::tr(
"<unknown>",
"temporal" );
1814 const QString normalized =
string.trimmed().toLower();
1869 return 1 / 604800.0;
1871 return 1 / 2592000.0;
1873 return 1 / 31557600.0;
1875 return 1 / 315576000.0;
1877 return 1 / 3155760000.0;
1895 return 1 / 3600000.0;
1897 return 1 / 86400000.0;
1899 return 1 / 604800000.0;
1901 return 1 / 2592000000.0;
1903 return 1 / 31557600000.0;
1905 return 1 / 315576000000.0;
1907 return 1 / 3155760000000.0;
1933 return 1 / 525960.0;
1935 return 1 / 5259600.0;
1937 return 1 / 52596000.0;
1967 return 1 / 876600.0;
2041 return 2592000000.0;
2057 return 30 / 36525.0;
2071 return 31557600000.0;
2079 return 365.25 / 7.0;
2081 return 365.25 / 30.0;
2101 return 315576000000.0;
2109 return 3652.5 / 7.0;
2111 return 3652.5 / 30.0;
2130 return 3155760000.0;
2132 return 3155760000000.0;
2142 return 36525 / 30.0;
2167 const QString normalized =
string.trimmed().toLower();
2206 return QObject::tr(
"cubic meters",
"volume" );
2208 return QObject::tr(
"cubic feet",
"volume" );
2210 return QObject::tr(
"cubic yards",
"volume" );
2212 return QObject::tr(
"barrels",
"volume" );
2214 return QObject::tr(
"cubic decimeters",
"volume" );
2216 return QObject::tr(
"liters",
"volume" );
2218 return QObject::tr(
"gallons",
"volume" );
2220 return QObject::tr(
"cubic inches",
"volume" );
2222 return QObject::tr(
"cubic centimeters",
"volume" );
2224 return QObject::tr(
"cubic degrees",
"volume" );
2226 return QObject::tr(
"<unknown>",
"volume" );
2236 return QObject::tr(
"m³",
"volume" );
2238 return QObject::tr(
"ft³",
"volume" );
2240 return QObject::tr(
"yds³",
"volume" );
2242 return QObject::tr(
"bbl",
"volume" );
2244 return QObject::tr(
"dm³",
"volume" );
2246 return QObject::tr(
"l",
"volume" );
2248 return QObject::tr(
"gal",
"volume" );
2250 return QObject::tr(
"in³",
"volume" );
2252 return QObject::tr(
"cm³",
"volume" );
2254 return QObject::tr(
"deg³",
"volume" );
2256 return QObject::tr(
"<unknown>",
"volume" );
2264 const QString normalized =
string.trimmed().toLower();
2298#define DEG2_TO_M3 1379474361572186.2
2312 return 35.314666572222;
2314 return 1.307950613786;
2316 return 6.2898107438466;
2322 return 264.17205124156;
2324 return 61023.7438368;
2339 return 0.028316846592;
2353 return 1728.000629765;
2370 return 26.999998234;
2380 return 201.974025549;
2382 return 46656.013952472;
2409 return 41.999998943;
2411 return 9702.002677722;
2440 return 61.023758990;
2468 return 231.000069567;
2498 return 16.387060000;
2522 return 0.000264172 ;
2553 switch ( distanceUnit )
2634 switch ( volumeUnit )
2709 return u
"<unknown>"_s;
2719 return u
"degrees"_s;
2721 return u
"radians"_s;
2731 return u
"milliradians"_s;
2735 return u
"<unknown>"_s;
2742 const QString normalized =
string.trimmed().toLower();
2776 return QObject::tr(
"degrees",
"angle" );
2778 return QObject::tr(
"radians",
"angle" );
2780 return QObject::tr(
"gon",
"angle" );
2782 return QObject::tr(
"minutes of arc",
"angle" );
2784 return QObject::tr(
"seconds of arc",
"angle" );
2786 return QObject::tr(
"turns",
"angle" );
2788 return QObject::tr(
"milliradians",
"angle" );
2790 return QObject::tr(
"mil",
"angle" );
2792 return QObject::tr(
"<unknown>",
"angle" );
2809 return M_PI / 180.0;
2811 return 400.0 / 360.0;
2819 return M_PI / 180.0 * 1000;
2821 return 3200.0 / 180;
2832 return 180.0 / M_PI;
2836 return 200.0 / M_PI;
2838 return 60 * 180.0 / M_PI;
2840 return 3600 * 180.0 / M_PI;
2846 return 3200.0 / M_PI;
2857 return 360.0 / 400.0;
2859 return M_PI / 200.0;
2863 return 60 * 360.0 / 400.0;
2865 return 3600 * 360.0 / 400.0;
2869 return M_PI / 200.0 * 1000;
2871 return 3200.0 / 200.0;
2884 return M_PI / 180.0 / 60.0;
2886 return 400.0 / 360.0 / 60.0;
2892 return 1.0 / 360.0 / 60.0;
2894 return M_PI / 180.0 / 60.0 * 1000;
2896 return 3200.0 / 180.0 / 60.0;
2909 return M_PI / 180.0 / 3600.0;
2911 return 400.0 / 360.0 / 3600.0;
2917 return 1.0 / 360.0 / 3600.0;
2919 return M_PI / 180.0 / 3600.0 * 1000;
2921 return 3200.0 / 180.0 / 3600.0;
2938 return 360.0 * 60.0;
2940 return 360.0 * 3600.0;
2944 return 2 * M_PI * 1000;
2957 return 180.0 / M_PI / 1000;
2961 return 200.0 / M_PI / 1000;
2963 return 180.0 * 60.0 / M_PI / 1000;
2965 return 180.0 * 3600.0 / M_PI / 1000;
2967 return M_PI / 2 / 1000;
2971 return 3200.0 / 1000.0 / M_PI;
2983 return 180.0 / 3200;
2987 return 200.0 / 3200;
2989 return 60 * 180.0 / 3200;
2991 return 3600.0 * 180 / 3200;
2993 return 1.0 / ( 2 * 32000 );
2995 return 1000.0 * M_PI / 3200.0;
3013 int decimalPlaces = 2;
3018 unitLabel = QObject::tr(
"°",
"angle" );
3022 unitLabel = QObject::tr(
" rad",
"angle" );
3026 unitLabel = QObject::tr(
" gon",
"angle" );
3030 unitLabel = QObject::tr(
"′",
"angle minutes" );
3034 unitLabel = QObject::tr(
"″",
"angle seconds" );
3038 unitLabel = QObject::tr(
" tr",
"angle turn" );
3042 unitLabel = QObject::tr(
" millirad",
"angular mil SI" );
3046 unitLabel = QObject::tr(
" mil",
"angular mil NATO" );
3053 if ( decimals >= 0 )
3054 decimalPlaces = decimals;
3056 return u
"%L1%2"_s.arg( angle, 0,
'f', decimalPlaces ).arg( unitLabel );
3073 else if ( std::fabs( distance ) > 1000.0 )
3078 else if ( std::fabs( distance ) < 0.01 )
3083 else if ( std::fabs( distance ) < 0.1 )
3097 if ( keepBaseUnit || std::fabs( distance ) >= 1.0 )
3110 if ( std::fabs( distance ) <= 5280.0 || keepBaseUnit )
3123 if ( std::fabs( distance ) <= 1760.0 || keepBaseUnit )
3136 if ( std::fabs( distance ) >= 1.0 || keepBaseUnit )
3176 result.
value = -1.0;
3381 return u
"%L1%2"_s.arg( distance, 0,
'e', decimals ).arg( unitText );
3385 return u
"%L1%2"_s.arg( dist.
value, 0,
'f', decimals ).arg( unitText );
3401 return u
"%L1%2"_s.arg( area, 0,
'e', decimals ).arg( unitText );
3405 return u
"%L1%2"_s.arg( areaValue.
value, 0,
'f', decimals ).arg( unitText );
3416 return u
"RenderMetersInMapUnits"_s;
3418 return u
"MapUnit"_s;
3422 return u
"Percentage"_s;
3435 const QString normalized =
string.trimmed().toLower();
3444 if ( normalized ==
"meters"_L1 )
3448 if ( normalized ==
"mapunits"_L1 )
3454 if ( normalized ==
"percent"_L1 )
3458 if ( normalized ==
"points"_L1 )
3475 return QObject::tr(
"millimeters",
"render" );
3478 return QObject::tr(
"meters at scale",
"render" );
3481 return QObject::tr(
"map units",
"render" );
3484 return QObject::tr(
"pixels",
"render" );
3487 return QObject::tr(
"percent",
"render" );
3490 return QObject::tr(
"points",
"render" );
3493 return QObject::tr(
"inches",
"render" );
3496 return QObject::tr(
"<unknown>",
"render" );
3530 const QString normalized =
string.trimmed().toLower();
3584 return QObject::tr(
"px" );
3586 return QObject::tr(
"mm" );
3588 return QObject::tr(
"cm" );
3590 return QObject::tr(
"m" );
3592 return QObject::tr(
"in",
"unit inch" );
3594 return QObject::tr(
"ft" );
3596 return QObject::tr(
"pt" );
3598 return QObject::tr(
"pica" );
3608 return QObject::tr(
"pixels" );
3610 return QObject::tr(
"millimeters" );
3612 return QObject::tr(
"centimeters" );
3614 return QObject::tr(
"meters" );
3616 return QObject::tr(
"inches" );
3618 return QObject::tr(
"feet" );
3620 return QObject::tr(
"points" );
3622 return QObject::tr(
"picas" );
DistanceUnitType
Types of distance units.
@ Geographic
Unit is a geographic (e.g., degree based) unit.
@ Unknown
Unknown unit type.
@ Standard
Unit is a standard measurement unit.
@ Unknown
Unknown unit type.
LayoutUnit
Layout measurement units.
@ Centimeters
Centimeters.
@ Millimeters
Millimeters.
@ Points
Typographic points.
@ Picas
Typographic picas.
AngleUnit
Units of angles.
@ SecondsOfArc
Seconds of arc.
@ Radians
Square kilometers.
@ MinutesOfArc
Minutes of arc.
@ Unknown
Unknown angle unit.
@ MilliradiansSI
Angular milliradians (SI definition, 1/1000 of radian).
@ MilNATO
Angular mil (NATO definition, 6400 mil = 2PI radians).
DistanceUnit
Units of distance.
@ YardsBritishSears1922Truncated
British yards (Sears 1922 truncated).
@ MilesUSSurvey
US Survey miles.
@ LinksBritishSears1922
British links (Sears 1922).
@ YardsBritishBenoit1895A
British yards (Benoit 1895 A).
@ LinksBritishBenoit1895A
British links (Benoit 1895 A).
@ Centimeters
Centimeters.
@ YardsIndian1975
Indian yards (1975).
@ FeetUSSurvey
US Survey feet.
@ Millimeters
Millimeters.
@ FeetBritishSears1922
British feet (Sears 1922).
@ YardsClarkes
Clarke's yards.
@ YardsIndian
Indian yards.
@ FeetBritishBenoit1895B
British feet (Benoit 1895 B).
@ Miles
Terrestrial miles.
@ LinksUSSurvey
US Survey links.
@ ChainsUSSurvey
US Survey chains.
@ FeetClarkes
Clarke's feet.
@ Unknown
Unknown distance unit.
@ FeetBritish1936
British feet (1936).
@ FeetIndian1962
Indian feet (1962).
@ YardsBritishSears1922
British yards (Sears 1922).
@ FeetIndian1937
Indian feet (1937).
@ YardsIndian1937
Indian yards (1937).
@ Degrees
Degrees, for planar geographic CRS distance measurements.
@ ChainsBritishBenoit1895B
British chains (Benoit 1895 B).
@ LinksBritishSears1922Truncated
British links (Sears 1922 truncated).
@ ChainsBritishBenoit1895A
British chains (Benoit 1895 A).
@ YardsBritishBenoit1895B
British yards (Benoit 1895 B).
@ FeetBritish1865
British feet (1865).
@ YardsIndian1962
Indian yards (1962).
@ FeetBritishSears1922Truncated
British feet (Sears 1922 truncated).
@ MetersGermanLegal
German legal meter.
@ LinksBritishBenoit1895B
British links (Benoit 1895 B).
@ ChainsInternational
International chains.
@ LinksInternational
International links.
@ ChainsBritishSears1922Truncated
British chains (Sears 1922 truncated).
@ FeetIndian
Indian (geodetic) feet.
@ NauticalMiles
Nautical miles.
@ ChainsClarkes
Clarke's chains.
@ LinksClarkes
Clarke's links.
@ ChainsBritishSears1922
British chains (Sears 1922).
@ FeetIndian1975
Indian feet (1975).
@ FeetGoldCoast
Gold Coast feet.
@ FeetBritishBenoit1895A
British feet (Benoit 1895 A).
@ SquareCentimeters
Square centimeters.
@ SquareInches
Square inches.
@ SquareNauticalMiles
Square nautical miles.
@ SquareMillimeters
Square millimeters.
@ SquareYards
Square yards.
@ SquareKilometers
Square kilometers.
@ SquareMeters
Square meters.
@ Unknown
Unknown areal unit.
@ SquareDegrees
Square degrees, for planar geographic CRS area measurements.
@ SquareMiles
Square miles.
TemporalUnit
Temporal units.
@ IrregularStep
Special 'irregular step' time unit, used for temporal data which uses irregular, non-real-world unit ...
@ Milliseconds
Milliseconds.
@ Unknown
Unknown time unit.
RenderUnit
Rendering size units.
@ Percentage
Percentage of another measurement (e.g., canvas size, feature size).
@ Millimeters
Millimeters.
@ Points
Points (e.g., for font sizes).
@ Unknown
Mixed or unknown units.
@ MetersInMapUnits
Meters value as Map units.
LayoutUnitType
Types of layout units.
@ PaperUnits
Unit is a paper based measurement unit.
@ ScreenUnits
Unit is a screen based measurement unit.
VolumeUnit
Units of volume.
@ CubicMeters
Cubic meters.
@ CubicDegrees
Cubic degrees, for planar geographic CRS volume measurements.
@ CubicDecimeter
Cubic decimeters.
@ Unknown
Unknown volume unit.
@ CubicCentimeter
Cubic Centimeters.
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.
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.
double qgsRound(double number, int places)
Returns a double number, rounded (as close as possible) to the specified number of places.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).
constexpr double distanceUnitToMeter(Qgis::DistanceUnit unit)
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.