[QGIS Commit] r15481 - trunk/qgis/src/providers/gdal

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Mar 14 16:42:20 EDT 2011


Author: mmassing
Date: 2011-03-14 13:42:20 -0700 (Mon, 14 Mar 2011)
New Revision: 15481

Modified:
   trunk/qgis/src/providers/gdal/qgsgdalprovider.cpp
Log:
Fix #3596

Modified: trunk/qgis/src/providers/gdal/qgsgdalprovider.cpp
===================================================================
--- trunk/qgis/src/providers/gdal/qgsgdalprovider.cpp	2011-03-14 20:12:33 UTC (rev 15480)
+++ trunk/qgis/src/providers/gdal/qgsgdalprovider.cpp	2011-03-14 20:42:20 UTC (rev 15481)
@@ -143,9 +143,11 @@
     mMinimum.append( 0 );
     mMaximum.append( 0 );
   }
+
   // Check if we need a warped VRT for this file.
-  if (( GDALGetGeoTransform( mGdalBaseDataset, mGeoTransform ) == CE_None
-        && ( mGeoTransform[1] < 0.0
+  bool hasGeoTransform = GDALGetGeoTransform( mGdalBaseDataset, mGeoTransform ) == CE_None;
+  if ( ( hasGeoTransform
+          && ( mGeoTransform[1] < 0.0
              || mGeoTransform[2] != 0.0
              || mGeoTransform[4] != 0.0
              || mGeoTransform[5] > 0.0 ) )
@@ -168,7 +170,21 @@
     mGdalDataset = mGdalBaseDataset;
     GDALReferenceDataset( mGdalDataset );
   }
+  
+  if (!hasGeoTransform)
+  {
+    mWidth = GDALGetRasterXSize( mGdalDataset );
+    mHeight = GDALGetRasterYSize( mGdalDataset );
 
+    // Initialise the affine transform matrix
+    mGeoTransform[0] =  0;
+    mGeoTransform[1] =  1;
+    mGeoTransform[2] =  0;
+    mGeoTransform[3] =  0;
+    mGeoTransform[4] =  0;
+    mGeoTransform[5] = -1;
+  }
+
   //check if this file has pyramids
   CPLErrorReset();
   GDALRasterBandH myGDALBand = GDALGetRasterBand( mGdalDataset, 1 ); //just use the first band



More information about the QGIS-commit mailing list