Francois Maass wrote:
Good day!
I am trying to set the Projection Definition for a GDALDataset as
follows (from the GDALWarp API):
/const char *pszDstWKT = NULL;/
/OGRSpatialReference oSRS;/
/oSRS.SetUTM( 11, TRUE );/
/oSRS.SetWellKnownGeogCS( "WGS84" );/
/oSRS.exportToWkt( &pszDstWKT );/
/ /
/if(GDALSetProjection(srcDataset, pszDstWKT) == CE_Failure)/
/{ //handle failure/
/{else/
/{/
/ const char *defString = srcDataset->GetProjectionRef();/
/ cout<<”Length: “<<strlen(defString)<<endl;/
/cout<<”Projection: ”<<defString<<endl;/
/};/
Firstly, I get a compiler error with the oSRS.exportToWKT statement:
invalid conversion from ‘const char**’ to ‘char**’.
Francois,
exportToWkt() needs to modify pszDstWKT, so it is inappropriate
for the pointer to be const.
Secondly, After the GDALSetProjection(…) call succeeds, the projection
information is supposed to be printed out to standard out, along with
the length of the definition string.
However, the output is as follows:
$ Length: 0
$ Projection:
Why is the projection string still empty?
I see you are seeing the projection on the source file (srcDataset).
Are you sure it is open in update mode? I suspect that either
the source dataset is not updatable because it is open in read-only
mode or due to a limitation of the driver. It *ought* to return
CE_Failure in either of those conditions but this is not
always completely properly implemented. It may be appropriate
for you to file a ticket on why CE_Failure is not returned when
the setprojection seems to be failing.
Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmer...@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Programmer for Rent
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev