[gdal-dev] GEOS 3.10.0 Released

Paul Ramsey pramsey at cleverelephant.ca
Wed Oct 20 13:27:02 PDT 2021


The GEOS PSC is somewhat amused to set the 3.10.0 release of GEOS free
to fly the skies of the digisphere, bringing valid geometries and fast
operations to entities everywhere.

https://trac.osgeo.org/geos/

Headline changes for this release include:
* Continuing performance improvements, particularly in the in-memory
STRTree, and new C-API functions for reading from / writing to GEOS
objects from in-memory buffers. Because it is a core algorithm for
other processes, the index improvement provides a speed-up to
operations across the library.
* Net-new algorithm for Validity checking that speed up testing of
validity, through a more step-wise approach with short-circuiting.
* A new algorithm for Validity enforcement that uses ring containment
logic to determine polygon area membership, for some "more reasonable"
results in complex ring overlapping cases.
* A triangulation routine for polygons, that provides attractive
constrained Delaunay triangulations.

For those with a nose for details, the full NEWS entry follows.

Thank you for using GEOS,
And your help in its development,
The Whole GEOS PSC

== NEWS ====================================

- New things:
  - CAPI: GEOSDistanceWithin, GEOSPreparedDistanceWithin
          (#1124, Sandro Santilli)
  - Output WKT using positional precision with the ryu
    library (#868, Paul Ramsey)
  - geosop CLI for GEOS (Martin Davis)
  - Full doxygen of the C-API (Paul Ramsey)
  - GeometryFixer class for validity enforcement (Martin Davis, Paul Ramsey)
  - CAPI: GEOSDensify (Brendan Ward)
  - CAPI: GEOSCoordSeq_copyFromArrays, GEOSCoordSeq_copyFromBuffer,
          GEOSCoordSeq_copyToArrays, GEOSCoordSeq_copyToBuffer (Daniel Baston)
  - CAPI: GEOSMakeValidWithParams new validity enforcement approach from
          https://github.com/locationtech/jts/pull/704, uses GeometryFixer
          (Paul Ramsey, Martin Davis)
  - CAPI: GEOSWKBWriter_getFlavor, GEOSWKBWriter_setFlavor support
          outputting ISO or Extended WKB flavors (#466, Paul Ramsey)
  - CAPI: GEOSConstrainedDelaunayTriangulation, builds a constrained
          triangulation of an input Polygon or MultiPolygon,
          returning a GeometryCollection(Polygon) of the triangles.

- Fixes/Improvements:
  - Preserve ordering of lines in overlay results (Martin Davis)
  - Check for invalid geometry before fixing polygonal result in Densifier
    and DPSimplifier (Martin Davis)
  - Fix overlay handling of flat interior lines (JTS-685, Martin Davis)
  - Fix IsValidOp to correctly report invalid nested MultiPolygons
(#1112, Martin Davis)
  - Fix BufferOp to avoid artifacts in certain polygon buffers (#1101,
Martin Davis)
  - Fix IsValidOp to correctly report certain kinds of invalid
LinearRings (Martin Davis)
  - Improve STRtree performance through TemplateSTRtree implementation
(Daniel Baston)
  - Fix DiscreteFrechetDistance to use initial points of input lines
(#1128, Martin Davis)

- Changes:
  - Autoconf build system is dropped in favour of CMake
    See README.md and INSTALL.md for examples of usage
  - Libtool is no longer used for in favour of CMake
    Therefor libgeos.la is no longer built/installed
  - #1094, #1090: Drop inlines.cpp to address duplicate symbols on
many platforms
    (Regina Obe)
  - GH475: Do not return NaN from GEOSProjectNormalized_r (Paul Ramsey)
  - GH442: BufferOp now returns unique_ptr<Geometry> result (Paul Ramsey)


More information about the gdal-dev mailing list