Lançamento do PostGIS 3.6 – 3D, raster e topologia ganham um novo impulso



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}

Observação: execute esses comandos após a migração do PostgreSQL ou a restauração das extensões.

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;

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *