Skip to content

Releases: libgeos/geos

Release 3.14.0

21 Aug 15:20
Compare
Choose a tag to compare

2025-08-21

  • New things:

    • Add clustering functions to C API (GH-1154, Dan Baston)
    • Ported LineDissolver (Paul Ramsey)
    • Ported CoverageCleaner (Paul Ramsey)
    • Add GEOSGridIntersectionFractions to C API (GH-1295, Dan Baston)
    • Add functions to interrupt processing in a specific thread/context (GH-803, Dan Baston)
    • Add "geos-targets.cmake" to build tree to allow building other software against
      GEOS build without installing first (GH-1269, Dan Baston)
    • Add GEOSCoordSeq_hasZ, GEOSCoordSeq_hasM (GH-1256, Aurele Ferotin)
    • Add GEOSCoordSeq_createWithDimensions, GEOSCoordSeq_setM, GEOSCoordSeq_getM (GH-1246, Dan Baston)
    • Add GEOSGeoJSONWriter_setOutputDimension (GH-1260, Aurele Ferotin)
    • Add GEOSGeom_transformXYZ (GH-1157, Aurele Ferotin)
    • Add GEOSisSimpleDetail (GH-1296, Dan Baston)
  • Breaking Changes:

    • C++17 is now required (GH-1144)
    • Stricter WKT parsing (GH-1241, @freemine)
    • GEOSCoordSeq_setOrdinate returns an error if the sequence does not have the specified ordinate (GH-1245, Dan Baston)
  • Fixes/Improvements:

    • Fix ConcaveHullOfPolygons nested shell handling (GH-1169, Martin Davis)
    • Fix RelateNG for computing IM for empty-nonempty cases (Martin Davis)
    • Fix TopologyPreservingSimplifier/TaggedLineString to avoid jumping components (JTS-1096, Martin Davis)
    • Fix WKTWriter for small precisions and with trim enabled (GH-1199, Mike Taves)
    • Fix BufferOp to increase length of segments removed by heuristic (GH-1200, Martin Davis)
    • Improve RelateNG performance for A/L cases in prepared predicates (GH-1201, Martin Davis)
    • Improve OffsetCurve to handle mitre joins for polygons (Martin Davis)
    • Fix inscribed circle initialization (GH-1225, Benoit Maurin)
    • Fix overlay heuristic for GeometryCollections with empty elements (GH-1229, Martin Davis)
    • Add ring buffer hole removal heuristic (GH-1233, Martin Davis)
    • Fix buffer element erosion for negative distance and remove overlay deps (GH-1239, Martin Davis)
    • Fix OverlayNG coordinate dimension handling for EMPTY geometries (GH-1258, Martin Davis)
    • Fix DepthSegment comparison logic (really this time) (GH-1266, Martin Davis)
    • Change CoverageGapFinder to return polygons (Martin Davis)
    • Update DiscreteFrechetDistance to new algorithm (GH-1274, Paul Ramsey)

Release 3.13.1

03 Mar 18:04
Compare
Choose a tag to compare

2024-03-03

  • Fixes/Improvements:
    • Fix ConcaveHullOfPolygons nested shell handling (GH-1169, Martin Davis)
    • Fix RelateNG for computing IM for empty-nonempty cases (Martin Davis)
    • Fix LineString->getPoint(n) for M geometries (GH-1191, @hsieyuan)
    • Fix TopologyPreservingSimplifier/TaggedLineString to avoid jumping components (JTS-1096, Martin Davis)
    • Fix WKTWriter for small precisions and with trim enabled (GH-1199, Mike Taves)
    • Fix BufferOp to increase length of segments removed by heuristic (GH-1200, Martin Davis)
    • Improve RelateNG performance for A/L cases in prepared predicates (GH-1201, Martin Davis)
    • Improve OffsetCurve to handle mitre joins for polygons (Martin Davis)
    • Fix inscribed circle initialization (GH-1225, Benoit Maurin)
    • Fix overlay heuristic for GeometryCollections with empty elements (GH-1229, Martin Davis)
    • Add ring buffer hole removal heuristic (GH-1233, Martin Davis)
    • Fix buffer element erosion for negative distance and remove overlay deps (GH-1239, Martin Davis)

Release 3.12.3

03 Mar 18:19
Compare
Choose a tag to compare

2025-03-03

  • Fixes:
    • TopologyPreservingSimplifier: fix to remove ring endpoints safely (GH-1110, Martin Davis)
    • Centroid: Fix crash on polygons with empty holes (GH-1075, Dan Baston)
    • MinimumClearance: Fix crash on NaN inputs (GH-1082, Dan Baston)
    • GEOSLineSubstring: Fix crash on NaN length fractions (GH-1088, Dan Baston)
    • GEOSRelatePatternMatch: Fix crash on invalid DE-9IM pattern (GH-1089, Dan Baston)
    • Fix ConcaveHullOfPolygons nested shell handling (GH-1169, Martin Davis)
    • GEOSConcaveHullOfPolygons, avoid crash on zero-area input (GH-1071, Dan Baston)
    • DouglasPeuckerLineSimplifier, avoid crash with Point input and NaN tolerance (GH-1078, Dan Baston)
    • GEOSLineSubstring, avoid crash with NaN length fraction (GH-1077, Dan Baston)
    • MinimumClearance, avoid crash on NaN inputs (GH-1079, Dan Baston)
    • Fix LineString->getPoint(n) for M geometries (GH-1191, @hsieyuan)
    • Fix TopologyPreservingSimplifier/TaggedLineString to avoid jumping components (JTS-1096, Martin Davis)
    • Fix BufferOp to increase length of segments removed by heuristic (GH-1200, Martin Davis)
    • Improve OffsetCurve to handle mitre joins for polygons (Martin Davis)
    • Fix inscribed circle initialization (GH-1225, Benoit Maurin)
    • Fix overlay heuristic for GeometryCollections with empty elements (GH-1229, Martin Davis)
    • Add ring buffer hole removal heuristic (GH-1233, Martin Davis)
    • Fix buffer element erosion for negative distance and remove overlay deps (GH-1239, Martin Davis)

Release 3.11.5

03 Mar 18:21
Compare
Choose a tag to compare

2025-03-03

  • Fixes/Improvements:
    • Centroid: Fix crash on polygons with empty holes (GH-1075, Dan Baston)
    • MinimumClearance: Fix crash on NaN inputs (GH-1082, Dan Baston)
    • GEOSRelatePatternMatch: Fix crash on invalid DE-9IM pattern (GH-1089, Dan Baston)
    • Port TopologyPreservingSimplifier fixes (GH-986, GH-1107, GH-857, GH-784, GH-1070, Paul Ramsey)
    • Fix ConcaveHullOfPolygons nested shell handling (GH-1169, Martin Davis)
    • GEOSConcaveHullOfPolygons, avoid crash on zero-area input (GH-1071, Dan Baston)
    • MinimumClearance, avoid crash on NaN inputs (GH-1079, Dan Baston)
    • Fix TopologyPreservingSimplifier/TaggedLineString to avoid jumping components (JTS-1096, Martin Davis)
    • Fix BufferOp to increase length of segments removed by heuristic (GH-1200, Martin Davis)
    • Add ring buffer hole removal heuristic (GH-1233, Martin Davis)

Release 3.10.7

03 Mar 18:30
Compare
Choose a tag to compare

2025-03-03

  • Fixes/Improvements:
    • Intersection: change to using DoubleDouble computation to improve robustness (GH-937, Martin Davis)
    • Fix build on Illumus (GH-971)
    • PointOnSurface crashes with a collection containing a empty linestring (GH-1002, Paul Ramsey)
    • Fix IsSimpleOp for MultiPoint with empty element (GH-1005, Martin Davis)
    • Fix PreparedPolygonContains for GC with MultiPoint (GH-1008, Martin Davis)
    • Fix reading WKT with EMPTY token with white space (GH-1025, Mike Taves)
    • Centroid: Fix crash on polygons with empty holes (GH-1075, Dan Baston)
    • MinimumClearance: Fix crash on NaN inputs (GH-1082, Dan Baston)
    • GEOSRelatePatternMatch: Fix crash on invalid DE-9IM pattern (GH-1089, Dan Baston)

Release 3.9.6

03 Mar 18:45
Compare
Choose a tag to compare

2025-03-03

  • Bug fixes / improvements:
    • Intersection: change to using DoubleDouble computation to improve robustness (GH-937, Martin Davis)
    • Centroid: Fix crash on polygons with empty holes (GH-1075, Dan Baston)
    • GEOSRelatePatternMatch: Fix crash on invalid DE-9IM pattern (GH-1089, Dan Baston)

Release 3.13.0

06 Sep 17:58
Compare
Choose a tag to compare

2024-09-06

  • New things:

    • Add Angle::sinCosSnap to avoid small errors, e.g. with buffer operations (GH-978, Mike Taves)
    • Add classes for curved geometry types: CircularString, CompoundCurve, CurvedPolygon, MultiCurve,
      MultiSurface (GH-1046, Dan Baston/German QGIS users group/Canton of Basel-Landschaft/Canton of Zug)
    • Support curved geometry types in WKT/WKB readers/writers (GH-1046, GH-1104, GH-1106, Dan Baston)
    • 3D read and write support for GeoJSON (GH-1150, Oreilles)
    • Port of RelateNG locationtech/jts#1052 (Martin Davis, Paul Ramsey)
  • Breaking Changes

    • Zero-length linestrings (eg LINESTRING(1 1, 1 1)) are now treated as equivalent to points (POINT(1 1)) in boolean predicates
    • CMake 3.15 or later is requried (GH-1143, Mike Taves)
  • Fixes/Improvements:

    • WKTReader: Points with all-NaN coordinates are not considered empty anymore (GH-927, Casper van der Wel)
    • WKTWriter: Points with all-NaN coordinates are written as such (GH-927, Casper van der Wel)
    • ConvexHull: Performance improvement for larger geometries (JTS-985, Martin Davis)
    • Distance: Improve performance, especially for point-point distance (GH-1067, Dan Baston)
    • Intersection: change to using DoubleDouble computation to improve robustness (GH-937, Martin Davis)
    • Fix LargestEmptyCircle to respect polygonal obstacles (GH-939, Martin Davis)
    • Fix WKTWriter to emit EMPTY elements in multi-geometries (GH-952, Mike Taves)
    • Fix IncrementalDelaunayTriangulator to ensure triangulation boundary is convex (GH-953, Martin Davis)
    • Fix PreparedLineStringDistance for lines within envelope and polygons (GH-959, Martin Davis)
    • Improve scale handling for PrecisionModel (GH-956, Martin Davis)
    • Fix error in CoordinateSequence::add when disallowing repeated points (GH-963, Dan Baston)
    • Fix WKTWriter::writeTrimmedNumber for big and small values (GH-973, Mike Taves)
    • Fix InteriorPointPoint to handle empty elements (GH-977, Martin Davis)
    • Fix TopologyPreservingSimplifier endpoint handling to avoid self-intersections (GH-986, Martin Davis)
    • Fix spatial predicates for MultiPoint with EMPTY (GH-989, Martin Davis)
    • Fix DiscreteHausdorffDistance for LinearRing (GH-1000, Martin Davis)
    • Fix IsSimpleOp for MultiPoint with empty element (GH-1005, Martin Davis)
    • Fix PreparedPolygonContains for GC with MultiPoint (GH-1008, Martin Davis)
    • Fix reading WKT with EMPTY token with white space (GH-1025, Mike Taves)
    • Fix buffer Inverted Ring Removal check (GH-1056, Martin Davis)
    • Add PointLocation.isOnSegment and remove LineIntersector point methods (GH-1083, Martin Davis)
    • Densify: Interpolate Z coordinates (GH-1094)
    • GEOSLineSubstring: Fix crash on NaN length fractions (GH-1088, Dan Baston)
    • MinimumClearance: Fix crash on NaN inputs (GH-1082, Dan Baston)
    • Centroid: Fix crash on polygons with empty holes (GH-1075, Dan Baston)
    • GEOSRelatePatternMatch: Fix crash on invalid DE-9IM pattern (GH-1089, Dan Baston)
    • CoveragePolygonValidator: add section performance optimization (GH-1099, Martin Davis)
    • TopologyPreservingSimplifier: fix to remove ring endpoints safely (GH-1110, Martin Davis)
    • TopologyPreservingSimplifier: fix stack overflow on degenerate inputs (GH-1113, Dan Baston)
    • DouglasPeuckerSimplifier: fix stack overflow on NaN tolerance (GH-1114, Dan Baston)
    • GEOSConcaveHullOfPolygons: Avoid crash on zero-area input (GH-1076, Dan Baston)

Release 3.12.2

05 Jun 20:46
Compare
Choose a tag to compare

2024-06-05

  • Fixes:
    • Intersection: change to using DoubleDouble computation to improve robustness (GH-937, Martin Davis)
    • Fix build on Illumus (GH-971)
    • Buffer mitre join error (GH-995, Paul Ramsey)
    • Return 2D empty linestring on GEOSGeom_createLineString(NULL) (GH-998, Paul Ramsey)
    • Fix DiscreteHausdorffDistance for LinearRing (GH-1000, Martin Davis)
    • PointOnSurface crashes with a collection containing a empty linestring (GH-1002, Paul Ramsey)
    • Fix IsSimpleOp for MultiPoint with empty element (GH-1005, Martin Davis)
    • Fix PreparedPolygonContains for GC with MultiPoint (GH-1008, Martin Davis)
    • Fix TopologyPreservingSimplifier to prevent jumping components (GH-1012, Martin Davis)
    • Fix reading WKT with EMPTY token with white space (GH-1025, Mike Taves)
    • Segfault in CoverageSimplify for non-polygonal inputs (GH-1039, Paul Ramsey)
    • Fix buffer Inverted Ring Removal check (GH-1056, Martin Davis)
    • CoveragePolygonValidator: add section performance optimization (GH-1099, Martin Davis)

Release 3.11.4

05 Jun 20:43
Compare
Choose a tag to compare

2024-06-05

  • Fixes/Improvements:
    • Intersection: change to using DoubleDouble computation to improve robustness (GH-937, Martin Davis)
    • Fix IncrementalDelaunayTriangulator to ensure triangulation boundary is convex (GH-953, Martin Davis)
    • Fix build on Illumus (GH-971)
    • Fix DiscreteHausdorffDistance for LinearRing (GH-1000, Martin Davis)
    • PointOnSurface crashes with a collection containing a empty linestring (GH-1002, Paul Ramsey)
    • Fix IsSimpleOp for MultiPoint with empty element (GH-1005, Martin Davis)
    • Fix reading WKT with EMPTY token with white space (GH-1025, Mike Taves)

Release 3.10.6

12 Nov 03:04
Compare
Choose a tag to compare

2023-11-11

  • Fixes/Improvements:
    • LargestEmptyCircle: enhance boundary to allow any polygonal geometry (GH-859, Martin Davis)
    • Build issues with gcc-13 (GH-863)
    • GeoJSONReader: Fix 2D empty geometry creation (GH-910, Mike Taves)
    • GEOSClipByRect: Fix case with POINT EMPTY (GH-913, Mike Taves)
    • Remove undefined behaviour in use of null PrecisionModel (GH-931, Jeff Walton)
    • PreparedLineStringIntersects: Fix incorrect result with mixed-dim collection with points (GH-774, Dan Baston)
    • Skip over testing empty distances for mixed collections (GH-979, Paul Ramsey)
    • Do not hide illegal argument exception in HeuristicOverlay (GH-925, Sandro Santilli)