[geos-devel] Wrong values in GEOSCoordSeq

Giacomo Piva piva at meeo.it
Fri Aug 7 05:50:13 EDT 2009

Hi All,

I'm using for the first time GEOS library in a (ANSI) C application.
I need to get the intersection of two polygons.
Looking at the geos.h file (for C reference) I'm trying to get the 
intersection in this way:

    GEOSCoordSeq coordseq = NULL;
    GEOSGeom area1 = NULL, shell = NULL, intersection = NULL;
    GEOSGeom holes_ptr[1];

    coordseq = (GEOSCoordSeq) GEOSCoordSeq_create(5, 2);    // 5 points 
2 dimensions

    GEOSCoordSeq_setX(coordseq, 0, Lon_UL);    //Coord upper left
    GEOSCoordSeq_setY(coordseq, 0, Lat_UL);
    GEOSCoordSeq_setX(coordseq, 1, Lon_LR);    //Coord upper right
    GEOSCoordSeq_setY(coordseq, 1, Lat_UL);
    GEOSCoordSeq_setX(coordseq, 2, Lon_LR);    //Coord lower right
    GEOSCoordSeq_setY(coordseq, 2, Lat_LR);
    GEOSCoordSeq_setX(coordseq, 3, Lon_UL);    //Coord lower left
    GEOSCoordSeq_setY(coordseq, 3, Lat_LR);
    GEOSCoordSeq_setX(coordseq, 4, Lon_UL);    //Coord upper left (again)
    GEOSCoordSeq_setY(coordseq, 4, Lat_UL);

where Lon_* and Lat_* are float values.

First of all, I'm trying to see if the value in the coordseq are stored 
properly so...

I print the inserted value:  

printf("%f \n", Lon_UL);

And the stored values:

    GEOSCoordSeq_getX(coordseq, i, &pippo);
    printf("[%d] %f ", i, pippo);

Finally, I get different values:
At runtime:


[0] -0.000000 -0.000000
[1] -0.000000 -0.000000
[2] -0.000000 -0.000000
[3] -0.000000 -0.000000
[4] -0.000000 -0.000000

I'm sorry for this stupid question but... what it's wrong?
Thanks to all.

More information about the geos-devel mailing list