Add QgsUnitTypes::areaToDistanceUnit

This commit is contained in:
Sandro Mani 2019-07-17 11:33:12 +02:00 committed by Nyall Dawson
parent a123a51b5f
commit 91d5c2d55c
3 changed files with 57 additions and 1 deletions

View File

@ -283,6 +283,15 @@ Converts a distance unit to its corresponding area unit, e.g., meters to square
:return: matching areal unit
%End
static QgsUnitTypes::DistanceUnit areaToDistanceUnit( QgsUnitTypes::AreaUnit areaUnit );
%Docstring
Converts an area unit to its corresponding distance unit, e.g., square meters to meters
:param areaUnit: area unit to convert
:return: matching distance unit
%End
static QString encodeUnit( QgsUnitTypes::AngleUnit unit );
%Docstring

View File

@ -1140,7 +1140,7 @@ QgsUnitTypes::AreaUnit QgsUnitTypes::distanceToAreaUnit( DistanceUnit distanceUn
return AreaSquareCentimeters;
case DistanceMillimeters:
return AreaSquareCentimeters;
return AreaSquareMillimeters;
case DistanceFeet:
return AreaSquareFeet;
@ -1164,6 +1164,46 @@ QgsUnitTypes::AreaUnit QgsUnitTypes::distanceToAreaUnit( DistanceUnit distanceUn
return AreaUnknownUnit;
}
QgsUnitTypes::DistanceUnit QgsUnitTypes::areaToDistanceUnit( AreaUnit areaUnit )
{
switch ( areaUnit )
{
case AreaSquareMeters:
case AreaHectares:
return DistanceMeters;
case AreaSquareKilometers:
return DistanceKilometers;
case AreaSquareCentimeters:
return DistanceCentimeters;
case AreaSquareMillimeters:
return DistanceMillimeters;
case AreaSquareFeet:
return DistanceFeet;
case AreaSquareYards:
case AreaAcres:
return DistanceYards;
case AreaSquareMiles:
return DistanceMiles;
case AreaSquareDegrees:
return DistanceDegrees;
case AreaUnknownUnit:
return DistanceUnknownUnit;
case AreaSquareNauticalMiles:
return DistanceNauticalMiles;
}
return DistanceUnknownUnit;
}
QString QgsUnitTypes::encodeUnit( QgsUnitTypes::AngleUnit unit )
{
switch ( unit )

View File

@ -306,6 +306,13 @@ class CORE_EXPORT QgsUnitTypes
*/
Q_INVOKABLE static QgsUnitTypes::AreaUnit distanceToAreaUnit( QgsUnitTypes::DistanceUnit distanceUnit );
/**
* Converts an area unit to its corresponding distance unit, e.g., square meters to meters
* \param areaUnit area unit to convert
* \returns matching distance unit
*/
Q_INVOKABLE static QgsUnitTypes::DistanceUnit areaToDistanceUnit( QgsUnitTypes::AreaUnit areaUnit );
// ANGULAR UNITS
/**