Much faster zoom to selection on large PostGIS layers

This commit is contained in:
Nyall Dawson 2015-11-05 21:22:43 +11:00
parent 33fe0e2d49
commit 6772ffb97d

View File

@ -619,19 +619,18 @@ QgsRectangle QgsVectorLayer::boundingBoxOfSelected()
QgsFeature fet;
if ( mDataProvider->capabilities() & QgsVectorDataProvider::SelectAtId )
{
Q_FOREACH ( QgsFeatureId fid, mSelectedFeatureIds )
{
if ( getFeatures( QgsFeatureRequest()
.setFilterFid( fid )
.setSubsetOfAttributes( QgsAttributeList() ) )
.nextFeature( fet ) &&
fet.constGeometry() )
QgsFeatureIterator fit = getFeatures( QgsFeatureRequest()
.setFilterFids( mSelectedFeatureIds )
.setSubsetOfAttributes( QgsAttributeList() ) );
while ( fit.nextFeature( fet ) )
{
if ( !fet.constGeometry() || fet.constGeometry()->isEmpty() )
continue;
r = fet.constGeometry()->boundingBox();
retval.combineExtentWith( &r );
}
}
}
else
{
QgsFeatureIterator fit = getFeatures( QgsFeatureRequest()