@@ -761,11 +761,11 @@ QString QgsDistanceArea::textUnit( double value, int decimals, QGis::UnitType u,
761
761
{
762
762
if ( keepBaseUnit )
763
763
{
764
- unitLabel = QObject::tr ( " m2 " );
764
+ unitLabel = QObject::trUtf8 ( " m² " );
765
765
}
766
766
else if ( qAbs ( value ) > 1000000.0 )
767
767
{
768
- unitLabel = QObject::tr ( " km2 " );
768
+ unitLabel = QObject::trUtf8 ( " km² " );
769
769
value = value / 1000000.0 ;
770
770
}
771
771
else if ( qAbs ( value ) > 10000.0 )
@@ -775,7 +775,7 @@ QString QgsDistanceArea::textUnit( double value, int decimals, QGis::UnitType u,
775
775
}
776
776
else
777
777
{
778
- unitLabel = QObject::tr ( " m2 " );
778
+ unitLabel = QObject::trUtf8 ( " m² " );
779
779
}
780
780
}
781
781
else
@@ -808,14 +808,22 @@ QString QgsDistanceArea::textUnit( double value, int decimals, QGis::UnitType u,
808
808
case QGis::Feet:
809
809
if ( isArea )
810
810
{
811
- if ( keepBaseUnit || qAbs ( value ) <= ( 528.0 * 528.0 ) )
811
+ if ( keepBaseUnit || qAbs ( value ) <= 0.5 * 43560.0 )
812
812
{
813
+ // < 0.5 acre show sq ft
813
814
unitLabel = QObject::tr ( " sq ft" );
814
815
}
816
+ else if ( qAbs ( value ) <= 0.5 *5280.0 *5280.0 )
817
+ {
818
+ // < 0.5 sq mile show acre
819
+ unitLabel = QObject::tr ( " acres" );
820
+ value /= 43560.0 ;
821
+ }
815
822
else
816
823
{
824
+ // above 0.5 acre show sq mi
817
825
unitLabel = QObject::tr ( " sq mile" );
818
- value = value / ( 5280.0 * 5280.0 ) ;
826
+ value /= 5280.0 * 5280.0 ;
819
827
}
820
828
}
821
829
else
@@ -834,7 +842,7 @@ QString QgsDistanceArea::textUnit( double value, int decimals, QGis::UnitType u,
834
842
else
835
843
{
836
844
unitLabel = QObject::tr ( " mile" );
837
- value = value / 5280.0 ;
845
+ value /= 5280.0 ;
838
846
}
839
847
}
840
848
break ;
0 commit comments