31       return QStringLiteral( 
"distance" );
 
   34       return QStringLiteral( 
"area" );
 
   37       return QStringLiteral( 
"volume" );
 
   40       return QStringLiteral( 
"temporal" );
 
   43       return QStringLiteral( 
"<unknown>" );
 
   51   const QString normalized = 
string.trimmed().toLower();
 
  127       return QStringLiteral( 
"meters" );
 
  130       return QStringLiteral( 
"km" );
 
  133       return QStringLiteral( 
"feet" );
 
  136       return QStringLiteral( 
"yd" );
 
  139       return QStringLiteral( 
"mi" );
 
  142       return QStringLiteral( 
"degrees" );
 
  145       return QStringLiteral( 
"<unknown>" );
 
  148       return QStringLiteral( 
"nautical miles" );
 
  151       return QStringLiteral( 
"cm" );
 
  154       return QStringLiteral( 
"mm" );
 
  167   const QString normalized = 
string.trimmed().toLower();
 
  204       return QObject::tr( 
"meters", 
"distance" );
 
  207       return QObject::tr( 
"kilometers", 
"distance" );
 
  210       return QObject::tr( 
"feet", 
"distance" );
 
  213       return QObject::tr( 
"yards", 
"distance" );
 
  216       return QObject::tr( 
"miles", 
"distance" );
 
  219       return QObject::tr( 
"degrees", 
"distance" );
 
  222       return QObject::tr( 
"centimeters", 
"distance" );
 
  225       return QObject::tr( 
"millimeters", 
"distance" );
 
  228       return QObject::tr( 
"<unknown>", 
"distance" );
 
  231       return QObject::tr( 
"nautical miles", 
"distance" );
 
  241       return QObject::tr( 
"mm", 
"render" );
 
  244       return QObject::tr( 
"map units", 
"render" );
 
  247       return QObject::tr( 
"px", 
"render" );
 
  250       return QObject::tr( 
"%", 
"render" );
 
  253       return QObject::tr( 
"pt", 
"render" );
 
  256       return QObject::tr( 
"in", 
"render" );
 
  259       return QObject::tr( 
"unknown", 
"render" );
 
  262       return QObject::tr( 
"m", 
"render" );
 
  274       return QObject::tr( 
"m", 
"distance" );
 
  277       return QObject::tr( 
"km", 
"distance" );
 
  280       return QObject::tr( 
"ft", 
"distance" );
 
  283       return QObject::tr( 
"yd", 
"distance" );
 
  286       return QObject::tr( 
"mi", 
"distance" );
 
  289       return QObject::tr( 
"deg", 
"distance" );
 
  292       return QObject::tr( 
"cm", 
"distance" );
 
  295       return QObject::tr( 
"mm", 
"distance" );
 
  301       return QObject::tr( 
"NM", 
"distance" );
 
  314   const QString normalized = 
string.trimmed().toLower();
 
  354 #define DEGREE_TO_METER 111319.49079327358 
  355 #define FEET_TO_METER 0.3048 
  356 #define NMILE_TO_METER 1852.0 
  357 #define KILOMETERS_TO_METER 1000.0 
  358 #define CENTIMETERS_TO_METER 0.01 
  359 #define MILLIMETERS_TO_METER 0.001 
  360 #define YARDS_TO_METER 0.9144 
  361 #define YARDS_TO_FEET 3.0 
  362 #define MILES_TO_METER 1609.344 
  630       return QStringLiteral( 
"m2" );
 
  632       return QStringLiteral( 
"km2" );
 
  634       return QStringLiteral( 
"ft2" );
 
  636       return QStringLiteral( 
"y2" );
 
  638       return QStringLiteral( 
"mi2" );
 
  640       return QStringLiteral( 
"ha" );
 
  642       return QStringLiteral( 
"ac" );
 
  644       return QStringLiteral( 
"nm2" );
 
  646       return QStringLiteral( 
"deg2" );
 
  648       return QStringLiteral( 
"cm2" );
 
  650       return QStringLiteral( 
"mm2" );
 
  652       return QStringLiteral( 
"<unknown>" );
 
  659   const QString normalized = 
string.trimmed().toLower();
 
  700       return QObject::tr( 
"square meters", 
"area" );
 
  702       return QObject::tr( 
"square kilometers", 
"area" );
 
  704       return QObject::tr( 
"square feet", 
"area" );
 
  706       return QObject::tr( 
"square yards", 
"area" );
 
  708       return QObject::tr( 
"square miles", 
"area" );
 
  710       return QObject::tr( 
"hectares", 
"area" );
 
  712       return QObject::tr( 
"acres", 
"area" );
 
  714       return QObject::tr( 
"square nautical miles", 
"area" );
 
  716       return QObject::tr( 
"square degrees", 
"area" );
 
  718       return QObject::tr( 
"square millimeters", 
"area" );
 
  720       return QObject::tr( 
"square centimeters", 
"area" );
 
  722       return QObject::tr( 
"<unknown>", 
"area" );
 
  732       return QObject::tr( 
"m²", 
"area" );
 
  734       return QObject::tr( 
"km²", 
"area" );
 
  736       return QObject::tr( 
"ft²", 
"area" );
 
  738       return QObject::tr( 
"yd²", 
"area" );
 
  740       return QObject::tr( 
"mi²", 
"area" );
 
  742       return QObject::tr( 
"ha", 
"area" );
 
  744       return QObject::tr( 
"ac", 
"area" );
 
  746       return QObject::tr( 
"NM²", 
"area" );
 
  748       return QObject::tr( 
"deg²", 
"area" );
 
  750       return QObject::tr( 
"cm²", 
"area" );
 
  752       return QObject::tr( 
"mm²", 
"area" );
 
  761   const QString normalized = 
string.trimmed().toLower();
 
  798 #define KM2_TO_M2 1000000.0 
  799 #define CM2_TO_M2 0.0001 
  800 #define MM2_TO_M2 0.000001 
  801 #define FT2_TO_M2 0.09290304 
  802 #define YD2_TO_M2 0.83612736 
  803 #define MI2_TO_M2 2589988.110336 
  804 #define HA_TO_M2 10000.0 
  805 #define AC_TO_FT2 43560.0 
  806 #define DEG2_TO_M2 12392029030.5 
  807 #define NM2_TO_M2 3429904.0 
 1178   switch ( distanceUnit )
 
 1259       return QStringLiteral( 
"s" );
 
 1261       return QStringLiteral( 
"ms" );
 
 1263       return QStringLiteral( 
"min" );
 
 1265       return QStringLiteral( 
"h" );
 
 1267       return QStringLiteral( 
"d" );
 
 1269       return QStringLiteral( 
"wk" );
 
 1271       return QStringLiteral( 
"mon" );
 
 1273       return QStringLiteral( 
"y" );
 
 1275       return QStringLiteral( 
"dec" );
 
 1277       return QStringLiteral( 
"c" );
 
 1279       return QStringLiteral( 
"xxx" );
 
 1281       return QStringLiteral( 
"<unknown>" );
 
 1288   const QString normalized = 
string.trimmed().toLower();
 
 1329       return QObject::tr( 
"seconds", 
"temporal" );
 
 1331       return QObject::tr( 
"milliseconds", 
"temporal" );
 
 1333       return QObject::tr( 
"minutes", 
"temporal" );
 
 1335       return QObject::tr( 
"hours", 
"temporal" );
 
 1337       return QObject::tr( 
"days", 
"temporal" );
 
 1339       return QObject::tr( 
"weeks", 
"temporal" );
 
 1341       return QObject::tr( 
"months", 
"temporal" );
 
 1343       return QObject::tr( 
"years", 
"temporal" );
 
 1345       return QObject::tr( 
"decades", 
"temporal" );
 
 1347       return QObject::tr( 
"centuries", 
"temporal" );
 
 1349       return QObject::tr( 
"steps", 
"temporal" );
 
 1351       return QObject::tr( 
"<unknown>", 
"temporal" );
 
 1361       return QObject::tr( 
"s", 
"temporal" );
 
 1363       return QObject::tr( 
"ms", 
"temporal" );
 
 1365       return QObject::tr( 
"min", 
"temporal" );
 
 1367       return QObject::tr( 
"h", 
"temporal" );
 
 1369       return QObject::tr( 
"d", 
"temporal" );
 
 1371       return QObject::tr( 
"wk", 
"temporal" );
 
 1373       return QObject::tr( 
"mon", 
"temporal" );
 
 1375       return QObject::tr( 
"y", 
"temporal" );
 
 1377       return QObject::tr( 
"dec", 
"temporal" );
 
 1379       return QObject::tr( 
"cen", 
"temporal" );
 
 1381       return QObject::tr( 
"steps", 
"temporal" );
 
 1383       return QObject::tr( 
"<unknown>", 
"temporal" );
 
 1390   const QString normalized = 
string.trimmed().toLower();
 
 1445           return 1 / 604800.0;
 
 1447           return 1 / 2592000.0;
 
 1449           return 1 / 31557600.0;
 
 1451           return 1 / 315576000.0;
 
 1453           return 1 / 3155760000.0;
 
 1471           return 1 / 3600000.0;
 
 1473           return 1 / 86400000.0;
 
 1475           return 1 / 60480000.0;
 
 1477           return 1 / 259200000.0;
 
 1479           return 1 / 3155760000.0;
 
 1481           return 1 / 31557600000.0;
 
 1483           return 1 / 315576000000.0;
 
 1509           return 1 / 525960.0;
 
 1511           return 1 / 5259600.0;
 
 1513           return 1 / 52596000.0;
 
 1543           return 1 / 876600.0;
 
 1617           return 2592000000.0;
 
 1633           return 30 / 36525.0;
 
 1647           return 31557600000.0;
 
 1655           return 365.25 / 7.0;
 
 1657           return 365.25 / 30.0;
 
 1677           return 315576000000.0;
 
 1685           return 3652.5 / 7.0;
 
 1687           return 3652.5 / 30.0;
 
 1706           return 3155760000.0;
 
 1708           return 3155760000000.0;
 
 1718           return 36525 / 30.0;
 
 1743   const QString normalized = 
string.trimmed().toLower();
 
 1782       return QObject::tr( 
"cubic meters", 
"volume" );
 
 1784       return QObject::tr( 
"cubic feet", 
"volume" );
 
 1786       return QObject::tr( 
"cubic yards", 
"volume" );
 
 1788       return QObject::tr( 
"barrels", 
"volume" );
 
 1790       return QObject::tr( 
"cubic decimeters", 
"volume" );
 
 1792       return QObject::tr( 
"liters", 
"volume" );
 
 1794       return QObject::tr( 
"gallons", 
"volume" );
 
 1796       return QObject::tr( 
"cubic inches", 
"volume" );
 
 1798       return QObject::tr( 
"cubic centimeters", 
"volume" );
 
 1800       return QObject::tr( 
"cubic degrees", 
"volume" );
 
 1802       return QObject::tr( 
"<unknown>", 
"volume" );
 
 1812       return QObject::tr( 
"m³", 
"volume" );
 
 1814       return QObject::tr( 
"ft³", 
"volume" );
 
 1816       return QObject::tr( 
"yds³", 
"volume" );
 
 1818       return QObject::tr( 
"bbl", 
"volume" );
 
 1820       return QObject::tr( 
"dm³", 
"volume" );
 
 1822       return QObject::tr( 
"l", 
"volume" );
 
 1824       return QObject::tr( 
"gal", 
"volume" );
 
 1826       return QObject::tr( 
"in³", 
"volume" );
 
 1828       return QObject::tr( 
"cm³", 
"volume" );
 
 1830       return QObject::tr( 
"deg³", 
"volume" );
 
 1832       return QObject::tr( 
"<unknown>", 
"volume" );
 
 1840   const QString normalized = 
string.trimmed().toLower();
 
 1874 #define DEG2_TO_M3 1379474361572186.2 
 1886           return 35.314666572222;
 
 1888           return  1.307950613786;
 
 1890           return 6.2898107438466;
 
 1896           return 264.17205124156;
 
 1898           return 61023.7438368;
 
 1913           return 0.028316846592;
 
 1927           return 1728.000629765;
 
 1944           return 26.999998234;
 
 1954           return 201.974025549;
 
 1956           return 46656.013952472;
 
 1983           return 41.999998943;
 
 1985           return 9702.002677722;
 
 2014           return 61.023758990;
 
 2042           return 231.000069567;
 
 2072           return 16.387060000;
 
 2096           return 0.000264172 ;
 
 2124   switch ( distanceUnit )
 
 2162   switch ( volumeUnit )
 
 2217       return QStringLiteral( 
"m3" );
 
 2219       return QStringLiteral( 
"ft3" );
 
 2221       return QStringLiteral( 
"yd3" );
 
 2223       return QStringLiteral( 
"bbl" );
 
 2225       return QStringLiteral( 
"dm3" );
 
 2227       return QStringLiteral( 
"l" );
 
 2229       return QStringLiteral( 
"gal" );
 
 2231       return QStringLiteral( 
"in3" );
 
 2233       return QStringLiteral( 
"cm3" );
 
 2235       return QStringLiteral( 
"deg3" );
 
 2237       return QStringLiteral( 
"<unknown>" );
 
 2247       return QStringLiteral( 
"degrees" );
 
 2249       return QStringLiteral( 
"radians" );
 
 2251       return QStringLiteral( 
"gon" );
 
 2253       return QStringLiteral( 
"moa" );
 
 2255       return QStringLiteral( 
"soa" );
 
 2257       return QStringLiteral( 
"tr" );
 
 2259       return QStringLiteral( 
"milliradians" );
 
 2261       return QStringLiteral( 
"mil" );
 
 2263       return QStringLiteral( 
"<unknown>" );
 
 2270   const QString normalized = 
string.trimmed().toLower();
 
 2304       return QObject::tr( 
"degrees", 
"angle" );
 
 2306       return QObject::tr( 
"radians", 
"angle" );
 
 2308       return QObject::tr( 
"gon", 
"angle" );
 
 2310       return QObject::tr( 
"minutes of arc", 
"angle" );
 
 2312       return QObject::tr( 
"seconds of arc", 
"angle" );
 
 2314       return QObject::tr( 
"turns", 
"angle" );
 
 2316       return QObject::tr( 
"milliradians", 
"angle" );
 
 2318       return QObject::tr( 
"mil", 
"angle" );
 
 2320       return QObject::tr( 
"<unknown>", 
"angle" );
 
 2337           return M_PI / 180.0;
 
 2339           return 400.0 / 360.0;
 
 2347           return M_PI / 180.0 * 1000;
 
 2349           return 3200.0 / 180;
 
 2360           return 180.0 / M_PI;
 
 2364           return 200.0 / M_PI;
 
 2366           return 60 * 180.0 / M_PI;
 
 2368           return 3600 * 180.0 / M_PI;
 
 2374           return 3200.0 / M_PI;
 
 2385           return 360.0 / 400.0;
 
 2387           return M_PI / 200.0;
 
 2391           return 60 * 360.0 / 400.0;
 
 2393           return 3600 * 360.0 / 400.0;
 
 2397           return M_PI / 200.0 * 1000;
 
 2399           return 3200.0 / 200.0;
 
 2412           return M_PI / 180.0 / 60.0;
 
 2414           return 400.0 / 360.0 / 60.0;
 
 2420           return 1.0 / 360.0 / 60.0;
 
 2422           return M_PI / 180.0 / 60.0 * 1000;
 
 2424           return 3200.0 / 180.0 / 60.0;
 
 2437           return M_PI / 180.0 / 3600.0;
 
 2439           return 400.0 / 360.0 / 3600.0;
 
 2445           return 1.0 / 360.0 / 3600.0;
 
 2447           return M_PI / 180.0 / 3600.0 * 1000;
 
 2449           return 3200.0 / 180.0 / 3600.0;
 
 2466           return 360.0 * 60.0;
 
 2468           return 360.0 * 3600.0;
 
 2472           return 2 * M_PI * 1000;
 
 2485           return 180.0 / M_PI / 1000;
 
 2489           return 200.0 / M_PI / 1000;
 
 2491           return 180.0 * 60.0 / M_PI / 1000;
 
 2493           return 180.0 * 3600.0 / M_PI / 1000;
 
 2495           return M_PI / 2 / 1000;
 
 2499           return 3200.0 / 1000.0 / M_PI;
 
 2511           return 180.0 / 3200;
 
 2515           return 200.0 / 3200;
 
 2517           return 60 * 180.0 / 3200;
 
 2519           return 3600.0 * 180 / 3200;
 
 2521           return 1.0 / ( 2 * 32000 );
 
 2523           return 1000.0 * M_PI / 3200.0;
 
 2541   int decimalPlaces = 2;
 
 2546       unitLabel = QObject::tr( 
"°", 
"angle" );
 
 2550       unitLabel = QObject::tr( 
" rad", 
"angle" );
 
 2554       unitLabel = QObject::tr( 
" gon", 
"angle" );
 
 2558       unitLabel = QObject::tr( 
"′", 
"angle minutes" );
 
 2562       unitLabel = QObject::tr( 
"″", 
"angle seconds" );
 
 2566       unitLabel = QObject::tr( 
" tr", 
"angle turn" );
 
 2570       unitLabel = QObject::tr( 
" millirad", 
"angular mil SI" );
 
 2574       unitLabel = QObject::tr( 
" mil", 
"angular mil NATO" );
 
 2581   if ( decimals >= 0 )
 
 2582     decimalPlaces = decimals;
 
 2584   return QStringLiteral( 
"%L1%2" ).arg( 
angle, 0, 
'f', decimalPlaces ).arg( unitLabel );
 
 2599       else if ( std::fabs( distance ) > 1000.0 )
 
 2604       else if ( std::fabs( distance ) < 0.01 )
 
 2609       else if ( std::fabs( distance ) < 0.1 )
 
 2623       if ( keepBaseUnit || std::fabs( distance ) >= 1.0 )
 
 2636       if ( std::fabs( distance ) <= 5280.0 || keepBaseUnit )
 
 2649       if ( std::fabs( distance ) <= 1760.0 || keepBaseUnit )
 
 2662       if ( std::fabs( distance ) >= 1.0 || keepBaseUnit )
 
 2701   result.
value = -1.0;
 
 2893   return QStringLiteral( 
"%L1%2" ).arg( dist.
value, 0, 
'f', decimals ).arg( unitText );
 
 2905   return QStringLiteral( 
"%L1%2" ).arg( areaValue.
value, 0, 
'f', decimals ).arg( unitText );
 
 2913       return QStringLiteral( 
"MM" );
 
 2915       return QStringLiteral( 
"RenderMetersInMapUnits" );
 
 2917       return QStringLiteral( 
"MapUnit" );
 
 2919       return QStringLiteral( 
"Pixel" );
 
 2921       return QStringLiteral( 
"Percentage" );
 
 2923       return QStringLiteral( 
"Point" );
 
 2925       return QStringLiteral( 
"Inch" );
 
 2934   const QString normalized = 
string.trimmed().toLower();
 
 2943   if ( normalized == QLatin1String( 
"meters" ) )
 
 2947   if ( normalized == QLatin1String( 
"mapunits" ) )
 
 2953   if ( normalized == QLatin1String( 
"percent" ) )
 
 2957   if ( normalized == QLatin1String( 
"points" ) )
 
 2974       return QObject::tr( 
"millimeters", 
"render" );
 
 2977       return QObject::tr( 
"meters at scale", 
"render" );
 
 2980       return QObject::tr( 
"map units", 
"render" );
 
 2983       return QObject::tr( 
"pixels", 
"render" );
 
 2986       return QObject::tr( 
"percent", 
"render" );
 
 2989       return QObject::tr( 
"points", 
"render" );
 
 2992       return QObject::tr( 
"inches", 
"render" );
 
 2995       return QObject::tr( 
"<unknown>", 
"render" );
 
 3008       return QStringLiteral( 
"cm" );
 
 3010       return QStringLiteral( 
"m" );
 
 3012       return QStringLiteral( 
"in" );
 
 3014       return QStringLiteral( 
"ft" );
 
 3016       return QStringLiteral( 
"pt" );
 
 3018       return QStringLiteral( 
"pi" );
 
 3020       return QStringLiteral( 
"px" );
 
 3022       return QStringLiteral( 
"mm" );
 
 3029   const QString normalized = 
string.trimmed().toLower();
 
 3083       return QObject::tr( 
"px" );
 
 3085       return QObject::tr( 
"mm" );
 
 3087       return QObject::tr( 
"cm" );
 
 3089       return QObject::tr( 
"m" );
 
 3091       return QObject::tr( 
"in", 
"unit inch" );
 
 3093       return QObject::tr( 
"ft" );
 
 3095       return QObject::tr( 
"pt" );
 
 3097       return QObject::tr( 
"pica" );
 
 3107       return QObject::tr( 
"pixels" );
 
 3109       return QObject::tr( 
"millimeters" );
 
 3111       return QObject::tr( 
"centimeters" );
 
 3113       return QObject::tr( 
"meters" );
 
 3115       return QObject::tr( 
"inches" );
 
 3117       return QObject::tr( 
"feet" );
 
 3119       return QObject::tr( 
"points" );
 
 3121       return QObject::tr( 
"picas" );
 
static Q_INVOKABLE QgsUnitTypes::VolumeUnit decodeVolumeUnit(const QString &string, bool *ok=nullptr)
Decodes a volume unit from a string.
DistanceUnit
Units of distance.
@ DistanceDegrees
Degrees, for planar geographic CRS distance measurements.
@ DistanceKilometers
Kilometers.
@ DistanceMiles
Terrestrial miles.
@ DistanceUnknownUnit
Unknown distance unit.
@ DistanceMillimeters
Millimeters.
@ DistanceYards
Imperial yards.
@ DistanceFeet
Imperial feet.
@ DistanceNauticalMiles
Nautical miles.
@ DistanceCentimeters
Centimeters.
LayoutUnit
Layout measurement units.
@ LayoutMillimeters
Millimeters.
@ LayoutCentimeters
Centimeters.
@ LayoutPicas
Typographic picas.
@ LayoutPoints
Typographic points.
static Q_INVOKABLE QgsUnitTypes::TemporalUnit stringToTemporalUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a temporal unit.
AngleUnit
Units of angles.
@ AngleRadians
Square kilometers.
@ AngleMilNATO
Angular mil (NATO definition, 6400 mil = 2PI radians)
@ AngleMilliradiansSI
Angular milliradians (SI definition, 1/1000 of radian)
@ AngleTurn
Turn/revolutions.
@ AngleUnknownUnit
Unknown angle unit.
@ AngleMinutesOfArc
Minutes of arc.
@ AngleSecondsOfArc
Seconds of arc.
static Q_INVOKABLE QString encodeUnit(QgsUnitTypes::DistanceUnit unit)
Encodes a distance unit to 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 QgsUnitTypes::VolumeUnit stringToVolumeUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a volume unit.
static Q_INVOKABLE QgsUnitTypes::AngleUnit decodeAngleUnit(const QString &string, bool *ok=nullptr)
Decodes an angular unit from a string.
VolumeUnit
Units of volume.
@ VolumeCubicYards
Cubic yards.
@ VolumeCubicMeters
Cubic meters.
@ VolumeCubicDecimeter
Cubic decimeters.
@ VolumeCubicCentimeter
Cubic Centimeters.
@ VolumeCubicDegrees
Cubic degrees, for planar geographic CRS volume measurements.
@ VolumeCubicFeet
Cubic feet.
@ VolumeCubicInch
Cubic inches.
@ VolumeUnknownUnit
Unknown volume unit.
@ VolumeGallonUS
US Gallons.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit decodeDistanceUnit(const QString &string, bool *ok=nullptr)
Decodes a distance unit from a string.
static Q_INVOKABLE QString toString(QgsUnitTypes::DistanceUnit unit)
Returns a translated string representing a distance unit.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit areaToDistanceUnit(QgsUnitTypes::AreaUnit areaUnit)
Converts an area unit to its corresponding distance unit, e.g., square meters to meters.
static Q_INVOKABLE QgsUnitTypes::DistanceUnit stringToDistanceUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to a distance unit.
static Q_INVOKABLE double fromUnitToUnitFactor(QgsUnitTypes::DistanceUnit fromUnit, QgsUnitTypes::DistanceUnit toUnit)
Returns the conversion factor between the specified distance units.
static Q_INVOKABLE QgsUnitTypes::AreaUnit stringToAreaUnit(const QString &string, bool *ok=nullptr)
Converts a translated string to an areal 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 QString toAbbreviatedString(QgsUnitTypes::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
static Q_INVOKABLE QgsUnitTypes::DistanceUnitType unitType(QgsUnitTypes::DistanceUnit unit)
Returns the type for a distance unit.
static Q_INVOKABLE QgsUnitTypes::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string.
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.
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 QgsUnitTypes::LayoutUnit decodeLayoutUnit(const QString &string, bool *ok=nullptr)
Decodes a layout unit from a string.
static Q_INVOKABLE QgsUnitTypes::AreaUnit decodeAreaUnit(const QString &string, bool *ok=nullptr)
Decodes an areal unit from a string.
DistanceUnitType
Types of distance units.
@ Geographic
Unit is a geographic (e.g., degree based) unit.
@ Standard
Unit is a standard measurement unit.
@ UnknownType
Unknown unit type.
@ TypeDistance
Distance unit.
@ TypeTemporal
Temporal unit.
@ TypeUnknown
Unknown unit type.
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::VolumeUnit distanceToVolumeUnit(QgsUnitTypes::DistanceUnit distanceUnit)
Converts a distance unit to its corresponding volume unit, e.g., meters to cubic meters.
@ AreaSquareNauticalMiles
Square nautical miles.
@ AreaSquareYards
Square yards.
@ AreaSquareFeet
Square feet.
@ AreaUnknownUnit
Unknown areal unit.
@ AreaSquareMeters
Square meters.
@ AreaSquareMiles
Square miles.
@ AreaSquareCentimeters
Square centimeters.
@ AreaSquareKilometers
Square kilometers.
@ AreaSquareDegrees
Square degrees, for planar geographic CRS area measurements.
@ AreaSquareMillimeters
Square millimeters.
TemporalUnit
Temporal units.
@ TemporalUnknownUnit
Unknown time unit.
@ TemporalMilliseconds
Milliseconds.
@ TemporalIrregularStep
Special "irregular step" time unit, used for temporal data which uses irregular, non-real-world unit ...
@ TemporalDecades
Decades.
@ TemporalCenturies
Centuries.
@ TemporalSeconds
Seconds.
@ TemporalMinutes
Minutes.
static Q_INVOKABLE QgsUnitTypes::TemporalUnit decodeTemporalUnit(const QString &string, bool *ok=nullptr)
Decodes a temporal unit from 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.
static Q_INVOKABLE QgsUnitTypes::UnitType decodeUnitType(const QString &string, bool *ok=nullptr)
Decodes a unit type from a string.
static Q_INVOKABLE QString encodeUnitType(QgsUnitTypes::UnitType type)
Encodes a unit type to a string.
RenderUnit
Rendering size units.
@ RenderUnknownUnit
Mixed or unknown units.
@ RenderMetersInMapUnits
Meters value as Map units.
@ RenderPercentage
Percentage of another measurement (e.g., canvas size, feature size)
@ RenderPoints
Points (e.g., for font sizes)
@ RenderMillimeters
Millimeters.
@ RenderMapUnits
Map units.
static Q_INVOKABLE QString formatAngle(double angle, int decimals, QgsUnitTypes::AngleUnit unit)
Returns an angle formatted as a friendly string.
LayoutUnitType
Types of layout units.
@ LayoutScreenUnits
Unit is a screen based measurement unit.
@ LayoutPaperUnits
Unit is a paper based measurement unit.
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)
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
#define CENTIMETERS_TO_METER
#define KILOMETERS_TO_METER
A combination of area value and unit.
double value
The value part of the distance.
QgsUnitTypes::AreaUnit unit
The value part of the distance.
A combination of distance value and unit.
QgsUnitTypes::DistanceUnit unit
The value part of the distance.
double value
The value part of the distance.