[geos-devel] Re: [GEOS] #383: huge memory cost and crash in buffer

Martin Davis mbdavis at refractions.net
Wed Nov 3 12:08:51 EDT 2010

I checked out this case in JTS, and it has the same symptoms.  The 
problem is due to the combination of:

- a very complex input geometry
- a large negative buffer distance, which is the most difficult scenario 
to compute

If you can run Java 64-bit with lots of memory and have time to wait, 
you might get an answer out. Otherwise I don't see any simple solution 
to this problem.  (Actually by manual inspection it looks like the 
buffer output would be the empty geometry for the given buffer distance. 
But this isn't a general solution, obviously)

Another way that might work is to buffer the linework of the boundary of 
the geometry using a positive buffer distance, and then subtract 
(difference) the result from the original polygon.  However, even the 
boundary of this polygon is complex enough that the boundary buffer will 
have to be computed piecewise (i.e. on short sections of the boundary) 
and then merged.


On 11/3/2010 3:32 AM, GEOS wrote:
> #383: huge memory cost and crash in buffer
> ------------------------+---------------------------------------------------
>   Reporter:  atubar      |       Owner:  geos-devel@…
>       Type:  defect      |      Status:  new
>   Priority:  major       |   Milestone:  3.2.1
> Component:  Default     |     Version:  3.2.0
>   Severity:  Unassigned  |    Keywords:
> ------------------------+---------------------------------------------------
> Comment(by atubar):
>   We need to do buffer operation in our program. Often the single geometry
>   is huge, and the shapefile is big and contain many geometry.
>   So what's the best way that you can show us?
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geos-devel

Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

More information about the geos-devel mailing list