Add DistanceUnit value for inches

This commit is contained in:
Nyall Dawson 2023-03-31 16:22:38 +10:00
parent 0ff713b127
commit cc2d032055
16 changed files with 299 additions and 31 deletions

View File

@ -3088,11 +3088,14 @@ QgsUnitTypes.DistanceMillimeters = Qgis.DistanceUnit.Millimeters
QgsUnitTypes.DistanceUnit.DistanceMillimeters = Qgis.DistanceUnit.Millimeters
QgsUnitTypes.DistanceMillimeters.is_monkey_patched = True
QgsUnitTypes.DistanceMillimeters.__doc__ = "Millimeters"
QgsUnitTypes.Inches = Qgis.DistanceUnit.Inches
QgsUnitTypes.Inches.is_monkey_patched = True
QgsUnitTypes.Inches.__doc__ = "Inches (since QGIS 3.32)"
QgsUnitTypes.DistanceUnknownUnit = Qgis.DistanceUnit.Unknown
QgsUnitTypes.DistanceUnit.DistanceUnknownUnit = Qgis.DistanceUnit.Unknown
QgsUnitTypes.DistanceUnknownUnit.is_monkey_patched = True
QgsUnitTypes.DistanceUnknownUnit.__doc__ = "Unknown distance unit"
Qgis.DistanceUnit.__doc__ = 'Units of distance\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.DistanceUnit.\n\n.. versionadded:: 3.30\n\n' + '* ``DistanceMeters``: ' + Qgis.DistanceUnit.Meters.__doc__ + '\n' + '* ``DistanceKilometers``: ' + Qgis.DistanceUnit.Kilometers.__doc__ + '\n' + '* ``DistanceFeet``: ' + Qgis.DistanceUnit.Feet.__doc__ + '\n' + '* ``DistanceNauticalMiles``: ' + Qgis.DistanceUnit.NauticalMiles.__doc__ + '\n' + '* ``DistanceYards``: ' + Qgis.DistanceUnit.Yards.__doc__ + '\n' + '* ``DistanceMiles``: ' + Qgis.DistanceUnit.Miles.__doc__ + '\n' + '* ``DistanceDegrees``: ' + Qgis.DistanceUnit.Degrees.__doc__ + '\n' + '* ``DistanceCentimeters``: ' + Qgis.DistanceUnit.Centimeters.__doc__ + '\n' + '* ``DistanceMillimeters``: ' + Qgis.DistanceUnit.Millimeters.__doc__ + '\n' + '* ``DistanceUnknownUnit``: ' + Qgis.DistanceUnit.Unknown.__doc__
Qgis.DistanceUnit.__doc__ = 'Units of distance\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.DistanceUnit.\n\n.. versionadded:: 3.30\n\n' + '* ``DistanceMeters``: ' + Qgis.DistanceUnit.Meters.__doc__ + '\n' + '* ``DistanceKilometers``: ' + Qgis.DistanceUnit.Kilometers.__doc__ + '\n' + '* ``DistanceFeet``: ' + Qgis.DistanceUnit.Feet.__doc__ + '\n' + '* ``DistanceNauticalMiles``: ' + Qgis.DistanceUnit.NauticalMiles.__doc__ + '\n' + '* ``DistanceYards``: ' + Qgis.DistanceUnit.Yards.__doc__ + '\n' + '* ``DistanceMiles``: ' + Qgis.DistanceUnit.Miles.__doc__ + '\n' + '* ``DistanceDegrees``: ' + Qgis.DistanceUnit.Degrees.__doc__ + '\n' + '* ``DistanceCentimeters``: ' + Qgis.DistanceUnit.Centimeters.__doc__ + '\n' + '* ``DistanceMillimeters``: ' + Qgis.DistanceUnit.Millimeters.__doc__ + '\n' + '* ``Inches``: ' + Qgis.DistanceUnit.Inches.__doc__ + '\n' + '* ``DistanceUnknownUnit``: ' + Qgis.DistanceUnit.Unknown.__doc__
# --
Qgis.DistanceUnit.baseClass = Qgis
QgsUnitTypes.DistanceUnitType = Qgis.DistanceUnitType
@ -3156,11 +3159,14 @@ QgsUnitTypes.AreaSquareMillimeters = Qgis.AreaUnit.SquareMillimeters
QgsUnitTypes.AreaUnit.AreaSquareMillimeters = Qgis.AreaUnit.SquareMillimeters
QgsUnitTypes.AreaSquareMillimeters.is_monkey_patched = True
QgsUnitTypes.AreaSquareMillimeters.__doc__ = "Square millimeters"
QgsUnitTypes.SquareInches = Qgis.AreaUnit.SquareInches
QgsUnitTypes.SquareInches.is_monkey_patched = True
QgsUnitTypes.SquareInches.__doc__ = "Square inches (since QGIS 3.32)"
QgsUnitTypes.AreaUnknownUnit = Qgis.AreaUnit.Unknown
QgsUnitTypes.AreaUnit.AreaUnknownUnit = Qgis.AreaUnit.Unknown
QgsUnitTypes.AreaUnknownUnit.is_monkey_patched = True
QgsUnitTypes.AreaUnknownUnit.__doc__ = "Unknown areal unit"
Qgis.AreaUnit.__doc__ = 'Units of area\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.AreaUnit.\n\n.. versionadded:: 3.30\n\n' + '* ``AreaSquareMeters``: ' + Qgis.AreaUnit.SquareMeters.__doc__ + '\n' + '* ``AreaSquareKilometers``: ' + Qgis.AreaUnit.SquareKilometers.__doc__ + '\n' + '* ``AreaSquareFeet``: ' + Qgis.AreaUnit.SquareFeet.__doc__ + '\n' + '* ``AreaSquareYards``: ' + Qgis.AreaUnit.SquareYards.__doc__ + '\n' + '* ``AreaSquareMiles``: ' + Qgis.AreaUnit.SquareMiles.__doc__ + '\n' + '* ``AreaHectares``: ' + Qgis.AreaUnit.Hectares.__doc__ + '\n' + '* ``AreaAcres``: ' + Qgis.AreaUnit.Acres.__doc__ + '\n' + '* ``AreaSquareNauticalMiles``: ' + Qgis.AreaUnit.SquareNauticalMiles.__doc__ + '\n' + '* ``AreaSquareDegrees``: ' + Qgis.AreaUnit.SquareDegrees.__doc__ + '\n' + '* ``AreaSquareCentimeters``: ' + Qgis.AreaUnit.SquareCentimeters.__doc__ + '\n' + '* ``AreaSquareMillimeters``: ' + Qgis.AreaUnit.SquareMillimeters.__doc__ + '\n' + '* ``AreaUnknownUnit``: ' + Qgis.AreaUnit.Unknown.__doc__
Qgis.AreaUnit.__doc__ = 'Units of area\n\n.. note::\n\n Prior to QGIS 3.30 this was available as :py:class:`QgsUnitTypes`.AreaUnit.\n\n.. versionadded:: 3.30\n\n' + '* ``AreaSquareMeters``: ' + Qgis.AreaUnit.SquareMeters.__doc__ + '\n' + '* ``AreaSquareKilometers``: ' + Qgis.AreaUnit.SquareKilometers.__doc__ + '\n' + '* ``AreaSquareFeet``: ' + Qgis.AreaUnit.SquareFeet.__doc__ + '\n' + '* ``AreaSquareYards``: ' + Qgis.AreaUnit.SquareYards.__doc__ + '\n' + '* ``AreaSquareMiles``: ' + Qgis.AreaUnit.SquareMiles.__doc__ + '\n' + '* ``AreaHectares``: ' + Qgis.AreaUnit.Hectares.__doc__ + '\n' + '* ``AreaAcres``: ' + Qgis.AreaUnit.Acres.__doc__ + '\n' + '* ``AreaSquareNauticalMiles``: ' + Qgis.AreaUnit.SquareNauticalMiles.__doc__ + '\n' + '* ``AreaSquareDegrees``: ' + Qgis.AreaUnit.SquareDegrees.__doc__ + '\n' + '* ``AreaSquareCentimeters``: ' + Qgis.AreaUnit.SquareCentimeters.__doc__ + '\n' + '* ``AreaSquareMillimeters``: ' + Qgis.AreaUnit.SquareMillimeters.__doc__ + '\n' + '* ``SquareInches``: ' + Qgis.AreaUnit.SquareInches.__doc__ + '\n' + '* ``AreaUnknownUnit``: ' + Qgis.AreaUnit.Unknown.__doc__
# --
Qgis.AreaUnit.baseClass = Qgis
QgsUnitTypes.VolumeUnit = Qgis.VolumeUnit

View File

@ -1816,6 +1816,7 @@ The development version
Degrees,
Centimeters,
Millimeters,
Inches,
Unknown,
};
@ -1839,6 +1840,7 @@ The development version
SquareDegrees,
SquareCentimeters,
SquareMillimeters,
SquareInches,
Unknown,
};

21
q Normal file
View File

@ -0,0 +1,21 @@
--- python/core/auto_generated/providers/qgsprovidermetadata.sip.in 2023-03-31 12:46:07.392212852 +1000
+++ python/core/auto_generated/providers/qgsprovidermetadata.sip.in.c4aab9a2c1257d44136dd689911d88fb01647b99.prepare 2023-03-31 12:48:47.815670333 +1000
@@ -275,7 +275,7 @@
.. versionadded:: 3.10
%End
- virtual QString filters( FilterType type );
+ virtual QString filters( Qgis::FileFilterType type );
%Docstring
Builds the list of file filter strings (supported formats)
--- python/core/auto_generated/qgis.sip.in 2023-03-31 12:46:07.497213806 +1000
+++ python/core/auto_generated/qgis.sip.in.c4aab9a2c1257d44136dd689911d88fb01647b99.prepare 2023-03-31 12:48:47.968671723 +1000
@@ -530,6 +530,7 @@
Mesh,
MeshDataset,
PointCloud,
+ VectorTile,
};
enum class SublayerQueryFlag

View File

@ -129,6 +129,7 @@ void Qgs3DMeasureDialog::repopulateComboBoxUnits()
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::NauticalMiles ), static_cast< int >( Qgis::DistanceUnit::NauticalMiles ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Centimeters ), static_cast< int >( Qgis::DistanceUnit::Centimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Millimeters ), static_cast< int >( Qgis::DistanceUnit::Millimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Inches ), static_cast< int >( Qgis::DistanceUnit::Inches ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Degrees ), static_cast< int >( Qgis::DistanceUnit::Degrees ) );
mUnitsCombo->addItem( tr( "map units" ), static_cast< int >( Qgis::DistanceUnit::Unknown ) );
}

View File

@ -313,6 +313,7 @@ void QgsDecorationScaleBar::render( const QgsMapSettings &mapSettings, QgsRender
else
scaleBarUnitLabel = tr( "m" );
break;
case Qgis::DistanceUnit::Feet:
if ( unitsPerSegment > 5280.0 ) //5280 feet to the mile
{
@ -343,18 +344,21 @@ void QgsDecorationScaleBar::render( const QgsMapSettings &mapSettings, QgsRender
scaleBarUnitLabel = tr( "feet" );
}
break;
case Qgis::DistanceUnit::Degrees:
if ( unitsPerSegment == 1.0 )
scaleBarUnitLabel = tr( "degree" );
else
scaleBarUnitLabel = tr( "degrees" );
break;
case Qgis::DistanceUnit::Kilometers:
case Qgis::DistanceUnit::NauticalMiles:
case Qgis::DistanceUnit::Yards:
case Qgis::DistanceUnit::Miles:
case Qgis::DistanceUnit::Centimeters:
case Qgis::DistanceUnit::Millimeters:
case Qgis::DistanceUnit::Inches:
case Qgis::DistanceUnit::Unknown:
scaleBarUnitLabel = QgsUnitTypes::toAbbreviatedString( scaleBarUnits );
break;

View File

@ -595,6 +595,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
mDistanceUnitsComboBox->addItem( tr( "Nautical Miles" ), static_cast< int >( Qgis::DistanceUnit::NauticalMiles ) );
mDistanceUnitsComboBox->addItem( tr( "Centimeters" ), static_cast< int >( Qgis::DistanceUnit::Centimeters ) );
mDistanceUnitsComboBox->addItem( tr( "Millimeters" ), static_cast< int >( Qgis::DistanceUnit::Millimeters ) );
mDistanceUnitsComboBox->addItem( tr( "Inches" ), static_cast< int >( Qgis::DistanceUnit::Inches ) );
mDistanceUnitsComboBox->addItem( tr( "Degrees" ), static_cast< int >( Qgis::DistanceUnit::Degrees ) );
mDistanceUnitsComboBox->addItem( tr( "Map Units" ), static_cast< int >( Qgis::DistanceUnit::Unknown ) );

View File

@ -644,6 +644,7 @@ void QgsMeasureDialog::repopulateComboBoxUnits( bool isArea )
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::AreaUnit::SquareCentimeters ), static_cast< int >( Qgis::AreaUnit::SquareCentimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::AreaUnit::SquareMillimeters ), static_cast< int >( Qgis::AreaUnit::SquareMillimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::AreaUnit::SquareNauticalMiles ), static_cast< int >( Qgis::AreaUnit::SquareNauticalMiles ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::AreaUnit::SquareInches ), static_cast< int >( Qgis::AreaUnit::SquareInches ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::AreaUnit::SquareDegrees ), static_cast< int >( Qgis::AreaUnit::SquareDegrees ) );
mUnitsCombo->addItem( tr( "map units" ), static_cast< int >( Qgis::AreaUnit::Unknown ) );
}
@ -657,6 +658,7 @@ void QgsMeasureDialog::repopulateComboBoxUnits( bool isArea )
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::NauticalMiles ), static_cast< int >( Qgis::DistanceUnit::NauticalMiles ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Centimeters ), static_cast< int >( Qgis::DistanceUnit::Centimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Millimeters ), static_cast< int >( Qgis::DistanceUnit::Millimeters ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Inches ), static_cast< int >( Qgis::DistanceUnit::Inches ) );
mUnitsCombo->addItem( QgsUnitTypes::toString( Qgis::DistanceUnit::Degrees ), static_cast< int >( Qgis::DistanceUnit::Degrees ) );
mUnitsCombo->addItem( tr( "map units" ), static_cast< int >( Qgis::DistanceUnit::Unknown ) );
}

View File

@ -156,6 +156,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
mDistanceUnitsCombo->addItem( tr( "Nautical Miles" ), static_cast< int >( Qgis::DistanceUnit::NauticalMiles ) );
mDistanceUnitsCombo->addItem( tr( "Centimeters" ), static_cast< int >( Qgis::DistanceUnit::Centimeters ) );
mDistanceUnitsCombo->addItem( tr( "Millimeters" ), static_cast< int >( Qgis::DistanceUnit::Millimeters ) );
mDistanceUnitsCombo->addItem( tr( "Inches" ), static_cast< int >( Qgis::DistanceUnit::Inches ) );
mDistanceUnitsCombo->addItem( tr( "Degrees" ), static_cast< int >( Qgis::DistanceUnit::Degrees ) );
mDistanceUnitsCombo->addItem( tr( "Map Units" ), static_cast< int >( Qgis::DistanceUnit::Unknown ) );
@ -169,6 +170,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
mAreaUnitsCombo->addItem( tr( "Square Nautical Miles" ), static_cast< int >( Qgis::AreaUnit::SquareNauticalMiles ) );
mAreaUnitsCombo->addItem( tr( "Square Centimeters" ), static_cast< int >( Qgis::AreaUnit::SquareCentimeters ) );
mAreaUnitsCombo->addItem( tr( "Square Millimeters" ), static_cast< int >( Qgis::AreaUnit::SquareMillimeters ) );
mAreaUnitsCombo->addItem( tr( "Square Inches" ), static_cast< int >( Qgis::AreaUnit::SquareInches ) );
mAreaUnitsCombo->addItem( tr( "Square Degrees" ), static_cast< int >( Qgis::AreaUnit::SquareDegrees ) );
mAreaUnitsCombo->addItem( tr( "Map Units" ), static_cast< int >( Qgis::AreaUnit::Unknown ) );

View File

@ -3155,6 +3155,7 @@ class CORE_EXPORT Qgis
Degrees SIP_MONKEYPATCH_COMPAT_NAME( DistanceDegrees ), //!< Degrees, for planar geographic CRS distance measurements
Centimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceCentimeters ), //!< Centimeters
Millimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceMillimeters ), //!< Millimeters
Inches, //!< Inches (since QGIS 3.32)
Unknown SIP_MONKEYPATCH_COMPAT_NAME( DistanceUnknownUnit ), //!< Unknown distance unit
};
Q_ENUM( DistanceUnit )
@ -3194,6 +3195,7 @@ class CORE_EXPORT Qgis
SquareDegrees SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareDegrees ), //!< Square degrees, for planar geographic CRS area measurements
SquareCentimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareCentimeters ), //!< Square centimeters
SquareMillimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMillimeters ), //!< Square millimeters
SquareInches, //!< Square inches (since QGIS 3.32)
Unknown SIP_MONKEYPATCH_COMPAT_NAME( AreaUnknownUnit ), //!< Unknown areal unit
};
Q_ENUM( AreaUnit )

View File

@ -608,6 +608,7 @@ double QgsRenderContext::convertMetersToMapUnits( double meters ) const
case Qgis::DistanceUnit::Miles:
case Qgis::DistanceUnit::Centimeters:
case Qgis::DistanceUnit::Millimeters:
case Qgis::DistanceUnit::Inches:
case Qgis::DistanceUnit::Unknown:
return ( meters * QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit::Meters, mDistanceArea.sourceCrs().mapUnits() ) );
}

View File

@ -82,6 +82,7 @@ Qgis::DistanceUnitType QgsUnitTypes::unitType( Qgis::DistanceUnit unit )
case Qgis::DistanceUnit::Kilometers:
case Qgis::DistanceUnit::Centimeters:
case Qgis::DistanceUnit::Millimeters:
case Qgis::DistanceUnit::Inches:
return Qgis::DistanceUnitType::Standard;
case Qgis::DistanceUnit::Degrees:
@ -107,6 +108,7 @@ Qgis::DistanceUnitType QgsUnitTypes::unitType( Qgis::AreaUnit unit )
case Qgis::AreaUnit::SquareNauticalMiles:
case Qgis::AreaUnit::SquareCentimeters:
case Qgis::AreaUnit::SquareMillimeters:
case Qgis::AreaUnit::SquareInches:
return Qgis::DistanceUnitType::Standard;
case Qgis::AreaUnit::SquareDegrees:
@ -152,6 +154,9 @@ QString QgsUnitTypes::encodeUnit( Qgis::DistanceUnit unit )
case Qgis::DistanceUnit::Millimeters:
return QStringLiteral( "mm" );
case Qgis::DistanceUnit::Inches:
return QStringLiteral( "in" );
}
return QString();
}
@ -187,6 +192,8 @@ Qgis::DistanceUnit QgsUnitTypes::decodeDistanceUnit( const QString &string, bool
return Qgis::DistanceUnit::Centimeters;
if ( normalized == encodeUnit( Qgis::DistanceUnit::Millimeters ) )
return Qgis::DistanceUnit::Millimeters;
if ( normalized == encodeUnit( Qgis::DistanceUnit::Inches ) )
return Qgis::DistanceUnit::Inches;
if ( normalized == encodeUnit( Qgis::DistanceUnit::Unknown ) )
return Qgis::DistanceUnit::Unknown;
@ -224,6 +231,9 @@ QString QgsUnitTypes::toString( Qgis::DistanceUnit unit )
case Qgis::DistanceUnit::Millimeters:
return QObject::tr( "millimeters", "distance" );
case Qgis::DistanceUnit::Inches:
return QObject::tr( "inches", "distance" );
case Qgis::DistanceUnit::Unknown:
return QObject::tr( "<unknown>", "distance" );
@ -294,6 +304,9 @@ QString QgsUnitTypes::toAbbreviatedString( Qgis::DistanceUnit unit )
case Qgis::DistanceUnit::Millimeters:
return QObject::tr( "mm", "distance" );
case Qgis::DistanceUnit::Inches:
return QObject::tr( "in", "distance" );
case Qgis::DistanceUnit::Unknown:
return QString();
@ -334,6 +347,8 @@ Qgis::DistanceUnit QgsUnitTypes::stringToDistanceUnit( const QString &string, bo
return Qgis::DistanceUnit::Millimeters;
if ( normalized == toString( Qgis::DistanceUnit::NauticalMiles ) )
return Qgis::DistanceUnit::NauticalMiles;
if ( normalized == toString( Qgis::DistanceUnit::Inches ) )
return Qgis::DistanceUnit::Inches;
if ( normalized == toString( Qgis::DistanceUnit::Unknown ) )
return Qgis::DistanceUnit::Unknown;
@ -357,6 +372,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
#define KILOMETERS_TO_METER 1000.0
#define CENTIMETERS_TO_METER 0.01
#define MILLIMETERS_TO_METER 0.001
#define INCHES_TO_METER 0.0254
#define FEET_TO_INCHES 12
#define YARDS_TO_METER 0.9144
#define YARDS_TO_FEET 3.0
#define MILES_TO_METER 1609.344
@ -376,6 +393,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return 1.0 / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Centimeters:
return 1.0 / CENTIMETERS_TO_METER;
case Qgis::DistanceUnit::Inches:
return 1.0 / INCHES_TO_METER;
case Qgis::DistanceUnit::Feet:
return 1.0 / FEET_TO_METER;
case Qgis::DistanceUnit::Yards:
@ -404,6 +423,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return KILOMETERS_TO_METER / CENTIMETERS_TO_METER;
case Qgis::DistanceUnit::Millimeters:
return KILOMETERS_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Inches:
return KILOMETERS_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Feet:
return KILOMETERS_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Yards:
@ -432,6 +453,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return FEET_TO_METER / CENTIMETERS_TO_METER;
case Qgis::DistanceUnit::Millimeters:
return FEET_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Inches:
return FEET_TO_INCHES;
case Qgis::DistanceUnit::Feet:
return 1.0;
case Qgis::DistanceUnit::Yards:
@ -462,6 +485,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return YARDS_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Feet:
return YARDS_TO_FEET;
case Qgis::DistanceUnit::Inches:
return YARDS_TO_FEET * FEET_TO_INCHES;
case Qgis::DistanceUnit::Yards:
return 1.0;
case Qgis::DistanceUnit::Miles:
@ -490,6 +515,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return MILES_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Feet:
return MILES_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Inches:
return MILES_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Yards:
return MILES_TO_METER / YARDS_TO_METER;
case Qgis::DistanceUnit::Miles:
@ -518,6 +545,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return DEGREE_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Feet:
return DEGREE_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Inches:
return DEGREE_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Yards:
return DEGREE_TO_METER / YARDS_TO_METER;
case Qgis::DistanceUnit::Miles:
@ -546,6 +575,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return NMILE_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Feet:
return NMILE_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Inches:
return NMILE_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Yards:
return NMILE_TO_METER / YARDS_TO_METER;
case Qgis::DistanceUnit::Miles:
@ -576,6 +607,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return CENTIMETERS_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Yards:
return CENTIMETERS_TO_METER / YARDS_TO_METER;
case Qgis::DistanceUnit::Inches:
return CENTIMETERS_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Miles:
return CENTIMETERS_TO_METER / MILES_TO_METER;
case Qgis::DistanceUnit::Degrees:
@ -604,6 +637,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
return MILLIMETERS_TO_METER / FEET_TO_METER;
case Qgis::DistanceUnit::Yards:
return MILLIMETERS_TO_METER / YARDS_TO_METER;
case Qgis::DistanceUnit::Inches:
return MILLIMETERS_TO_METER / INCHES_TO_METER;
case Qgis::DistanceUnit::Miles:
return MILLIMETERS_TO_METER / MILES_TO_METER;
case Qgis::DistanceUnit::Degrees:
@ -616,6 +651,37 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit fromUnit, Qgis::Di
break;
}
case Qgis::DistanceUnit::Inches:
{
switch ( toUnit )
{
case Qgis::DistanceUnit::Meters:
return INCHES_TO_METER;
case Qgis::DistanceUnit::Kilometers:
return INCHES_TO_METER / KILOMETERS_TO_METER;
case Qgis::DistanceUnit::Centimeters:
return INCHES_TO_METER / CENTIMETERS_TO_METER;
case Qgis::DistanceUnit::Millimeters:
return INCHES_TO_METER / MILLIMETERS_TO_METER;
case Qgis::DistanceUnit::Feet:
return 1.0 / FEET_TO_INCHES;
case Qgis::DistanceUnit::Inches:
return 1;
case Qgis::DistanceUnit::Yards:
return 1.0 / ( YARDS_TO_FEET * FEET_TO_INCHES );
case Qgis::DistanceUnit::Miles:
return INCHES_TO_METER / MILES_TO_METER;
case Qgis::DistanceUnit::Degrees:
return INCHES_TO_METER / DEGREE_TO_METER;
case Qgis::DistanceUnit::NauticalMiles:
return INCHES_TO_METER / NMILE_TO_METER;
case Qgis::DistanceUnit::Unknown:
break;
}
break;
}
case Qgis::DistanceUnit::Unknown:
break;
}
@ -648,6 +714,8 @@ QString QgsUnitTypes::encodeUnit( Qgis::AreaUnit unit )
return QStringLiteral( "cm2" );
case Qgis::AreaUnit::SquareMillimeters:
return QStringLiteral( "mm2" );
case Qgis::AreaUnit::SquareInches:
return QStringLiteral( "in2" );
case Qgis::AreaUnit::Unknown:
return QStringLiteral( "<unknown>" );
}
@ -683,6 +751,8 @@ Qgis::AreaUnit QgsUnitTypes::decodeAreaUnit( const QString &string, bool *ok )
return Qgis::AreaUnit::SquareCentimeters;
if ( normalized == encodeUnit( Qgis::AreaUnit::SquareMillimeters ) )
return Qgis::AreaUnit::SquareMillimeters;
if ( normalized == encodeUnit( Qgis::AreaUnit::SquareInches ) )
return Qgis::AreaUnit::SquareInches;
if ( normalized == encodeUnit( Qgis::AreaUnit::Unknown ) )
return Qgis::AreaUnit::Unknown;
@ -718,6 +788,8 @@ QString QgsUnitTypes::toString( Qgis::AreaUnit unit )
return QObject::tr( "square millimeters", "area" );
case Qgis::AreaUnit::SquareCentimeters:
return QObject::tr( "square centimeters", "area" );
case Qgis::AreaUnit::SquareInches:
return QObject::tr( "square inches", "area" );
case Qgis::AreaUnit::Unknown:
return QObject::tr( "<unknown>", "area" );
}
@ -750,6 +822,8 @@ QString QgsUnitTypes::toAbbreviatedString( Qgis::AreaUnit unit )
return QObject::tr( "cm²", "area" );
case Qgis::AreaUnit::SquareMillimeters:
return QObject::tr( "mm²", "area" );
case Qgis::AreaUnit::SquareInches:
return QObject::tr( "in²", "area" );
case Qgis::AreaUnit::Unknown:
return QString();
}
@ -785,6 +859,8 @@ Qgis::AreaUnit QgsUnitTypes::stringToAreaUnit( const QString &string, bool *ok )
return Qgis::AreaUnit::SquareMillimeters;
if ( normalized == toString( Qgis::AreaUnit::SquareCentimeters ) )
return Qgis::AreaUnit::SquareCentimeters;
if ( normalized == toString( Qgis::AreaUnit::SquareInches ) )
return Qgis::AreaUnit::SquareInches;
if ( normalized == toString( Qgis::AreaUnit::Unknown ) )
return Qgis::AreaUnit::Unknown;
if ( ok )
@ -799,6 +875,7 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
#define CM2_TO_M2 0.0001
#define MM2_TO_M2 0.000001
#define FT2_TO_M2 0.09290304
#define IN2_TO_M2 0.00064516
#define YD2_TO_M2 0.83612736
#define MI2_TO_M2 2589988.110336
#define HA_TO_M2 10000.0
@ -835,6 +912,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return 1.0 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return 1.0 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return 1.0 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -867,6 +946,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return KM2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return KM2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return KM2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -899,6 +980,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return FT2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return FT2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return FT2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -932,6 +1015,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return YD2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return YD2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return YD2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -964,6 +1049,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return MI2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return MI2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return MI2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -997,6 +1084,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return HA_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return HA_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return HA_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1030,6 +1119,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return AC_TO_FT2 * FT2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return AC_TO_FT2 * FT2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return AC_TO_FT2 * FT2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1063,6 +1154,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return NM2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return NM2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return NM2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1096,6 +1189,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return DEG2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return DEG2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return DEG2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1129,6 +1224,8 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return MM2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return 1.0;
case Qgis::AreaUnit::SquareInches:
return MM2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1161,6 +1258,42 @@ double QgsUnitTypes::fromUnitToUnitFactor( Qgis::AreaUnit fromUnit, Qgis::AreaUn
return 1.0;
case Qgis::AreaUnit::SquareMillimeters:
return CM2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return CM2_TO_M2 / IN2_TO_M2;
case Qgis::AreaUnit::Unknown:
break;
}
break;
}
case Qgis::AreaUnit::SquareInches:
{
switch ( toUnit )
{
case Qgis::AreaUnit::SquareMeters:
return IN2_TO_M2;
case Qgis::AreaUnit::SquareKilometers:
return IN2_TO_M2 / KM2_TO_M2;
case Qgis::AreaUnit::SquareFeet:
return IN2_TO_M2 / FT2_TO_M2;
case Qgis::AreaUnit::SquareYards:
return IN2_TO_M2 / YD2_TO_M2;
case Qgis::AreaUnit::SquareMiles:
return IN2_TO_M2 / MI2_TO_M2;
case Qgis::AreaUnit::Hectares:
return IN2_TO_M2 / HA_TO_M2;
case Qgis::AreaUnit::Acres:
return IN2_TO_M2 / AC_TO_FT2 / FT2_TO_M2;
case Qgis::AreaUnit::SquareNauticalMiles:
return IN2_TO_M2 / NM2_TO_M2;
case Qgis::AreaUnit::SquareDegrees:
return IN2_TO_M2 / DEG2_TO_M2;
case Qgis::AreaUnit::SquareCentimeters:
return IN2_TO_M2 / CM2_TO_M2;
case Qgis::AreaUnit::SquareMillimeters:
return IN2_TO_M2 / MM2_TO_M2;
case Qgis::AreaUnit::SquareInches:
return 1;
case Qgis::AreaUnit::Unknown:
break;
}
@ -1206,6 +1339,9 @@ Qgis::AreaUnit QgsUnitTypes::distanceToAreaUnit( Qgis::DistanceUnit distanceUnit
case Qgis::DistanceUnit::NauticalMiles:
return Qgis::AreaUnit::SquareNauticalMiles;
case Qgis::DistanceUnit::Inches:
return Qgis::AreaUnit::SquareInches;
}
return Qgis::AreaUnit::Unknown;
@ -1246,6 +1382,9 @@ Qgis::DistanceUnit QgsUnitTypes::areaToDistanceUnit( Qgis::AreaUnit areaUnit )
case Qgis::AreaUnit::SquareNauticalMiles:
return Qgis::DistanceUnit::NauticalMiles;
case Qgis::AreaUnit::SquareInches:
return Qgis::DistanceUnit::Inches;
}
return Qgis::DistanceUnit::Unknown;
@ -2152,6 +2291,9 @@ Qgis::VolumeUnit QgsUnitTypes::distanceToVolumeUnit( Qgis::DistanceUnit distance
case Qgis::DistanceUnit::NauticalMiles:
return Qgis::VolumeUnit::CubicFeet;
case Qgis::DistanceUnit::Inches:
return Qgis::VolumeUnit::CubicInch;
}
return Qgis::VolumeUnit::Unknown;
@ -2176,7 +2318,7 @@ Qgis::DistanceUnit QgsUnitTypes::volumeToDistanceUnit( Qgis::VolumeUnit volumeUn
case Qgis::VolumeUnit::GallonUS:
return Qgis::DistanceUnit::Feet;
case Qgis::VolumeUnit::CubicInch:
return Qgis::DistanceUnit::Feet;
return Qgis::DistanceUnit::Inches;
case Qgis::VolumeUnit::CubicCentimeter:
return Qgis::DistanceUnit::Centimeters;
case Qgis::VolumeUnit::CubicDegrees:
@ -2769,6 +2911,13 @@ QgsUnitTypes::AreaValue QgsUnitTypes::scaledArea( double area, Qgis::AreaUnit un
break;
}
case Qgis::AreaUnit::SquareInches:
{
result.value = qgsRound( area, decimals );
result.unit = Qgis::AreaUnit::SquareInches;
break;
}
case Qgis::AreaUnit::SquareFeet:
{
if ( keepBaseUnit )

View File

@ -1094,6 +1094,7 @@ void QgsLayoutMapGridWidget::onCrsChanged()
case Qgis::DistanceUnit::Miles:
case Qgis::DistanceUnit::Centimeters:
case Qgis::DistanceUnit::Millimeters:
case Qgis::DistanceUnit::Inches:
break;
case Qgis::DistanceUnit::Degrees:

View File

@ -114,6 +114,7 @@ QgsLayoutScaleBarWidget::QgsLayoutScaleBarWidget( QgsLayoutItemScaleBar *scaleBa
mUnitsComboBox->addItem( tr( "Nautical Miles" ), static_cast< int >( Qgis::DistanceUnit::NauticalMiles ) );
mUnitsComboBox->addItem( tr( "Centimeters" ), static_cast< int >( Qgis::DistanceUnit::Centimeters ) );
mUnitsComboBox->addItem( tr( "Millimeters" ), static_cast< int >( Qgis::DistanceUnit::Millimeters ) );
mUnitsComboBox->addItem( tr( "Inches" ), static_cast< int >( Qgis::DistanceUnit::Inches ) );
mLineStyleButton->setSymbolType( Qgis::SymbolType::Line );
connect( mLineStyleButton, &QgsSymbolButton::changed, this, &QgsLayoutScaleBarWidget::lineSymbolChanged );

View File

@ -963,6 +963,7 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
Qgis::DistanceUnit::Miles,
Qgis::DistanceUnit::NauticalMiles,
Qgis::DistanceUnit::Yards,
Qgis::DistanceUnit::Inches,
Qgis::DistanceUnit::Degrees,
} )
{
@ -991,6 +992,7 @@ QgsProcessingContextOptionsWidget::QgsProcessingContextOptionsWidget( QWidget *p
Qgis::AreaUnit::SquareMiles,
Qgis::AreaUnit::SquareNauticalMiles,
Qgis::AreaUnit::SquareYards,
Qgis::AreaUnit::SquareInches,
Qgis::AreaUnit::Acres,
Qgis::AreaUnit::SquareDegrees,
} )

View File

@ -239,6 +239,7 @@ void QgsExtentWidget::setOutputExtent( const QgsRectangle &r, const QgsCoordinat
case Qgis::DistanceUnit::Miles:
case Qgis::DistanceUnit::Centimeters:
case Qgis::DistanceUnit::Millimeters:
case Qgis::DistanceUnit::Inches:
decimals = 4;
break;
}

View File

@ -11,7 +11,10 @@ __copyright__ = 'Copyright 2016, The QGIS Project'
import qgis # NOQA
from qgis.PyQt.QtCore import QLocale
from qgis.core import QgsUnitTypes
from qgis.core import (
Qgis,
QgsUnitTypes
)
from qgis.testing import unittest
@ -57,7 +60,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceCentimeters: QgsUnitTypes.Standard,
QgsUnitTypes.DistanceMillimeters: QgsUnitTypes.Standard,
QgsUnitTypes.DistanceUnknownUnit: QgsUnitTypes.UnknownType,
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.Standard
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.Standard,
Qgis.DistanceUnit.Inches: QgsUnitTypes.Standard
}
for t in list(expected.keys()):
@ -74,7 +78,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceCentimeters,
QgsUnitTypes.DistanceMillimeters,
QgsUnitTypes.DistanceUnknownUnit,
QgsUnitTypes.DistanceNauticalMiles]
QgsUnitTypes.DistanceNauticalMiles,
Qgis.DistanceUnit.Inches]
for u in units:
res, ok = QgsUnitTypes.decodeDistanceUnit(QgsUnitTypes.encodeUnit(u))
@ -102,7 +107,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceCentimeters,
QgsUnitTypes.DistanceMillimeters,
QgsUnitTypes.DistanceUnknownUnit,
QgsUnitTypes.DistanceNauticalMiles]
QgsUnitTypes.DistanceNauticalMiles,
Qgis.DistanceUnit.Inches]
for u in units:
res, ok = QgsUnitTypes.stringToDistanceUnit(QgsUnitTypes.toString(u))
@ -133,6 +139,7 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: QgsUnitTypes.Geographic,
QgsUnitTypes.AreaSquareCentimeters: QgsUnitTypes.Standard,
QgsUnitTypes.AreaSquareMillimeters: QgsUnitTypes.Standard,
Qgis.AreaUnit.SquareInches: QgsUnitTypes.Standard,
QgsUnitTypes.AreaUnknownUnit: QgsUnitTypes.UnknownType,
}
@ -152,6 +159,7 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees,
QgsUnitTypes.AreaSquareCentimeters,
QgsUnitTypes.AreaSquareMillimeters,
Qgis.AreaUnit.SquareInches,
QgsUnitTypes.AreaUnknownUnit]
for u in units:
@ -182,6 +190,7 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees,
QgsUnitTypes.AreaSquareCentimeters,
QgsUnitTypes.AreaSquareMillimeters,
Qgis.AreaUnit.SquareInches,
QgsUnitTypes.AreaUnknownUnit]
for u in units:
@ -399,7 +408,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.00000898315,
QgsUnitTypes.DistanceNauticalMiles: 0.000539957,
QgsUnitTypes.DistanceMillimeters: 1000.0,
QgsUnitTypes.DistanceCentimeters: 100.0
QgsUnitTypes.DistanceCentimeters: 100.0,
Qgis.DistanceUnit.Inches: 39.37007874015748
},
QgsUnitTypes.DistanceKilometers: {
QgsUnitTypes.DistanceMeters: 1000.0,
@ -410,7 +420,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.0089832,
QgsUnitTypes.DistanceNauticalMiles: 0.53995682073432482717,
QgsUnitTypes.DistanceMillimeters: 1000000.0,
QgsUnitTypes.DistanceCentimeters: 100000.0
QgsUnitTypes.DistanceCentimeters: 100000.0,
Qgis.DistanceUnit.Inches: 39370.078740157485
},
QgsUnitTypes.DistanceFeet: {
QgsUnitTypes.DistanceMeters: 0.3048,
@ -421,7 +432,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 2.73806498599629E-06,
QgsUnitTypes.DistanceNauticalMiles: 0.000164579,
QgsUnitTypes.DistanceMillimeters: 304.8,
QgsUnitTypes.DistanceCentimeters: 30.48
QgsUnitTypes.DistanceCentimeters: 30.48,
Qgis.DistanceUnit.Inches: 12
},
QgsUnitTypes.DistanceYards: {
QgsUnitTypes.DistanceMeters: 0.9144,
@ -432,7 +444,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.0000082,
QgsUnitTypes.DistanceNauticalMiles: 0.0004937366590756,
QgsUnitTypes.DistanceMillimeters: 914.4,
QgsUnitTypes.DistanceCentimeters: 91.44
QgsUnitTypes.DistanceCentimeters: 91.44,
Qgis.DistanceUnit.Inches: 36
},
QgsUnitTypes.DistanceDegrees: {
QgsUnitTypes.DistanceMeters: 111319.49079327358,
@ -443,7 +456,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 1.0,
QgsUnitTypes.DistanceNauticalMiles: 60.1077164,
QgsUnitTypes.DistanceMillimeters: 111319490.79327358,
QgsUnitTypes.DistanceCentimeters: 11131949.079327358
QgsUnitTypes.DistanceCentimeters: 11131949.079327358,
Qgis.DistanceUnit.Inches: 4382657.117845417
},
QgsUnitTypes.DistanceMiles: {
QgsUnitTypes.DistanceMeters: 1609.3440000,
@ -454,7 +468,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.0144570,
QgsUnitTypes.DistanceNauticalMiles: 0.8689762,
QgsUnitTypes.DistanceMillimeters: 1609344.0,
QgsUnitTypes.DistanceCentimeters: 160934.4
QgsUnitTypes.DistanceCentimeters: 160934.4,
Qgis.DistanceUnit.Inches: 63360
},
QgsUnitTypes.DistanceNauticalMiles: {
QgsUnitTypes.DistanceMeters: 1852.0,
@ -465,7 +480,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.0166367990650,
QgsUnitTypes.DistanceNauticalMiles: 1.0,
QgsUnitTypes.DistanceMillimeters: 1852000.0,
QgsUnitTypes.DistanceCentimeters: 185200.0
QgsUnitTypes.DistanceCentimeters: 185200.0,
Qgis.DistanceUnit.Inches: 72913.38582677166
},
QgsUnitTypes.DistanceMillimeters: {
QgsUnitTypes.DistanceMeters: 0.001,
@ -476,7 +492,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.00000000898315,
QgsUnitTypes.DistanceNauticalMiles: 0.000000539957,
QgsUnitTypes.DistanceMillimeters: 1.0,
QgsUnitTypes.DistanceCentimeters: 0.1
QgsUnitTypes.DistanceCentimeters: 0.1,
Qgis.DistanceUnit.Inches: 0.039370086377953
},
QgsUnitTypes.DistanceCentimeters: {
QgsUnitTypes.DistanceMeters: 0.01,
@ -487,7 +504,20 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 0.0000000898315,
QgsUnitTypes.DistanceNauticalMiles: 0.00000539957,
QgsUnitTypes.DistanceMillimeters: 10.0,
QgsUnitTypes.DistanceCentimeters: 1.0
QgsUnitTypes.DistanceCentimeters: 1.0,
Qgis.DistanceUnit.Inches: 0.3937007874015748
},
Qgis.DistanceUnit.Inches: {
QgsUnitTypes.DistanceMeters: 0.0254,
QgsUnitTypes.DistanceKilometers: 2.54e-5,
QgsUnitTypes.DistanceFeet: 0.0833333,
QgsUnitTypes.DistanceYards: 0.0277777666667,
QgsUnitTypes.DistanceMiles: 1.578282196971590999e-5,
QgsUnitTypes.DistanceDegrees: 2.2817208216635843e-07,
QgsUnitTypes.DistanceNauticalMiles: 1.371489732183071538e-5,
QgsUnitTypes.DistanceMillimeters: 25.4,
QgsUnitTypes.DistanceCentimeters: 2.54,
Qgis.DistanceUnit.Inches: 1.0
},
QgsUnitTypes.DistanceUnknownUnit: {
QgsUnitTypes.DistanceMeters: 1.0,
@ -498,7 +528,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceDegrees: 1.0,
QgsUnitTypes.DistanceNauticalMiles: 1.0,
QgsUnitTypes.DistanceMillimeters: 1.0,
QgsUnitTypes.DistanceCentimeters: 1.0
QgsUnitTypes.DistanceCentimeters: 1.0,
Qgis.DistanceUnit.Inches: 1.0
},
}
@ -533,6 +564,7 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000000000080697,
QgsUnitTypes.AreaSquareMillimeters: 1e6,
QgsUnitTypes.AreaSquareCentimeters: 1e4,
Qgis.AreaUnit.SquareInches: 1550.0031000062002,
QgsUnitTypes.AreaUnknownUnit: 1.0
},
QgsUnitTypes.AreaSquareKilometers: {
@ -547,7 +579,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000080697034968,
QgsUnitTypes.AreaSquareMillimeters: 1e12,
QgsUnitTypes.AreaSquareCentimeters: 1e10,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 1550003100.0062,
},
QgsUnitTypes.AreaSquareFeet: {
QgsUnitTypes.AreaSquareMeters: 0.092903,
@ -561,7 +594,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000000000007497,
QgsUnitTypes.AreaSquareMillimeters: 92903.04,
QgsUnitTypes.AreaSquareCentimeters: 929.0304,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 144.0,
},
QgsUnitTypes.AreaSquareYards: {
QgsUnitTypes.AreaSquareMeters: 0.836127360,
@ -575,7 +609,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000000000067473,
QgsUnitTypes.AreaSquareMillimeters: 836127.360,
QgsUnitTypes.AreaSquareCentimeters: 8361.27360,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 1296.0,
},
QgsUnitTypes.AreaSquareMiles: {
QgsUnitTypes.AreaSquareMeters: 2589988.110336,
@ -589,7 +624,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000209004361107,
QgsUnitTypes.AreaSquareMillimeters: 2589988110336.0,
QgsUnitTypes.AreaSquareCentimeters: 25899881103.36,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 4014489600.0000005,
},
QgsUnitTypes.AreaHectares: {
QgsUnitTypes.AreaSquareMeters: 10000,
@ -603,7 +639,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000000806970350,
QgsUnitTypes.AreaSquareMillimeters: 10000000000.0,
QgsUnitTypes.AreaSquareCentimeters: 100000000.0,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 15500031.000062,
},
QgsUnitTypes.AreaAcres: {
QgsUnitTypes.AreaSquareMeters: 4046.8564224,
@ -617,7 +654,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000000326569314,
QgsUnitTypes.AreaSquareMillimeters: 4046856422.4000005,
QgsUnitTypes.AreaSquareCentimeters: 40468564.224,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 6272640.0,
},
QgsUnitTypes.AreaSquareNauticalMiles: {
QgsUnitTypes.AreaSquareMeters: 3429904,
@ -631,7 +669,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 0.000276783083025,
QgsUnitTypes.AreaSquareMillimeters: 3429904000000.0,
QgsUnitTypes.AreaSquareCentimeters: 34299040000.0,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 5316361832.723665,
},
QgsUnitTypes.AreaSquareDegrees: {
QgsUnitTypes.AreaSquareMeters: 12392029030.5,
@ -645,7 +684,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 1.0,
QgsUnitTypes.AreaSquareMillimeters: 12392029030500000.0,
QgsUnitTypes.AreaSquareCentimeters: 123920290305000.0,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 19207683412641.824
},
QgsUnitTypes.AreaSquareMillimeters: {
QgsUnitTypes.AreaSquareMeters: 1e-6,
@ -659,7 +699,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 8.069703496810251e-17,
QgsUnitTypes.AreaSquareMillimeters: 1.0,
QgsUnitTypes.AreaSquareCentimeters: 0.01,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 0.0015500031000062
},
QgsUnitTypes.AreaSquareCentimeters: {
QgsUnitTypes.AreaSquareMeters: 1e-4,
@ -673,7 +714,23 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareDegrees: 8.069703496810251e-15,
QgsUnitTypes.AreaSquareMillimeters: 100,
QgsUnitTypes.AreaSquareCentimeters: 1.0,
QgsUnitTypes.AreaUnknownUnit: 1.0
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 0.15500031000062
},
Qgis.AreaUnit.SquareInches: {
QgsUnitTypes.AreaSquareMeters: 0.00064516,
QgsUnitTypes.AreaSquareKilometers: 6.4516e-10,
QgsUnitTypes.AreaSquareFeet: 0.00694444,
QgsUnitTypes.AreaSquareYards: 0.0007716044444444,
QgsUnitTypes.AreaSquareMiles: 2.490975091827221046e-10,
QgsUnitTypes.AreaHectares: 6.451595870975627624e-8,
QgsUnitTypes.AreaAcres: 1.594224058769421271e-7,
QgsUnitTypes.AreaSquareNauticalMiles: 2.490975091827221046e-10,
QgsUnitTypes.AreaSquareDegrees: 8.069703496810251e-15,
QgsUnitTypes.AreaSquareMillimeters: 645.16,
QgsUnitTypes.AreaSquareCentimeters: 6.451599999999999,
QgsUnitTypes.AreaUnknownUnit: 1.0,
Qgis.AreaUnit.SquareInches: 1
}
}
@ -703,7 +760,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceCentimeters: QgsUnitTypes.AreaSquareCentimeters,
QgsUnitTypes.DistanceMillimeters: QgsUnitTypes.AreaSquareMillimeters,
QgsUnitTypes.DistanceUnknownUnit: QgsUnitTypes.AreaUnknownUnit,
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.AreaSquareNauticalMiles
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.AreaSquareNauticalMiles,
Qgis.DistanceUnit.Inches: Qgis.AreaUnit.SquareInches
}
for t in list(expected.keys()):
@ -722,7 +780,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.AreaSquareCentimeters: QgsUnitTypes.DistanceCentimeters,
QgsUnitTypes.AreaSquareMillimeters: QgsUnitTypes.DistanceMillimeters,
QgsUnitTypes.AreaUnknownUnit: QgsUnitTypes.DistanceUnknownUnit,
QgsUnitTypes.AreaSquareNauticalMiles: QgsUnitTypes.DistanceNauticalMiles
QgsUnitTypes.AreaSquareNauticalMiles: QgsUnitTypes.DistanceNauticalMiles,
Qgis.AreaUnit.SquareInches: Qgis.DistanceUnit.Inches
}
for t in list(expected.keys()):
@ -1055,7 +1114,8 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.DistanceCentimeters: QgsUnitTypes.VolumeCubicCentimeter,
QgsUnitTypes.DistanceMillimeters: QgsUnitTypes.VolumeCubicCentimeter,
QgsUnitTypes.DistanceUnknownUnit: QgsUnitTypes.VolumeUnknownUnit,
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.VolumeCubicFeet
QgsUnitTypes.DistanceNauticalMiles: QgsUnitTypes.VolumeCubicFeet,
Qgis.DistanceUnit.Inches: QgsUnitTypes.VolumeCubicInch
}
for t in list(expected.keys()):
@ -1070,7 +1130,7 @@ class TestQgsUnitTypes(unittest.TestCase):
QgsUnitTypes.VolumeCubicDecimeter: QgsUnitTypes.DistanceCentimeters,
QgsUnitTypes.VolumeLiters: QgsUnitTypes.DistanceMeters,
QgsUnitTypes.VolumeGallonUS: QgsUnitTypes.DistanceFeet,
QgsUnitTypes.VolumeCubicInch: QgsUnitTypes.DistanceFeet,
QgsUnitTypes.VolumeCubicInch: Qgis.DistanceUnit.Inches,
QgsUnitTypes.VolumeCubicCentimeter: QgsUnitTypes.DistanceCentimeters,
QgsUnitTypes.VolumeCubicDegrees: QgsUnitTypes.DistanceDegrees
}
@ -1195,6 +1255,9 @@ class TestQgsUnitTypes(unittest.TestCase):
self.assertEqual(QgsUnitTypes.formatDistance(1, 2, QgsUnitTypes.DistanceDegrees, True), '1.00 deg')
self.assertEqual(QgsUnitTypes.formatDistance(1, 2, QgsUnitTypes.DistanceCentimeters, True), '1.00 cm')
self.assertEqual(QgsUnitTypes.formatDistance(1, 2, QgsUnitTypes.DistanceMillimeters, True), '1.00 mm')
self.assertEqual(
QgsUnitTypes.formatDistance(1, 2, Qgis.DistanceUnit.Inches,
True), '1.00 in')
self.assertEqual(QgsUnitTypes.formatDistance(1, 2, QgsUnitTypes.DistanceUnknownUnit, True), '1.00')
# don't keep base unit
@ -1214,6 +1277,9 @@ class TestQgsUnitTypes(unittest.TestCase):
self.assertEqual(QgsUnitTypes.formatDistance(0.001, 4, QgsUnitTypes.DistanceDegrees, False), '0.0010 deg')
self.assertEqual(QgsUnitTypes.formatDistance(100, 2, QgsUnitTypes.DistanceCentimeters, False), '100.00 cm')
self.assertEqual(QgsUnitTypes.formatDistance(1000, 2, QgsUnitTypes.DistanceMillimeters, False), '1000.00 mm')
self.assertEqual(QgsUnitTypes.formatDistance(1000, 2,
Qgis.DistanceUnit.Inches,
False), '1000.00 in')
self.assertEqual(QgsUnitTypes.formatDistance(1, 2, QgsUnitTypes.DistanceUnknownUnit, False), '1.00')
# small values should not be displayed as zeroes, instead fallback to scientific notation
@ -1240,6 +1306,9 @@ class TestQgsUnitTypes(unittest.TestCase):
self.assertEqual(QgsUnitTypes.formatArea(1, 2, QgsUnitTypes.AreaSquareDegrees, True), '1.00 deg²')
self.assertEqual(QgsUnitTypes.formatArea(1, 2, QgsUnitTypes.AreaSquareCentimeters, True), '1.00 cm²')
self.assertEqual(QgsUnitTypes.formatArea(1, 2, QgsUnitTypes.AreaSquareMillimeters, True), '1.00 mm²')
self.assertEqual(
QgsUnitTypes.formatArea(1, 2, Qgis.AreaUnit.SquareInches,
True), '1.00 in²')
self.assertEqual(QgsUnitTypes.formatArea(1, 2, QgsUnitTypes.AreaUnknownUnit, True), '1.00')
# don't keep base unit
@ -1265,6 +1334,9 @@ class TestQgsUnitTypes(unittest.TestCase):
self.assertEqual(QgsUnitTypes.formatArea(1000, 4, QgsUnitTypes.AreaSquareMillimeters, False), '0.0010 m²')
self.assertEqual(QgsUnitTypes.formatArea(100, 3, QgsUnitTypes.AreaSquareCentimeters, False), '0.010 m²')
self.assertEqual(QgsUnitTypes.formatArea(10, 2, QgsUnitTypes.AreaUnknownUnit, False), '10.00')
self.assertEqual(
QgsUnitTypes.formatArea(1000, 2, Qgis.AreaUnit.SquareInches,
False), '1000.00 in²')
# small values should not be displayed as zeroes, instead fallback to scientific notation
self.assertEqual(QgsUnitTypes.formatArea(0.00168478, 4, QgsUnitTypes.AreaSquareMeters, False), '0.0017 m²')