@@ -52,14 +52,29 @@ QgsRasterLayerRenderer::QgsRasterLayerRenderer( QgsRasterLayer* layer, QgsRender
52
52
if ( rendererContext.coordinateTransform () )
53
53
{
54
54
QgsDebugMsgLevel ( " coordinateTransform set -> project extents." , 4 );
55
- try
55
+ if ( rendererContext.extent ().xMinimum () == -DBL_MAX &&
56
+ rendererContext.extent ().yMinimum () == -DBL_MAX &&
57
+ rendererContext.extent ().xMaximum () == DBL_MAX &&
58
+ rendererContext.extent ().yMaximum () == DBL_MAX )
56
59
{
57
- myProjectedViewExtent = rendererContext.coordinateTransform ()->transformBoundingBox ( rendererContext.extent () );
60
+ // We get in this situation if the view CRS is geographical and the
61
+ // extent goes beyond -180,-90,180,90. To avoid reprojection issues to the
62
+ // layer CRS, then this dummy extent is returned by QgsMapRendererJob::reprojectToLayerExtent()
63
+ // Don't try to reproject it now to view extent as this would return
64
+ // a null rectangle.
65
+ myProjectedViewExtent = rendererContext.extent ();
58
66
}
59
- catch ( QgsCsException &cs )
67
+ else
60
68
{
61
- QgsMessageLog::logMessage ( QObject::tr ( " Could not reproject view extent: %1" ).arg ( cs.what () ), QObject::tr ( " Raster" ) );
62
- myProjectedViewExtent.setMinimal ();
69
+ try
70
+ {
71
+ myProjectedViewExtent = rendererContext.coordinateTransform ()->transformBoundingBox ( rendererContext.extent () );
72
+ }
73
+ catch ( QgsCsException &cs )
74
+ {
75
+ QgsMessageLog::logMessage ( QObject::tr ( " Could not reproject view extent: %1" ).arg ( cs.what () ), QObject::tr ( " Raster" ) );
76
+ myProjectedViewExtent.setMinimal ();
77
+ }
63
78
}
64
79
65
80
try
0 commit comments