mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -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 "qgsmessagelog.h"
|
||||||
#include "qgspallabeling.h"
|
#include "qgspallabeling.h"
|
||||||
|
#include "qgsrectangle.h"
|
||||||
#include "qgsrenderer.h"
|
#include "qgsrenderer.h"
|
||||||
#include "qgsrendercontext.h"
|
#include "qgsrendercontext.h"
|
||||||
#include "qgssinglesymbolrenderer.h"
|
#include "qgssinglesymbolrenderer.h"
|
||||||
@ -354,8 +355,26 @@ bool QgsVectorLayerRenderer::renderInternal( QgsFeatureRenderer *renderer, int r
|
|||||||
if ( mDiagramProvider )
|
if ( mDiagramProvider )
|
||||||
mDiagramProvider->setClipFeatureGeometry( mLabelClipFeatureGeom );
|
mDiagramProvider->setClipFeatureGeometry( mLabelClipFeatureGeom );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
renderer->modifyRequestExtent( requestExtent, context );
|
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()
|
QgsFeatureRequest featureRequest = QgsFeatureRequest()
|
||||||
.setFilterRect( requestExtent )
|
.setFilterRect( requestExtent )
|
||||||
.setSubsetOfAttributes( mAttrNames, mFields )
|
.setSubsetOfAttributes( mAttrNames, mFields )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user