mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-06 00:07:29 -04:00
Modify feature request extent based on max extent buffer
This commit is contained in:
parent
d95ce12e8f
commit
e4c1598720
@ -17,6 +17,7 @@
|
||||
|
||||
#include "qgsmessagelog.h"
|
||||
#include "qgspallabeling.h"
|
||||
#include "qgsrectangle.h"
|
||||
#include "qgsrenderer.h"
|
||||
#include "qgsrendercontext.h"
|
||||
#include "qgssinglesymbolrenderer.h"
|
||||
@ -354,8 +355,26 @@ bool QgsVectorLayerRenderer::renderInternal( QgsFeatureRenderer *renderer, int r
|
||||
if ( mDiagramProvider )
|
||||
mDiagramProvider->setClipFeatureGeometry( mLabelClipFeatureGeom );
|
||||
}
|
||||
|
||||
|
||||
renderer->modifyRequestExtent( requestExtent, context );
|
||||
|
||||
double maximumExtentBuffer = renderer->maximumExtentBuffer( context );
|
||||
|
||||
if ( maximumExtentBuffer != 0 )
|
||||
{
|
||||
bool bufferDisappearsExtent = maximumExtentBuffer < 0 && ( requestExtent.width() + ( maximumExtentBuffer * 2 ) < 0 || requestExtent.height() + ( maximumExtentBuffer * 2 ) < 0 );
|
||||
|
||||
// nothing to draw
|
||||
if ( bufferDisappearsExtent )
|
||||
{
|
||||
renderer->stopRender( context );
|
||||
return true;
|
||||
}
|
||||
|
||||
requestExtent = requestExtent.buffered( maximumExtentBuffer );
|
||||
}
|
||||
|
||||
QgsFeatureRequest featureRequest = QgsFeatureRequest()
|
||||
.setFilterRect( requestExtent )
|
||||
.setSubsetOfAttributes( mAttrNames, mFields )
|
||||
|
Loading…
x
Reference in New Issue
Block a user