Exclude degenerated rings from polygon area calculation

(forward-port from 64b0b1)
This commit is contained in:
Marco Hugentobler 2017-01-05 09:14:18 +01:00 committed by Nyall Dawson
parent 17b51ab28f
commit e433639604

View File

@ -359,7 +359,7 @@ double QgsCurvePolygon::area() const
double totalArea = 0.0; double totalArea = 0.0;
if ( mExteriorRing->isClosed() ) if ( mExteriorRing->isRing() )
{ {
double area = 0.0; double area = 0.0;
mExteriorRing->sumUpArea( area ); mExteriorRing->sumUpArea( area );
@ -370,7 +370,7 @@ double QgsCurvePolygon::area() const
for ( ; ringIt != mInteriorRings.constEnd(); ++ringIt ) for ( ; ringIt != mInteriorRings.constEnd(); ++ringIt )
{ {
double area = 0.0; double area = 0.0;
if (( *ringIt )->isClosed() ) if (( *ringIt )->isRing() )
{ {
( *ringIt )->sumUpArea( area ); ( *ringIt )->sumUpArea( area );
totalArea -= qAbs( area ); totalArea -= qAbs( area );