Skip to content

Commit c09c96b

Browse files
committedNov 14, 2017
Raster renderer: fix so that raster in projected CRS is not rendered in geographic CRS if the extent exceeds -180,-90,180,90 (fixes #14229)
1 parent ec9e87d commit c09c96b

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed
 

‎src/core/raster/qgsrasterlayerrenderer.cpp

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,29 @@ QgsRasterLayerRenderer::QgsRasterLayerRenderer( QgsRasterLayer *layer, QgsRender
9191
if ( rendererContext.coordinateTransform().isValid() )
9292
{
9393
QgsDebugMsgLevel( "coordinateTransform set -> project extents.", 4 );
94-
try
94+
if ( rendererContext.extent().xMinimum() == -DBL_MAX &&
95+
rendererContext.extent().yMinimum() == -DBL_MAX &&
96+
rendererContext.extent().xMaximum() == DBL_MAX &&
97+
rendererContext.extent().yMaximum() == DBL_MAX )
9598
{
96-
myProjectedViewExtent = rendererContext.coordinateTransform().transformBoundingBox( rendererContext.extent() );
99+
// We get in this situation if the view CRS is geographical and the
100+
// extent goes beyond -180,-90,180,90. To avoid reprojection issues to the
101+
// layer CRS, then this dummy extent is returned by QgsMapRendererJob::reprojectToLayerExtent()
102+
// Don't try to reproject it now to view extent as this would return
103+
// a null rectangle.
104+
myProjectedViewExtent = rendererContext.extent();
97105
}
98-
catch ( QgsCsException &cs )
106+
else
99107
{
100-
QgsMessageLog::logMessage( QObject::tr( "Could not reproject view extent: %1" ).arg( cs.what() ), QObject::tr( "Raster" ) );
101-
myProjectedViewExtent.setMinimal();
108+
try
109+
{
110+
myProjectedViewExtent = rendererContext.coordinateTransform().transformBoundingBox( rendererContext.extent() );
111+
}
112+
catch ( QgsCsException &cs )
113+
{
114+
QgsMessageLog::logMessage( QObject::tr( "Could not reproject view extent: %1" ).arg( cs.what() ), QObject::tr( "Raster" ) );
115+
myProjectedViewExtent.setMinimal();
116+
}
102117
}
103118

104119
try

0 commit comments

Comments
 (0)
Please sign in to comment.