Nueva versión: PostGIS 3.6.0 (publicada el 2 de septiembre de 2025)
PostGIS 3.6.0 está disponible desde el 2 de septiembre de 2025. Está diseñado para funcionar con PostgreSQL 12 a 18 beta 3, requiere GEOS 3.8+ (con optimizaciones para GEOS 3.14+) y Proj 6.1+. Para habilitar todas las funciones de SFCGAL, se requiere la versión 2.2.0+. (PostGIS)
Disponibilidad y descarga de PostGIS
PostGIS es la extensión espacial más utilizada para PostgreSQL, pero su disponibilidad varía según el sistema operativo y la versión de PostgreSQL. Es importante elegir la versión estable adecuada para su entorno a fin de evitar problemas de compatibilidad y garantizar la fiabilidad de sus procesamientos geoespaciales.
La siguiente tabla resume las versiones estables y experimentales disponibles según los principales sistemas:
Sistema | Versión de PostgreSQL | Versión estable de PostGIS | Versión experimental / Beta | Enlace de descarga / Instalación |
---|---|---|---|---|
Windows | 15 | 3.5.3 | 3.6 (solo pruebas) | A través de StackBuilder incluido en PostgreSQL: Extensiones > Extensiones espaciales > PostGIS 3.5.3 Documentation PostGIS Windows |
Ubuntu / Debian | 15 | 3.5 | 3.6 (compilación de código fuente) | sudo apt install postgis postgresql-15-postgis-3.5 PostGIS packages Ubuntu/Debian |
RedHat / CentOS / Fedora | 15 | 3.5 | 3.6 (compilación de código fuente) | sudo dnf install postgis31_15 PostGIS packages RPM |
Linux (todas distros) | Todas | Compilación de código fuent) | Última versión dev (3.6+) | PostGIS source |
Consejos prácticos
- La versión 3.6 aún no está disponible oficialmente para Windows.
- Las versiones experimentales están destinadas únicamente a realizar pruebas y descubrir nuevas funcionalidades.
- En Windows, StackBuilder facilita la instalación y la actualización de las dependencias.
- En Linux, la compilación desde las fuentes permite acceder a las últimas funcionalidades, pero requiere una configuración correcta de PostgreSQL y de las bibliotecas de desarrollo.
Compatibilidad y requisitos del entorno
- Versiones compatibles: PostgreSQL 12 → 18 beta 3
- Requisitos previos esenciales:
- GEOS ≥ 3.8, idealmente 3.14+ para un mejor rendimiento y nuevas funciones.
- PROJ ≥ 6.1
- SFCGAL ≥ 2.2 para aprovechar al máximo las funciones 3D (PostGIS).
Nuevas funciones destacadas
3D / SFCGAL :
CG_Simplify
,CG_3DAlphaWrapping
para la manipulación de elementos 3D.- Transformaciones geométricas: escalado, rotación, traslación, búfer 3D, etc. (PostGIS)
Cobertura y topología:
ST_CoverageClean(...)
: garantiza una cobertura limpia (sin solapamientos, bordes alineados, relleno de huecos). Ejemplo de uso: CREATE TABLE example_clean AS SELECT id, ST_CoverageClean(geom) OVER () AS geom FROM example;
Útil para validar la geometría de una cobertura. (PostGIS)
Procesamientos ráster:
ST_AsRasterAgg
: convierte eficazmente una geometría en ráster durante la agregación.ST_ReclassExact
: reclasificación rápida y precisa de los valores ráster.ST_IntersectionFractions
: cálculo de las fracciones de superposición de las celdas ráster con UE geométrica (requiere GEOS 3.14).postgis.gdal_cpl_debug
(GUC) : registro de mensajes GDAL en PostgreSQL. (PostGIS)
Cambios importantes / Cambios significativos a tener en cuenta
ST_TileEnvelope
: las envolturas ahora están restringidas a la extensión de los mosaicos (tile plane extent). (PostGIS)geometry_columns
: eliminación de las verificaciones de restricciones, lo que afecta a los antiguos flujos de trabajo. (PostGIS)- Depreciación de las funciones topológicas integer: ahora sustituidas por su versión bigint.. (PostGIS)
- Cambio para TIN / PolyhedralSurface: utilizar ST_NumPatches y ST_PatchN en lugar de ST_NumGeometries, que ya no devuelven las subgeometrías. (PostGIS)
- Eliminación de st_approxquantile(raster, doble precisión), inutilizable en la práctica. (PostGIS)
Proceso de actualización
Para migrar a PostGIS 3.6 (3.0 a 3.6):
SELECT postgis_extensions_upgrade();
Para versiones ≤ 2.5:
ALTER EXTENSION postgis UPDATE;
SELECT postgis_extensions_upgrade();
«` :contentReference[oaicite:10]{index=10}
Casos de uso avanzados
Limpieza de cobertura impura
WITH dirty AS (
SELECT id, geom FROM coverage_table
)
SELECT id, ST_AsText(ST_CoverageInvalidEdges(geom) OVER ()) AS invalid_geom
FROM dirty;
CREATE TABLE coverage_clean AS
SELECT id, ST_CoverageClean(geom) OVER () FROM dirty;
SELECT id, ST_AsText(ST_CoverageInvalidEdges(geom) OVER ()) FROM coverage_clean;
Reclasificación de ráster
SELECT ST_ReclassExact(rast, '[(1,10,100),(11,20,200)]') AS reclass_rast
FROM raster_table;
Simulación 3D simple
SELECT CG_3DAlphaWrapping(geom) FROM building_wall;