[geos-devel] [GEOS] #1022: Buffering a specific closed linestring erroneously produces polygon without hole.

GEOS geos-trac at osgeo.org
Sun Mar 15 13:42:11 PDT 2020


#1022: Buffering a specific closed linestring erroneously produces polygon without
hole.
------------------------+---------------------------
 Reporter:  uclaros     |       Owner:  geos-devel@…
     Type:  defect      |      Status:  new
 Priority:  major       |   Milestone:
Component:  Default     |     Version:  3.8.0
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by Mike Taves):

 Confirmed, with same behavior with JTS 1.14. And for the record, the input
 geometry is valid and simple.

 The test can be simplified using a default buffer (without parameters).

 What makes this bug interesting is that it is depends on the buffer
 distance, since most other values produce the expected result. And it's
 not just 1.0.

 Here is a simple shapely example that checks 50 buffer distances between
 0.1 and 2.0
 {{{
 import numpy as np
 from shapely import wkt

 g = wkt.loads('LineString (278601.0234000000054948
 4295292.71929999999701977, 278598.71919999999227002
 4295290.49340000003576279, 278589.06283691781572998
 4295303.48101469129323959, 278605.49300000001676381
 4295297.03689999971538782, 278601.0234000000054948
 4295292.71929999999701977)')
 for b in np.linspace(0.1, 2.0, num=50):
     if len(g.buffer(b).interiors) == 0:
         print(b)
 }}}
 shows these buffer distances
 {{{
 0.6428571428571428
 0.9918367346938776
 1.263265306122449
 1.379591836734694
 }}}
 so 8% failure rate.

-- 
Ticket URL: <https://trac.osgeo.org/geos/ticket/1022#comment:2>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list