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

strk strk at keybit.net
Thu Dec 9 05:15:00 EST 2010


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


More information about the geos-devel mailing list