From 75cfb32683e40540a2089dd63db1829ef15d8213 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 3 May 2016 19:49:51 +0200 Subject: [PATCH] [GDAL provider] Use GDALAutoCreateWarpedVRT() when the dataset has only RPC --- src/providers/gdal/qgsgdalprovider.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp index ca97207532a8..21e31bbd2f80 100644 --- a/src/providers/gdal/qgsgdalprovider.cpp +++ b/src/providers/gdal/qgsgdalprovider.cpp @@ -2503,7 +2503,8 @@ void QgsGdalProvider::initBaseDataset() || mGeoTransform[2] != 0.0 || mGeoTransform[4] != 0.0 || mGeoTransform[5] > 0.0 ) ) - || GDALGetGCPCount( mGdalBaseDataset ) > 0 ) + || GDALGetGCPCount( mGdalBaseDataset ) > 0 + || GDALGetMetadata( mGdalBaseDataset, "RPC" ) ) { QgsLogger::warning( "Creating Warped VRT." ); @@ -2580,7 +2581,16 @@ void QgsGdalProvider::initBaseDataset() if ( !crsFromWkt( GDALGetProjectionRef( mGdalDataset ) ) && !crsFromWkt( GDALGetGCPProjection( mGdalDataset ) ) ) { - QgsDebugMsg( "No valid CRS identified" ); + if ( mGdalBaseDataset != mGdalDataset && + GDALGetMetadata( mGdalBaseDataset, "RPC" ) ) + { + // Warped VRT of RPC is in EPSG:4326 + mCrs.createFromOgcWmsCrs( "EPSG:4326" ); + } + else + { + QgsDebugMsg( "No valid CRS identified" ); + } } //set up the coordinat transform - in the case of raster this is mainly used to convert