[geos-devel] Buffer on GEOMCOLLECTION and slight variations

Alex Trofast alex.trofast at actian.com
Thu Feb 2 11:56:12 EST 2012


Hey all,

The difference is actually in TWO coordinate pair, sorry about that:
0.366 0.233
vs
0.384 0.218

I did an area calculation on both polygons and it's the same: 14.435154

Thanks,

Alex

On 02/01/2012 05:30 PM, Alex Trofast wrote:
> Greetings all,
>
> The program pasted below will produce slightly different results on 
> different machines. It's calling BUFFER on a GEOMCOLLECTION.
> On ArchLinux 64 bit with GCC 4.6.2 I get:
> Buffer: POLYGON ((0.000 1.000, 0.000 1.000, 0.011 1.113, 0.019 1.195, 
> 0.019 1.195, 0.019 1.195, 0.043 1.275, 0.076 1.383, 0.076 1.383, 0.076 
> 1.383, 0.113 1.451, 0.169 1.556, 0.169 1.556, 0.169 1.556, 0.184 
> 1.574, 0.293 1.707, 0.293 1.707, 0.293 1.707, 4.293 5.707, 4.444 
> 5.831, 4.617 5.924, 4.805 5.981, 5.000 6.000, 5.195 5.981, 5.383 
> 5.924, 5.556 5.831, 5.707 5.707, 5.831 5.556, 5.924 5.383, 5.981 
> 5.195, 6.000 5.000, 5.981 4.805, 5.924 4.617, 5.831 4.444, 5.707 
> 4.293, 1.707 0.293, 1.707 0.293, 1.707 0.293, 1.707 0.293, 1.700 
> 0.287, 1.556 0.169, 1.556 0.169, 1.556 0.169, 1.474 0.125, 1.383 
> 0.076, 1.383 0.076, 1.383 0.076, 1.293 0.049, 1.195 0.019, 1.195 
> 0.019, 1.195 0.019, 1.094 0.009, 1.000 0.000, 1.000 0.000, 1.000 
> 0.000, 0.874 0.012, 0.805 0.019, 0.805 0.019, 0.805 0.019, 0.680 
> 0.057, 0.617 0.076, 0.617 0.076, 0.617 0.076, 0.494 0.142, 0.444 
> 0.169, 0.444 0.169, 0.444 0.169, 0.366 0.233, 0.293 0.293, 0.293 
> 0.293, 0.293 0.293, 0.218 0.384, 0.169 0.444, 0.169 0.444, 0.169 
> 0.444, 0.128 0.521, 0.076 0.617, 0.076 0.617, 0.076 0.617, 0.048 
> 0.710, 0.019 0.805, 0.019 0.805, 0.019 0.805, 0.011 0.890, 0.000 
> 1.000, 0.000 1.000))
> On OpenSUSE 10 64 bit, GCC 4.1.2
> Buffer: POLYGON ((0.000 1.000, 0.000 1.000, 0.011 1.113, 0.019 1.195, 
> 0.019 1.195, 0.019 1.195, 0.043 1.275, 0.076 1.383, 0.076 1.383, 0.076 
> 1.383, 0.113 1.451, 0.169 1.556, 0.169 1.556, 0.169 1.556, 0.184 
> 1.574, 0.293 1.707, 0.293 1.707, 0.293 1.707, 4.293 5.707, 4.444 
> 5.831, 4.617 5.924, 4.805 5.981, 5.000 6.000, 5.195 5.981, 5.383 
> 5.924, 5.556 5.831, 5.707 5.707, 5.831 5.556, 5.924 5.383, 5.981 
> 5.195, 6.000 5.000, 5.981 4.805, 5.924 4.617, 5.831 4.444, 5.707 
> 4.293, 1.707 0.293, 1.707 0.293, 1.707 0.293, 1.707 0.293, 1.700 
> 0.287, 1.556 0.169, 1.556 0.169, 1.556 0.169, 1.474 0.125, 1.383 
> 0.076, 1.383 0.076, 1.383 0.076, 1.293 0.049, 1.195 0.019, 1.195 
> 0.019, 1.195 0.019, 1.094 0.009, 1.000 0.000, 1.000 0.000, 1.000 
> 0.000, 0.874 0.012, 0.805 0.019, 0.805 0.019, 0.805 0.019, 0.680 
> 0.057, 0.617 0.076, 0.617 0.076, 0.617 0.076, 0.520 0.128, 0.444 
> 0.169, 0.444 0.169, 0.444 0.169, 0.384 0.218, 0.293 0.293, 0.293 
> 0.293, 0.293 0.293, 0.218 0.384, 0.169 0.444, 0.169 0.444, 0.169 
> 0.444, 0.128 0.521, 0.076 0.617, 0.076 0.617, 0.076 0.617, 0.048 
> 0.710, 0.019 0.805, 0.019 0.805, 0.019 0.805, 0.011 0.890, 0.000 
> 1.000, 0.000 1.000))
>
> The difference is in one coordinate pair:
> 0.494 0.142
> vs
> 0.520 0.128
>
> Is Buffer supposed to work on geomcollections such as the one below 
> and why would there be a slight discrepancy between results?
>
> Thanks!
>
>
> #include <geos_c.h>
> #include <stdio.h>
> #include <stdlib.h>
>
> #define FALSE 0
> #define TRUE 1
>
> int main(int argc, char *argv[])
> {
>     GEOSGeometry *geom, *buffer;
>     GEOSContextHandle_t handle;
>     GEOSWKTReader *reader;
>     GEOSWKTWriter *writer;
>     char *wkt;
>
>     handle = initGEOS_r(NULL, NULL);
>
>     reader = GEOSWKTReader_create_r(handle);
>     writer = GEOSWKTWriter_create_r(handle);
>
>     geom = GEOSWKTReader_read_r(handle, reader, 
> "GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(1 1, 2 2, 4 4, 5 5))");
>
>     GEOSWKTWriter_setRoundingPrecision_r(handle, writer, 3);
>     GEOSWKTWriter_setTrim_r(handle, writer, FALSE);
>     buffer = GEOSBuffer_r(handle, geom, 1, 8);
>         wkt = GEOSWKTWriter_write_r(handle, writer, buffer);
>         printf("Buffer: %s\n", wkt);
>
>     return 0;
> }
> -- 
> Alex
> http://bit.ly/geodb
>
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geos-devel


-- 
Alex
http://bit.ly/geodb

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/geos-devel/attachments/20120202/5a5aa0c2/attachment.html


More information about the geos-devel mailing list