[geos-devel] about buffer of self-intersect polygon

2010-12-09 Thread xie_jiong
Hi All,

   Dose GEOS supports buffer of self-intersected polygon, just like 'POLYGON 
((2 2,-2 -2,2 -2,-2 2,2 2))'. I get the wrong polygon result with 
GEOSBuffer('POLYGON ((2 2,-2 -2,2 -2,-2 2,2 2))',0.5,8). I use newest verion.
   Thanks.

Jiong___
geos-devel mailing list
geos-devel@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/geos-devel

Re: [geos-devel] about buffer of self-intersect polygon

2010-12-09 Thread strk
On Thu, Dec 09, 2010 at 04:59:24PM +0800, xie_jiong wrote:
 Hi All,
 
Dose GEOS supports buffer of self-intersected polygon, just like 'POLYGON 
 ((2 2,-2 -2,2 -2,-2 2,2 2))'. I get the wrong polygon result with 
 GEOSBuffer('POLYGON ((2 2,-2 -2,2 -2,-2 2,2 2))',0.5,8). I use newest verion.

Self-intersecting polygon is invalid.
Any invalid input is not supposed to yeld meaningful output.
You need to clean the invalidity up.

FYI: PostGIS has a geos-based routing doing a cleanup like this:

# select st_asewkt(st_makevalid('POLYGON ((2 2,-2 -2,2 -2,-2 2,2 2))'));
MULTIPOLYGON(((2 2,0 0,-2 2,2 2)),((0 0,2 -2,-2 -2,0 0)))

You can then successfully buffer the result (getting back to a POLYGON).

--strk;

  ()   Free GIS  Flash consultant/developer
  /\   http://strk.keybit.net/services.html
___
geos-devel mailing list
geos-devel@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/geos-devel