@@ -370,7 +370,7 @@ bool QgsPostgresFeatureIterator::declareCursor( const QString& whereClause )
370
370
}
371
371
372
372
// query BBOX of geometries to redefine the geometries collapsed by ST_Simplify()
373
- if ( simplifyGeometry && !( P->mConnectionRO ->majorVersion () >= 2 && P->mConnectionRO ->minorVersion () >= 1 ) && QGis::flatType ( QGis::singleType ( P-> geometryType () ) ) == QGis::WKBPolygon )
373
+ if ( simplifyGeometry && !( P->mConnectionRO ->majorVersion () >= 2 && P->mConnectionRO ->minorVersion () >= 1 ) )
374
374
{
375
375
query += QString ( " ,%1(%5(%2)%3,'%4')" )
376
376
.arg ( P->mConnectionRO ->majorVersion () < 2 ? " asbinary" : " st_asbinary" )
@@ -605,7 +605,7 @@ bool QgsPostgresFeatureIterator::getFeature( QgsPostgresResult &queryResult, int
605
605
606
606
// fix collapsed geometries by ST_Simplify() using the BBOX fetched from the current query
607
607
const QgsSimplifyMethod& simplifyMethod = mRequest .simplifyMethod ();
608
- if ( mFetchGeometry && !simplifyMethod.forceLocalOptimization () && simplifyMethod.methodType () == QgsSimplifyMethod::OptimizeForRendering && QGis::flatType ( QGis::singleType ( P-> geometryType () ) ) == QGis::WKBPolygon )
608
+ if ( mFetchGeometry && !simplifyMethod.forceLocalOptimization () && simplifyMethod.methodType () == QgsSimplifyMethod::OptimizeForRendering )
609
609
{
610
610
QgsGeometry* geometry = feature.geometry ();
611
611
@@ -621,7 +621,21 @@ bool QgsPostgresFeatureIterator::getFeature( QgsPostgresResult &queryResult, int
621
621
622
622
QgsGeometry *envelope = new QgsGeometry ();
623
623
envelope->fromWkb ( featureGeom, returnedLength + 1 );
624
- feature.setGeometry ( envelope );
624
+
625
+ if ( QGis::flatType ( QGis::singleType ( P->geometryType () ) ) == QGis::WKBPolygon )
626
+ {
627
+ feature.setGeometry ( envelope );
628
+ }
629
+ else
630
+ {
631
+ QgsPolyline polyline;
632
+ polyline.append ( envelope->vertexAt ( 0 ) );
633
+ polyline.append ( envelope->vertexAt ( 2 ) );
634
+ delete envelope;
635
+
636
+ geometry = QgsGeometry::fromPolyline ( polyline );
637
+ feature.setGeometry ( geometry );
638
+ }
625
639
}
626
640
}
627
641
}
0 commit comments