2025 PostGIS & GEOS Release
2 min readMore by this author
I am excited to announce PostGIS 3.6 and GEOS 3.14.
The PostGIS spatial extension to PostgreSQL and the GEOS computational geometry library taken together provide much of the functionality of PostGIS, and are the open source focus of the (Crunchy Data) Snowflake PostGIS team.
Each year we work hard to ensure a release before the autumn PostgreSQL release, to ensure that the latest and greatest PostGIS and GEOS ready to be packaged with the latest PostgreSQL. All the critical issues are closed and the software tested and ready to go.
The 2025 release includes:
- Automated cleaning of dirty polygonal coverages!
- Many new 3D functions from the CGAL library are exposed in SQL.
- Enhanced logging of GDAL raster access for easier debugging and development.
- Simplified handling of PostgreSQL interrupts for better reliability.
- Numerous fixes for performance and bugs in GEOS and PostGIS.
The GEOS 3.14 release notes and PostGIS 3.6 release notes provide more detail on the other changes over the past year.
What is Coverage Cleaning
A “coverage” is a set of polygons that uniquely tile an area. There are lots of coverages in real life data. States are a coverage. Counties are a coverage. Parcels are a coverage. For any coverage, every point is either in one-and-only-one member of the coverage, or not in the coverage. No area should be covered twice.
A “classic” problem in spatial data management is “coverage cleaning” – repairing situations where there are gaps and/or overlaps in a polygonal coverage.
Clean coverages are very useful. If you know you have a clean coverage, you can very quickly merge neighboring polygons, or simplify adjacent edges.
What has been missing is any way to automatically repair invalid coverages – coverages with overlapping polygons, or with small gaps between polygons. End users have had to export their dirty data and run it through external tools like Mapshaper to get clean coverages.
With the new coverage cleaning functionality we have added to GEOS, PostGIS can clean dirty coverages via the ST_CoverageClean function.
CREATE TABLE polygons_clean AS (
SELECT
id,
ST_CoverageClean(geom, gapMaximumWidth => 10000) OVER () AS geom
FROM polygons);
The new versions of GEOS and PostGIS are already available in source code form at postgis.net and libgeos.org. Packagers will build them into standard PostgreSQL binary and cloud distributions over the coming months. Look for the latest versions in releases of PostgreSQL 18 this fall – you can check specific version numbers using the postgis_full_version()
function.
Related Articles
- 2025 PostGIS & GEOS Release
2 min read
- Get Excited About Postgres 18
7 min read
- Postgres Logging for Performance Optimization
19 min read
- Indexing JSONB in Postgres
5 min read
- Crunchy Data Joins Snowflake
5 min read