[geos-devel] GEOS 3.9.0 Released

Paul Ramsey pramsey at cleverelephant.ca
Mon Dec 14 09:10:19 PST 2020

The GEOS community is pleased to announce the 3.9 release of the GEOS
computational geometry library. 


The headline feature of 3.9 is the new overlay engine, which is also new 
to JTS. Intersection, union, difference and symdifference all use this
new engine, which provides more robust results than the old engine. 
This should dramatically reduce and hopefully eliminate topology exceptions
when used with valid inputs.

We have continued to work on performance at the C++ implementation
level, and in general hope to demonstrate faster operation for most 

- New things:
  - OverlayNG engine from JTS, now the default (Martin Davis, Paul Ramsey)
  - MaximumInscribedCircle and LargestEmptyCircle (JTS-530, Paul Ramsey)
  - CAPI: Fixed precision overlay operations (Sandro Santilli)
  - CAPI: GEOSPreparedNearestPoints (#1007, Sandro Santilli)
  - CAPI: GEOSPreparedDistance (#1066, Sandro Santilli)
  - CAPI: GEOSGeom_setPrecision uses OverlayNG (Paul Ramsey)
  - SimpleSTRTree spatial index implementation (Paul Ramsey)
  - Add support for pkg-config for GEOS C API (#1073, Mike Taves)

- Improvements:
  - Stack allocate segments in OverlapUnion (Paul Ramsey)
  - Improve performance of GEOSisValid (Dan Baston)
  - Update geos-config tool for consistency
    and escape paths (https://git.osgeo.org/gitea/geos/geos/pulls/99)
    changes mostly affect CMake MSVC builds (#1015, Mike Taves)
  - Testing on Rasberry Pi 32-bit (berrie) (#1017, Bruce Rindahl, Regina Obe)
  - Replace ttmath with JTS DD double-double implementation (Paul Ramsey)
  - Fix bug in DistanceOp for geometries with empty components (#1026, Paul Ramsey)
  - Remove undefined behaviour in CAPI (#1021, Greg Troxel)
  - Fix buffering issue (#1022, JTS-525, Paul Ramsey)
  - MinimumBoundingCircle.getMaximumDiameter fix (JTS-533, Paul Ramsey)

- Changes:
  - Drop SWIG bindings, including for Ruby and Python (#1076, Mike Taves)

More information about the geos-devel mailing list