Skip to content

Commit 40e9b4d

Browse files
committed
Remove hardcoded crs in raster writer
1 parent f259830 commit 40e9b4d

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

src/app/qgisapp.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -3779,14 +3779,14 @@ void QgisApp::saveAsRasterFile()
37793779
if ( d.tileMode() )
37803780
{
37813781
fileWriter.setTiledMode( true );
3782-
//fileWriter.setMaxTileWidth( d.maximumTileSizeX() );
3783-
//fileWriter.setMaxTileHeight( d.maximumTileSizeY() );
3782+
fileWriter.setMaxTileWidth( d.maximumTileSizeX() );
3783+
fileWriter.setMaxTileHeight( d.maximumTileSizeY() );
37843784
}
37853785

37863786
QProgressDialog pd( 0, tr( "Abort..." ), 0, 0 );
37873787
pd.setWindowModality( Qt::WindowModal );
37883788
QgsRasterIterator iterator( rasterLayer->pipe()->last() );
3789-
fileWriter.writeRaster( &iterator, d.nColumns(), d.outputRectangle(), &pd );
3789+
fileWriter.writeRaster( &iterator, d.nColumns(), d.outputRectangle(), rasterLayer->crs(), &pd );
37903790
}
37913791
}
37923792

src/core/raster/qgsrasterfilewriter.cpp

+8-12
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ QgsRasterFileWriter::~QgsRasterFileWriter()
2525

2626
}
2727

28-
QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeRaster( QgsRasterIterator* iter, int nCols, QgsRectangle outputExtent, QProgressDialog* p )
28+
QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeRaster( QgsRasterIterator* iter, int nCols, QgsRectangle outputExtent,
29+
const QgsCoordinateReferenceSystem& crs, QProgressDialog* p )
2930
{
3031
if ( !iter )
3132
{
@@ -47,11 +48,9 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeRaster( QgsRasterIter
4748

4849
mProgressDialog = p;
4950

50-
QgsRasterInterface::DataType debug = iface->dataType( 1 );
51-
5251
if ( iface->dataType( 1 ) == QgsRasterInterface::ARGB32 )
5352
{
54-
WriterError e = writeARGBRaster( iter, nCols, outputExtent );
53+
WriterError e = writeARGBRaster( iter, nCols, outputExtent, crs );
5554
mProgressDialog = 0;
5655
return e;
5756
}
@@ -162,7 +161,8 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeRasterSingleTile( Qgs
162161
return NoError;
163162
}
164163

165-
QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeARGBRaster( QgsRasterIterator* iter, int nCols, const QgsRectangle& outputExtent )
164+
QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeARGBRaster( QgsRasterIterator* iter, int nCols, const QgsRectangle& outputExtent,
165+
const QgsCoordinateReferenceSystem& crs )
166166
{
167167
if ( !iter )
168168
{
@@ -212,13 +212,9 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeARGBRaster( QgsRaster
212212
geoTransform[4] = 0.0;
213213
geoTransform[5] = -pixelSize;
214214

215-
//where to get CRS from?
216-
QgsCoordinateReferenceSystem fakeCRS;
217-
fakeCRS.createFromEpsg( 21781 );
218-
219215
if ( mTiledMode )
220216
{
221-
createVRT( nCols, nRows, fakeCRS, geoTransform );
217+
createVRT( nCols, nRows, crs, geoTransform );
222218
}
223219
else
224220
{
@@ -229,7 +225,7 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeARGBRaster( QgsRaster
229225
}
230226

231227
if ( !destProvider->create( mOutputFormat, 4, QgsRasterInterface::Byte, nCols, nRows, geoTransform,
232-
fakeCRS ) )
228+
crs ) )
233229
{
234230
delete destProvider;
235231
return CreateDatasourceError;
@@ -319,7 +315,7 @@ QgsRasterFileWriter::WriterError QgsRasterFileWriter::writeARGBRaster( QgsRaster
319315
geoTransform[4] = 0.0;
320316
geoTransform[5] = -outputMapUnitsPerPixel;
321317
if ( !destProvider->create( mOutputFormat, 4, QgsRasterInterface::Byte, iterCols, iterRows, geoTransform,
322-
fakeCRS ) )
318+
crs ) )
323319
{
324320
delete destProvider;
325321
return CreateDatasourceError;

src/core/raster/qgsrasterfilewriter.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class CORE_EXPORT QgsRasterFileWriter
2525
QgsRasterFileWriter( const QString& outputUrl );
2626
~QgsRasterFileWriter();
2727

28-
WriterError writeRaster( QgsRasterIterator* iter, int nCols, QgsRectangle outputExtent = QgsRectangle(), QProgressDialog* p = 0 );
28+
WriterError writeRaster( QgsRasterIterator* iter, int nCols, QgsRectangle outputExtent,
29+
const QgsCoordinateReferenceSystem& crs, QProgressDialog* p = 0 );
2930

3031
void setOutputFormat( const QString& format ) { mOutputFormat = format; }
3132
QString outputFormat() const { return mOutputFormat; }
@@ -45,7 +46,8 @@ class CORE_EXPORT QgsRasterFileWriter
4546
private:
4647
QgsRasterFileWriter(); //forbidden
4748
WriterError writeRasterSingleTile( QgsRasterIterator* iter, int nCols );
48-
WriterError writeARGBRaster( QgsRasterIterator* iter, int nCols, const QgsRectangle& outputExtent );
49+
WriterError writeARGBRaster( QgsRasterIterator* iter, int nCols, const QgsRectangle& outputExtent,
50+
const QgsCoordinateReferenceSystem& crs );
4951

5052
//initialize vrt member variables
5153
void createVRT( int xSize, int ySize, const QgsCoordinateReferenceSystem& crs, double* geoTransform );

0 commit comments

Comments
 (0)