@@ -91,14 +91,29 @@ QgsRasterLayerRenderer::QgsRasterLayerRenderer( QgsRasterLayer *layer, QgsRender
91
91
if ( rendererContext.coordinateTransform ().isValid () )
92
92
{
93
93
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 )
95
98
{
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 ();
97
105
}
98
- catch ( QgsCsException &cs )
106
+ else
99
107
{
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
+ }
102
117
}
103
118
104
119
try
0 commit comments