Nova versão: PostGIS 3.6.0 (lançada em 2 de setembro de 2025)
O PostGIS 3.6.0 está disponível desde 2 de setembro de 2025. Ele foi projetado para funcionar com o PostgreSQL 12 a 18 beta 3, requer GEOS 3.8+ (com otimizações para GEOS 3.14+) e Proj 6.1+. Para ativar todos os recursos do SFCGAL, é necessária a versão 2.2.0+. (PostGIS)
Disponibilidade e download do PostGIS
O PostGIS é a extensão espacial mais utilizada para o PostgreSQL, mas sua disponibilidade varia de acordo com o sistema operacional e a versão do PostgreSQL. É importante escolher a versão estável adequada ao seu ambiente para evitar problemas de compatibilidade e garantir a confiabilidade de seus processamentos geoespaciais.
A tabela abaixo resume as versões estáveis e experimentais disponíveis de acordo com os principais sistemas:
Sistema | Versão PostgreSQL | Versão PostGIS estável | Versão experimental / Beta | Link para download / Instalação |
---|---|---|---|---|
Windows | 15 | 3.5.3 | 3.6 (apenas testes) | Via StackBuilder incluído no PostgreSQL: Extensões > Extensões espaciais > PostGIS 3.5.3 Documentation PostGIS Windows |
Ubuntu / Debian | 15 | 3.5 | 3.6 (compilação de código-fonte) | sudo apt install postgis postgresql-15-postgis-3.5 PostGIS packages Ubuntu/Debian |
RedHat / CentOS / Fedora | 15 | 3.5 | 3.6 (compilação de código-fonte) | sudo dnf install postgis31_15 PostGIS packages RPM |
Linux(todas as distribuições) | Todas | Compilação de código-fonte | Última versão dev (3.6+) | PostGIS source |
Dicas práticas
- A versão 3.6 ainda não está oficialmente disponível para Windows.
- As versões experimentais destinam-se apenas a testes e à descoberta de novas funcionalidades.
- No Windows, o StackBuilder facilita a instalação e a atualização das dependências.
- No Linux, a compilação a partir das fontes permite aceder às funcionalidades mais recentes, mas requer uma configuração correta do PostgreSQL e das bibliotecas de desenvolvimento.
Compatibilidade e ambientes necessários
- Versões compatíveis: PostgreSQL 12 → 18 beta 3
- Pré-requisitos essenciais:
- GEOS ≥ 3.8, idealmente 3.14+ para desempenho e novas funções
- PROJ ≥ 6.1
- SFCGAL ≥ 2.2 para explorar plenamente as funções 3D (PostGIS)
Novas funcionalidades importantes
CG_Simplify, CG_3DAlphaWrapping para manipulação de elementos 3D
Transformações geométricas: escala, rotação, translação, buffer 3D, etc. (PostGIS)
Cobertura e topologia:
ST_CoverageClean(…): garante uma cobertura limpa (sem sobreposições, bordas alinhadas, preenchimento de lacunas). Exemplo de uso: CREATE TABLE example_clean AS SELECT id, ST_CoverageClean(geom) OVER () AS geom FROM example; Útil para validar a geometria de uma cobertura. (PostGIS)
Processamentos raster:
ST_AsRasterAgg: converte eficientemente uma geometria em raster durante a agregação.
ST_ReclassExact: reclassificação rápida e precisa dos valores raster.
ST_IntersectionFractions: cálculo das frações de sobreposição das células raster com UE geométrica (requer GEOS 3.14).
postgis.gdal_cpl_debug (GUC): registro de mensagens GDAL no PostgreSQL. (PostGIS)
Alterações importantes/alterações significativas a serem observadas
ST_TileEnvelope: os envelopes agora estão restritos à extensão dos blocos (tile plane extent). (PostGIS)
geometry_columns: remoção das verificações de restrições, afetando fluxos de trabalho antigos. (PostGIS)
Depreciação das funções topológicas integer: agora substituídas por sua versão bigint. (PostGIS)
Alteração para TIN / PolyhedralSurface: use ST_NumPatches e ST_PatchN em vez de ST_NumGeometries, que não retornam mais as subgeometrias. (PostGIS)
Remoção de st_approxquantil
3D / SFCGAL :
CG_Simplify
,CG_3DAlphaWrapping
para manipulação de elementos 3D- Transformações geométricas: escala, rotação, translação, buffer 3D, etc.. (PostGIS)
Cobertura e topologia:
ST_CoverageClean(...)
: garante uma cobertura limpa (sem sobreposições, bordas alinhadas, preenchimento de lacunas). Exemplo de uso: CREATE TABLE example_clean AS SELECT id, ST_CoverageClean(geom) OVER () AS geom FROM example;
Útil para validar a geometria de uma cobertura. (PostGIS)
Processamentos raster:
ST_AsRasterAgg
: converte eficientemente uma geometria em raster durante a agregação.ST_ReclassExact
: reclassificação rápida e precisa dos valores raster.ST_IntersectionFractions
: cálculo das frações de sobreposição das células raster com UE geométrica (requer GEOS 3.14).postgis.gdal_cpl_debug
(GUC) : registro de mensagens GDAL no PostgreSQL. (PostGIS)
Alterações importantes/alterações significativas a serem observadas
ST_TileEnvelope
: os envelopes agora estão restritos à extensão dos blocos (tile plane extent). (PostGIS)geometry_columns
: remoção das verificações de restrições, afetando fluxos de trabalho antigos. (PostGIS)- Depreciação das funções topológicas integer: agora substituídas por sua versão bigint. (PostGIS)
- Alteração para TIN / PolyhedralSurface: use ST_NumPatches e ST_PatchN em vez de ST_NumGeometries, que não retornam mais as subgeometrias. (PostGIS)
- Remoção de st_approxquantile(raster, precisão dupla), inutilizável na prática.(PostGIS)
Processo de atualização
Para migrar para o PostGIS 3.6 (3.0 para 3.6):
SELECT postgis_extensions_upgrade();
Para versões ≤ 2.5:
ALTER EXTENSION postgis UPDATE;
SELECT postgis_extensions_upgrade();
“` :contentReference[oaicite:10]{index=10}
Casos de uso avançados
Limpeza 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;
Reclassificação de raster
SELECT ST_ReclassExact(rast, '[(1,10,100),(11,20,200)]') AS reclass_rast
FROM raster_table;
Simulação 3D simples
SELECT CG_3DAlphaWrapping(geom) FROM building_wall;