23#include "moc_qgsunittypes.cpp"
25using namespace Qt::StringLiterals;
50 return u
"<unknown>"_s;
57 const QString normalized =
string.trimmed().toLower();
192 return u
"<unknown>"_s;
195 return u
"nautical miles"_s;
210 return u
"chain british benoit b1895a"_s;
213 return u
"chain british benoit b1895b"_s;
216 return u
"chain british sears 1922 truncated"_s;
219 return u
"chain british sears 1922"_s;
222 return u
"chain clarkes"_s;
225 return u
"chain us survey"_s;
228 return u
"feet british 1865"_s;
231 return u
"feet british 1936"_s;
234 return u
"feet british benoit 1895a"_s;
237 return u
"feet british benoit 1895b"_s;
240 return u
"feet british sears 1922 truncated"_s;
243 return u
"feet british sears 1922"_s;
246 return u
"feet clarkes"_s;
249 return u
"feet gold coast"_s;
252 return u
"feet indian"_s;
254 return u
"feet indian 1937"_s;
257 return u
"feet indian 1962"_s;
260 return u
"feet indian 1975"_s;
263 return u
"feet us survey"_s;
269 return u
"links british benoit 1895a"_s;
272 return u
"links british benoit 1895b"_s;
275 return u
"links british sears 1922 truncated"_s;
278 return u
"links british sears 1922"_s;
281 return u
"links clarkes"_s;
284 return u
"links us survey"_s;
287 return u
"yards british benoit 1895a"_s;
290 return u
"yards british benoit 1895b"_s;
293 return u
"yards british sears 1922 truncated"_s;
296 return u
"yards british sears 1922"_s;
299 return u
"yards clarkes"_s;
302 return u
"yards indian"_s;
305 return u
"yards indian 1937"_s;
308 return u
"yards indian 1962"_s;
311 return u
"yards indian 1975"_s;
314 return u
"miles us survey"_s;
317 return u
"yards fathom"_s;
320 return u
"german legal meters"_s;
333 const QString normalized =
string.trimmed().toLower();
406 return QObject::tr(
"meters",
"distance" );
409 return QObject::tr(
"kilometers",
"distance" );
412 return QObject::tr(
"feet",
"distance" );
415 return QObject::tr(
"yards",
"distance" );
418 return QObject::tr(
"miles",
"distance" );
421 return QObject::tr(
"degrees",
"distance" );
424 return QObject::tr(
"centimeters",
"distance" );
427 return QObject::tr(
"millimeters",
"distance" );
430 return QObject::tr(
"inches",
"distance" );
433 return QObject::tr(
"<unknown>",
"distance" );
436 return QObject::tr(
"nautical miles",
"distance" );
439 return QObject::tr(
"chains (international)",
"distance" );
442 return QObject::tr(
"chains (British, Benoit 1895 A)",
"distance" );
445 return QObject::tr(
"chains (British, Benoit 1895 B)",
"distance" );
448 return QObject::tr(
"chains (British, Sears 1922 truncated)",
"distance" );
451 return QObject::tr(
"chains (British, Sears 1922)",
"distance" );
454 return QObject::tr(
"chains (Clarke's)",
"distance" );
457 return QObject::tr(
"chains (US survey)",
"distance" );
460 return QObject::tr(
"feet (British, 1865)",
"distance" );
463 return QObject::tr(
"feet (British, 1936)",
"distance" );
466 return QObject::tr(
"feet (British, Benoit 1895 A)",
"distance" );
469 return QObject::tr(
"feet (British, Benoit 1895 B)",
"distance" );
472 return QObject::tr(
"feet (British, Sears 1922 truncated)",
"distance" );
475 return QObject::tr(
"feet (British, Sears 1922)",
"distance" );
478 return QObject::tr(
"feet (Clarke's)",
"distance" );
481 return QObject::tr(
"feet (Gold Coast)",
"distance" );
484 return QObject::tr(
"feet (Indian)",
"distance" );
487 return QObject::tr(
"feet (Indian 1937)",
"distance" );
490 return QObject::tr(
"feet (Indian 1962)",
"distance" );
493 return QObject::tr(
"feet (Indian 1975)",
"distance" );
496 return QObject::tr(
"feet (US survey)",
"distance" );
499 return QObject::tr(
"links",
"distance" );
502 return QObject::tr(
"links (British, Benoit 1895 A)",
"distance" );
505 return QObject::tr(
"links (British, Benoit 1895 B)",
"distance" );
508 return QObject::tr(
"links (British, Sears 1922 truncated)",
"distance" );
511 return QObject::tr(
"links (British, Sears 1922)",
"distance" );
514 return QObject::tr(
"links (Clarke's)",
"distance" );
517 return QObject::tr(
"links (US survey)",
"distance" );
520 return QObject::tr(
"yards (British, Benoit 1895 A)",
"distance" );
523 return QObject::tr(
"yards (British, Benoit 1895 B)",
"distance" );
526 return QObject::tr(
"yards (British, Sears 1922 truncated)",
"distance" );
529 return QObject::tr(
"yards (British, Sears 1922)",
"distance" );
532 return QObject::tr(
"yards (Clarke's)",
"distance" );
535 return QObject::tr(
"yards (Indian)",
"distance" );
538 return QObject::tr(
"yards (Indian 1937)",
"distance" );
541 return QObject::tr(
"yards (Indian 1962)",
"distance" );
544 return QObject::tr(
"yards (Indian 1975)",
"distance" );
547 return QObject::tr(
"miles (US survey)",
"distance" );
550 return QObject::tr(
"fathoms",
"distance" );
553 return QObject::tr(
"meters (German legal)",
"distance" );
563 return QObject::tr(
"mm",
"render" );
566 return QObject::tr(
"map units",
"render" );
569 return QObject::tr(
"px",
"render" );
572 return QObject::tr(
"%",
"render" );
575 return QObject::tr(
"pt",
"render" );
578 return QObject::tr(
"in",
"render" );
581 return QObject::tr(
"unknown",
"render" );
584 return QObject::tr(
"m",
"render" );
595 return QObject::tr(
"m",
"distance" );
598 return QObject::tr(
"km",
"distance" );
614 return QObject::tr(
"ft",
"distance" );
626 return QObject::tr(
"yd",
"distance" );
630 return QObject::tr(
"mi",
"distance" );
633 return QObject::tr(
"deg",
"distance" );
636 return QObject::tr(
"cm",
"distance" );
639 return QObject::tr(
"mm",
"distance" );
642 return QObject::tr(
"in",
"distance" );
648 return QObject::tr(
"NM",
"distance" );
657 return QObject::tr(
"ch",
"distance" );
666 return QObject::tr(
"lk",
"distance" );
669 return QObject::tr(
"f",
"distance" );
672 return QObject::tr(
"glm",
"distance" );
685 const QString normalized =
string.trimmed().toLower();
743 if ( normalized.compare(
toString( unit ), Qt::CaseInsensitive ) == 0 )
777 return 111319.49079327358;
789 return 20.116782494376;
793 return 20.116765121553;
795 return 20.1166195164;
797 return 20.11684023368;
799 return 0.30480083333333;
803 return 0.30479973333333;
805 return 0.30479973476327;
807 return 0.30479933333333;
809 return 0.30479947153868;
813 return 0.30479971018151;
815 return 0.30479951024815;
823 return 0.30480060960122;
829 return 0.20116782494376;
833 return 0.20116765121553;
835 return 0.201166195164;
837 return 0.2011684023368;
841 return 0.91439920428981;
845 return 0.91439841461603;
849 return 0.91439853074444;
857 return 1609.3472186944;
873 constexpr double FEET_TO_INCHES = 12;
874 constexpr double YARDS_TO_FEET = 3.0;
886 return FEET_TO_INCHES;
888 return 1.0 / YARDS_TO_FEET;
900 return YARDS_TO_FEET;
902 return YARDS_TO_FEET * FEET_TO_INCHES;
915 return 1.0 / FEET_TO_INCHES;
917 return 1.0 / ( YARDS_TO_FEET * FEET_TO_INCHES );
961 return u
"<unknown>"_s;
968 const QString normalized =
string.trimmed().toLower();
1011 return QObject::tr(
"square meters",
"area" );
1013 return QObject::tr(
"square kilometers",
"area" );
1015 return QObject::tr(
"square feet",
"area" );
1017 return QObject::tr(
"square yards",
"area" );
1019 return QObject::tr(
"square miles",
"area" );
1021 return QObject::tr(
"hectares",
"area" );
1023 return QObject::tr(
"acres",
"area" );
1025 return QObject::tr(
"square nautical miles",
"area" );
1027 return QObject::tr(
"square degrees",
"area" );
1029 return QObject::tr(
"square millimeters",
"area" );
1031 return QObject::tr(
"square centimeters",
"area" );
1033 return QObject::tr(
"square inches",
"area" );
1035 return QObject::tr(
"<unknown>",
"area" );
1045 return QObject::tr(
"m²",
"area" );
1047 return QObject::tr(
"km²",
"area" );
1049 return QObject::tr(
"ft²",
"area" );
1051 return QObject::tr(
"yd²",
"area" );
1053 return QObject::tr(
"mi²",
"area" );
1055 return QObject::tr(
"ha",
"area" );
1057 return QObject::tr(
"ac",
"area" );
1059 return QObject::tr(
"NM²",
"area" );
1061 return QObject::tr(
"deg²",
"area" );
1063 return QObject::tr(
"cm²",
"area" );
1065 return QObject::tr(
"mm²",
"area" );
1067 return QObject::tr(
"in²",
"area" );
1076 const QString normalized =
string.trimmed().toLower();
1115#define KM2_TO_M2 1000000.0
1116#define CM2_TO_M2 0.0001
1117#define MM2_TO_M2 0.000001
1118#define FT2_TO_M2 0.09290304
1119#define IN2_TO_M2 0.00064516
1120#define YD2_TO_M2 0.83612736
1121#define MI2_TO_M2 2589988.110336
1122#define HA_TO_M2 10000.0
1123#define AC_TO_FT2 43560.0
1124#define DEG2_TO_M2 12392029030.5
1125#define NM2_TO_M2 3429904.0
1552 switch ( distanceUnit )
1700 return u
"<unknown>"_s;
1707 const QString normalized =
string.trimmed().toLower();
1748 return QObject::tr(
"seconds",
"temporal" );
1750 return QObject::tr(
"milliseconds",
"temporal" );
1752 return QObject::tr(
"minutes",
"temporal" );
1754 return QObject::tr(
"hours",
"temporal" );
1756 return QObject::tr(
"days",
"temporal" );
1758 return QObject::tr(
"weeks",
"temporal" );
1760 return QObject::tr(
"months",
"temporal" );
1762 return QObject::tr(
"years",
"temporal" );
1764 return QObject::tr(
"decades",
"temporal" );
1766 return QObject::tr(
"centuries",
"temporal" );
1768 return QObject::tr(
"steps",
"temporal" );
1770 return QObject::tr(
"<unknown>",
"temporal" );
1780 return QObject::tr(
"s",
"temporal" );
1782 return QObject::tr(
"ms",
"temporal" );
1784 return QObject::tr(
"min",
"temporal" );
1786 return QObject::tr(
"h",
"temporal" );
1788 return QObject::tr(
"d",
"temporal" );
1790 return QObject::tr(
"wk",
"temporal" );
1792 return QObject::tr(
"mon",
"temporal" );
1794 return QObject::tr(
"y",
"temporal" );
1796 return QObject::tr(
"dec",
"temporal" );
1798 return QObject::tr(
"cen",
"temporal" );
1800 return QObject::tr(
"steps",
"temporal" );
1802 return QObject::tr(
"<unknown>",
"temporal" );
1809 const QString normalized =
string.trimmed().toLower();
1864 return 1 / 604800.0;
1866 return 1 / 2592000.0;
1868 return 1 / 31557600.0;
1870 return 1 / 315576000.0;
1872 return 1 / 3155760000.0;
1890 return 1 / 3600000.0;
1892 return 1 / 86400000.0;
1894 return 1 / 604800000.0;
1896 return 1 / 2592000000.0;
1898 return 1 / 31557600000.0;
1900 return 1 / 315576000000.0;
1902 return 1 / 3155760000000.0;
1928 return 1 / 525960.0;
1930 return 1 / 5259600.0;
1932 return 1 / 52596000.0;
1962 return 1 / 876600.0;
2036 return 2592000000.0;
2052 return 30 / 36525.0;
2066 return 31557600000.0;
2074 return 365.25 / 7.0;
2076 return 365.25 / 30.0;
2096 return 315576000000.0;
2104 return 3652.5 / 7.0;
2106 return 3652.5 / 30.0;
2125 return 3155760000.0;
2127 return 3155760000000.0;
2137 return 36525 / 30.0;
2162 const QString normalized =
string.trimmed().toLower();
2201 return QObject::tr(
"cubic meters",
"volume" );
2203 return QObject::tr(
"cubic feet",
"volume" );
2205 return QObject::tr(
"cubic yards",
"volume" );
2207 return QObject::tr(
"barrels",
"volume" );
2209 return QObject::tr(
"cubic decimeters",
"volume" );
2211 return QObject::tr(
"liters",
"volume" );
2213 return QObject::tr(
"gallons",
"volume" );
2215 return QObject::tr(
"cubic inches",
"volume" );
2217 return QObject::tr(
"cubic centimeters",
"volume" );
2219 return QObject::tr(
"cubic degrees",
"volume" );
2221 return QObject::tr(
"<unknown>",
"volume" );
2231 return QObject::tr(
"m³",
"volume" );
2233 return QObject::tr(
"ft³",
"volume" );
2235 return QObject::tr(
"yds³",
"volume" );
2237 return QObject::tr(
"bbl",
"volume" );
2239 return QObject::tr(
"dm³",
"volume" );
2241 return QObject::tr(
"l",
"volume" );
2243 return QObject::tr(
"gal",
"volume" );
2245 return QObject::tr(
"in³",
"volume" );
2247 return QObject::tr(
"cm³",
"volume" );
2249 return QObject::tr(
"deg³",
"volume" );
2251 return QObject::tr(
"<unknown>",
"volume" );
2258 const QString normalized =
string.trimmed().toLower();
2292#define DEG2_TO_M3 1379474361572186.2
2306 return 35.314666572222;
2308 return 1.307950613786;
2310 return 6.2898107438466;
2316 return 264.17205124156;
2318 return 61023.7438368;
2333 return 0.028316846592;
2347 return 1728.000629765;
2364 return 26.999998234;
2374 return 201.974025549;
2376 return 46656.013952472;
2403 return 41.999998943;
2405 return 9702.002677722;
2434 return 61.023758990;
2462 return 231.000069567;
2492 return 16.387060000;
2547 switch ( distanceUnit )
2628 switch ( volumeUnit )
2703 return u
"<unknown>"_s;
2713 return u
"degrees"_s;
2715 return u
"radians"_s;
2725 return u
"milliradians"_s;
2729 return u
"<unknown>"_s;
2736 const QString normalized =
string.trimmed().toLower();
2770 return QObject::tr(
"degrees",
"angle" );
2772 return QObject::tr(
"radians",
"angle" );
2774 return QObject::tr(
"gon",
"angle" );
2776 return QObject::tr(
"minutes of arc",
"angle" );
2778 return QObject::tr(
"seconds of arc",
"angle" );
2780 return QObject::tr(
"turns",
"angle" );
2782 return QObject::tr(
"milliradians",
"angle" );
2784 return QObject::tr(
"mil",
"angle" );
2786 return QObject::tr(
"<unknown>",
"angle" );
2803 return M_PI / 180.0;
2805 return 400.0 / 360.0;
2813 return M_PI / 180.0 * 1000;
2815 return 3200.0 / 180;
2826 return 180.0 / M_PI;
2830 return 200.0 / M_PI;
2832 return 60 * 180.0 / M_PI;
2834 return 3600 * 180.0 / M_PI;
2840 return 3200.0 / M_PI;
2851 return 360.0 / 400.0;
2853 return M_PI / 200.0;
2857 return 60 * 360.0 / 400.0;
2859 return 3600 * 360.0 / 400.0;
2863 return M_PI / 200.0 * 1000;
2865 return 3200.0 / 200.0;
2878 return M_PI / 180.0 / 60.0;
2880 return 400.0 / 360.0 / 60.0;
2886 return 1.0 / 360.0 / 60.0;
2888 return M_PI / 180.0 / 60.0 * 1000;
2890 return 3200.0 / 180.0 / 60.0;
2903 return M_PI / 180.0 / 3600.0;
2905 return 400.0 / 360.0 / 3600.0;
2911 return 1.0 / 360.0 / 3600.0;
2913 return M_PI / 180.0 / 3600.0 * 1000;
2915 return 3200.0 / 180.0 / 3600.0;
2932 return 360.0 * 60.0;
2934 return 360.0 * 3600.0;
2938 return 2 * M_PI * 1000;
2951 return 180.0 / M_PI / 1000;
2955 return 200.0 / M_PI / 1000;
2957 return 180.0 * 60.0 / M_PI / 1000;
2959 return 180.0 * 3600.0 / M_PI / 1000;
2961 return M_PI / 2 / 1000;
2965 return 3200.0 / 1000.0 / M_PI;
2977 return 180.0 / 3200;
2981 return 200.0 / 3200;
2983 return 60 * 180.0 / 3200;
2985 return 3600.0 * 180 / 3200;
2987 return 1.0 / ( 2 * 32000 );
2989 return 1000.0 * M_PI / 3200.0;
3007 int decimalPlaces = 2;
3012 unitLabel = QObject::tr(
"°",
"angle" );
3016 unitLabel = QObject::tr(
" rad",
"angle" );
3020 unitLabel = QObject::tr(
" gon",
"angle" );
3024 unitLabel = QObject::tr(
"′",
"angle minutes" );
3028 unitLabel = QObject::tr(
"″",
"angle seconds" );
3032 unitLabel = QObject::tr(
" tr",
"angle turn" );
3036 unitLabel = QObject::tr(
" millirad",
"angular mil SI" );
3040 unitLabel = QObject::tr(
" mil",
"angular mil NATO" );
3047 if ( decimals >= 0 )
3048 decimalPlaces = decimals;
3050 return u
"%L1%2"_s.arg( angle, 0,
'f', decimalPlaces ).arg( unitLabel );
3067 else if ( std::fabs( distance ) > 1000.0 )
3072 else if ( std::fabs( distance ) < 0.01 )
3077 else if ( std::fabs( distance ) < 0.1 )
3090 if ( keepBaseUnit || std::fabs( distance ) >= 1.0 )
3103 if ( std::fabs( distance ) <= 5280.0 || keepBaseUnit )
3116 if ( std::fabs( distance ) <= 1760.0 || keepBaseUnit )
3129 if ( std::fabs( distance ) >= 1.0 || keepBaseUnit )
3169 result.
value = -1.0;
3374 return u
"%L1%2"_s.arg( distance, 0,
'e', decimals ).arg( unitText );
3378 return u
"%L1%2"_s.arg( dist.
value, 0,
'f', decimals ).arg( unitText );
3394 return u
"%L1%2"_s.arg( area, 0,
'e', decimals ).arg( unitText );
3398 return u
"%L1%2"_s.arg( areaValue.
value, 0,
'f', decimals ).arg( unitText );
3409 return u
"RenderMetersInMapUnits"_s;
3411 return u
"MapUnit"_s;
3415 return u
"Percentage"_s;
3428 const QString normalized =
string.trimmed().toLower();
3437 if ( normalized ==
"meters"_L1 )
3441 if ( normalized ==
"mapunits"_L1 )
3447 if ( normalized ==
"percent"_L1 )
3451 if ( normalized ==
"points"_L1 )
3468 return QObject::tr(
"millimeters",
"render" );
3471 return QObject::tr(
"meters at scale",
"render" );
3474 return QObject::tr(
"map units",
"render" );
3477 return QObject::tr(
"pixels",
"render" );
3480 return QObject::tr(
"percent",
"render" );
3483 return QObject::tr(
"points",
"render" );
3486 return QObject::tr(
"inches",
"render" );
3489 return QObject::tr(
"<unknown>",
"render" );
3521 const QString normalized =
string.trimmed().toLower();
3575 return QObject::tr(
"px" );
3577 return QObject::tr(
"mm" );
3579 return QObject::tr(
"cm" );
3581 return QObject::tr(
"m" );
3583 return QObject::tr(
"in",
"unit inch" );
3585 return QObject::tr(
"ft" );
3587 return QObject::tr(
"pt" );
3589 return QObject::tr(
"pica" );
3599 return QObject::tr(
"pixels" );
3601 return QObject::tr(
"millimeters" );
3603 return QObject::tr(
"centimeters" );
3605 return QObject::tr(
"meters" );
3607 return QObject::tr(
"inches" );
3609 return QObject::tr(
"feet" );
3611 return QObject::tr(
"points" );
3613 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.