The 3.12 release of GEOS is now available to download.
This release includes the following new features in the C API (and of course underlying changes to the C++ code to support these features):
- GEOSDisjointSubsetUnion, anptimized union algorithm for inputs that can be divided into subsets.
- GEOSLineSubstring, to clip a line using a start and end fractional length.
- GEOSEqualsIdentical, to test exact equality (with regards to order, structure, etc) of two geometries.
- GEOSOrientPolygons, to enforce a ring orientation on all polygonal elements in the input geometry.
- GEOSSTRtree_build, to force an immediate build of an STRtree.
- GEOSConcaveHullByLength, to build a concave hull by removing the longest outer edges of the Delaunay Triangulation of the space between the polygons, until the specified maximm edge length is reached
- GEOSGeomGetM, to read the M-dimensional value of a geometry.
- GEOSVoronoiDiagram, returns the Voronoi polygons or edges of the vertices of the given geometry.
- GEOSCoverageSimplifyVW, GEOSCoverageUnion, GEOSCoverageIsValid for working with “polygonal coverages”, collections of polygons that follow coverage rules (no overlaps, exact vertex equivalence on shared edges).
- GEOSGeom_releaseCollection, to free a collection while leaving the sub-geometries intact.
- GEOSMinimumRotatedRectangle, a rework of the minimum rectangle code to be faster and more correct.
GEOS has been updated to read and write “M” dimension. As with the “Z” coordinate support, not all operations can preserve the “M” dimension, but best efforts are made to retain it through calculations, input and output.
Much work on the core code of GEOS was carried out with a maintenance grant funded by the GDAL project and carried out by Dan Baston.