Skip to content
Permalink
Browse files

#9686: fix simplification of no-closed polygons

  • Loading branch information
ahuarte47 authored and m-kuhn committed Mar 2, 2014
1 parent fc6cd54 commit 60e1a9b7219a935fddf47a64817e4b47617ffe44
Showing with 18 additions and 0 deletions.
  1. +18 −0 src/core/qgsmaptopixelgeometrysimplifier.cpp
@@ -207,6 +207,24 @@ bool QgsMapToPixelSimplifier::simplifyWkbGeometry( int simplifyFlags, QGis::WkbT
double* ptr = ( double* )targetWkb;
map2pixelTol *= map2pixelTol; //-> Use mappixelTol for 'LengthSquare' calculations.

// Check whether the LinearRing is really closed.

This comment has been minimized.

Copy link
@ahuarte47

ahuarte47 Mar 10, 2014

Author Contributor

Hi @m-kuhn, it is possible merge this code in current 2.2 branch ?

This comment has been minimized.

Copy link
@m-kuhn

This comment has been minimized.

Copy link
@ahuarte47

ahuarte47 Mar 11, 2014

Author Contributor

Thank you very much @m-kuhn !

if ( isaLinearRing )
{
double x1, y1, x2, y2;

unsigned char* startWkbX = sourceWkb;
unsigned char* startWkbY = startWkbX + sizeOfDoubleX;
unsigned char* finalWkbX = sourceWkb + ( numPoints - 1 ) * ( sizeOfDoubleX + sizeOfDoubleY );
unsigned char* finalWkbY = finalWkbX + sizeOfDoubleX;

memcpy( &x1, startWkbX, sizeof( double ) );
memcpy( &y1, startWkbY, sizeof( double ) );
memcpy( &x2, finalWkbX, sizeof( double ) );
memcpy( &y2, finalWkbY, sizeof( double ) );

isaLinearRing = ( x1 == x2 ) && ( y1 == y2 );
}

// Process each vertex...
for ( int i = 0, numPoints_i = ( isaLinearRing ? numPoints - 1 : numPoints ); i < numPoints_i; ++i )
{

0 comments on commit 60e1a9b

Please sign in to comment.
You can’t perform that action at this time.