[gdal-dev] Converting raster pixel space to geospace

Even Rouault even.rouault at mines-paris.org
Thu Jul 16 14:43:39 EDT 2009


Le Thursday 16 July 2009 10:41:02 Smart, Gary, vous avez écrit :
>
> But how do I load a OGRSpatialRef object with the output from the
> GDALApplyGeoTransform?  Presumably I can prime the OGRSpatialReference
> using the result of GDALDataset::GetProjectionRef? 

Yes, almost. See below

> I'm not yet sure of my 
> terminology but is the GetProjectionRef supposed to satisfy the OGR
> importFromWkt (the types seem to clash though - char* vs char**)?

Maybe the doc of OGRSpatialReference::importFromWkt() (see
http://gdal.org/ogr/classOGRSpatialReference.html#b74cfc985bd05404a4c61d2d633a6343) 
isn't clear enough ? I must confess that the prototype is a bit weird. You 
don't pass the string itself, but a pointer to a string. The pointer will be 
modified to point to the remaining (unused) input, what you generally don't 
care about. 

Ok, here's a sample snippet :

OGRSpatialReferenceH hSRS = OSRNewSpatialReference(NULL);
const char* pszWkt = GDALGetProjectionRef(hDS);
OSRImportFromWkt(hSRS, (char**) pszWkt);

(For the purists, a more correct prototype of importFromWkt () would have 
relied on 'const char**' to avoid the above cast)

But a simpler approach would be just :

OGRSpatialReferenceH hSRS;
hSRS = OSRNewSpatialReference(pszWKT);

which instanciates the OGRSpatialReferenceH object and call internally 
importFromWkt()

>
> I suspect my output projection could then be set up with
> SetWellKnownGeogCS("WGS84") in order to convert from whatever input
> projection prevails, to a standard WGS84 lat/long representation (using    
>    OGRCreateCoordinateTransformation::Transform)?

Yes. Actually, it will be long/lat in term of the order of the coordinates.




More information about the gdal-dev mailing list