Navigation Menu

Skip to content

Commit

Permalink
[gdal] Fix raster block output when block extent is outside of valid …
Browse files Browse the repository at this point in the history
…area

This was causing problems in 3D view when raster was used as DEM... terrain
tiles were generated also where they should not appear and contained random
heights that caused failures of camera center adjustment to terrain. In the areas
completely outside of raster's extent the block was being returned with some
values uninitialized (instead of having correctly set no-data values)

(cherry picked from commit afca644)
  • Loading branch information
wonder-sk authored and nyalldawson committed Nov 10, 2018
1 parent f260700 commit 267c80c
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/providers/gdal/qgsgdalprovider.cpp
Expand Up @@ -640,6 +640,13 @@ QgsRasterBlock *QgsGdalProvider::block( int bandNo, const QgsRectangle &extent,
return block; return block;
} }


if ( !mExtent.intersects( extent ) )
{
// the requested extent is completely outside of the raster's extent - nothing to do
block->setIsNoData();
return block;
}

if ( !mExtent.contains( extent ) ) if ( !mExtent.contains( extent ) )
{ {
QRect subRect = QgsRasterBlock::subRect( extent, width, height, mExtent ); QRect subRect = QgsRasterBlock::subRect( extent, width, height, mExtent );
Expand Down

0 comments on commit 267c80c

Please sign in to comment.