[gdal-dev] Re: C GDAL beginner

Frank Warmerdam warmerdam at pobox.com
Wed Mar 3 22:53:18 EST 2010

deadpickle wrote:
> Thanks for the replies. Just as a note, the warnings are caused by the
> variable being a const. Omitting the const solved it.
> I'm not sure if this is a C program or a GDAL thing, thats why I'm not
> sure where to post this at, but I get a segfault. I know segfaults are
> generally caused by ordinary, and sometimes strange, syntax but it
> involves a GDAL C API call, so I'll post it here. Basically, from what
> I understand from printing, the esgfault is caused by
> OSRSetFromUserInput(source, sprj);
> where char *source;
>  OSRNewSpatialReference(source);
>  and const char *sprj = "+proj=lcc +lat_1=33.000000 +lat_2=45.000000
> +lat_0=39.000000 +lon_0=-96.000000 +x_0=0.0 +y_0=0.0 +datum=NAD83";.
>  what I'm wondering is if I'm calling these correctly? Is the proj4
> string right? If they are then I'll redirect my questions else where.
> int main()
> {
> 	//~ variable declaration
> 	const char *name = "testc.shp", *dir = "C:\\Users\\deadpickle\\Desktop
> \\case study\\verify\\";
> 	char *source, *target;
> 	const char *sprj = "+proj=lcc +lat_1=33.000000 +lat_2=45.000000
> +lat_0=39.000000 +lon_0=-96.000000 +x_0=0.0 +y_0=0.0 +datum=NAD83";
> 	const char *tprj = "WGS84";
> 	//~ create spatrefs and trans
> 	OSRNewSpatialReference(source);
> 	OSRNewSpatialReference(target);

No, it's quite wrong.

It should be
         OGRSpatialReferenceH source, target;

         source = OSRNewSpatialReference(NULL);
         OSRSetFromUserInput( source, sprj );

         target = OSRNewSpatialReference(NULL);
         OSRSetFromUserInput( target, tprj );

I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent

More information about the gdal-dev mailing list