GEOS
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Version 3.13.0

The 3.13 release of GEOS is now available to download.

The headline features of this release are:

  • A new approach to boolean predicates via RelateNG

    • Faster performance for many cases where a short circuit is available
    • Avoiding the full computation of a topology graph for every call
    • Ability to use a high speed “prepared” approach for the complete set of predicates as well as the relate matrix functions
  • Initial support for ISO SQL/MM curve types

    • Create, read and write support for CircularString, CompoundCurve, CurvedPolygon, MultiCurve, MultiSurface

This release includes the following new features in the C API (and of course underlying changes to the C++ code to support these features):

  • GEOSGeom_createEmptyCircularString() creates a new empty CircularString
  • GEOSGeom_createCircularString(coordseq) creates a CircularString with the supplied coordinates
  • GEOSGeom_createEmptyCompoundCurve() creates a new empty CompoundCurve
  • GEOSGeom_createCompoundCurve(curves, ncurves) creates a CompoundCurve with the supplied components (start/end coordinates must match up)
  • GEOSGeom_createEmptyCurvePolygon() creates a new empty CurvePolygon
  • GEOSGeom_createCurvePolygon(shell, holes, nholes) creates a CurvePolygon with the supplied rings
  • GEOSPreparedRelate(prepgeom, geom) generates a DE9IM intersection matrix for the geometry pair, where one input has been “prepared” for fast repeated calls
  • GEOSPreparedRelatePattern(prepgeom, geom, pattern) tests a pair of geometry against a known DE9IM pattern to see if the relationship is consistent with the pattern
Read full post gdoc_arrow_right_alt

RelateNG

The upcoming 3.13 release of GEOS includes a complete re-write of the “boolean predicates”, called “RelateNG”. The boolean predicates are pairwise tests for geometries that return true/false answers. “Intersects”, “Contains”, “Touches” are all examples of boolean predicates.

Read full post gdoc_arrow_right_alt

Version 3.9.5 and 3.8.4 EOL

As part of a batch release of patches for stable branches, the 3.9.5 release of GEOS is now available to download. In addition this release cycle includes the final release of GEOS 3.8 series, GEOS 3.8.4. If you haven’t already upgraded to a newer GEOS minor version from GEOS 3.8, we highly recommend you do so. Release notes for 3.8.4 and 3.9.5 are below: 3.8.4, 3.9.5,

Version 3.12.0

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.

Read full post gdoc_arrow_right_alt

Version 3.11.0

The 3.11.0 release of GEOS is now available to download.

This release includes new features for building “concave hulls” for both point and polygon input. For polygon input, the hull will be guaranteed to not cross into the interiors of the input polygons.

The line merger has been enhanced to support a mode that only merges lines which share orientation.

The offset curve algorithm has been updated to be more reliable for different kinds of semi-degenerate inputs, and may output different curves than the previous implementation, for those kinds of inputs. For “normal” inputs, the results should look very much like the old implementation.

As usual, numerous bugs have been fixed, and a few performance improvements discovered and implemented.

Read full post gdoc_arrow_right_alt