O PostGIS é, sem dúvida, o coração de qualquer infraestrutura WebGIS moderna.
Ele transforma o PostgreSQL em um verdadeiro motor de análise espacial, capaz de executar desde consultas simples até operações complexas de geoprocessamento.

Mas o que acontece quando combinamos o poder do PostGIS com a Inteligência Artificial (IA)? A resposta é simples e poderosa: análises espaciais automatizadas, executadas a partir de comandos em linguagem natural — sem precisar escrever SQL manualmente para cada consulta.

Imagine perguntar: “Quais bairros estão a menos de 500 metros dos rios?” ou “Quantos pontos de coleta existem por zona de drenagem?”

E o sistema traduzir isso automaticamente em SQL espacial, executar no PostGIS e retornar o resultado.

Neste post, você vai ver como isso é possível usando IA generativa + PostGIS, com exemplos práticos que podem ser aplicados em pipelines WebGIS reais.

1. A base: Consultas espaciais no PostGIS

O PostGIS fornece um conjunto extenso de funções espaciais, como:

  • ST_Within(geomA, geomB) → verifica se uma geometria está dentro de outra;
  • ST_Distance(geomA, geomB) → mede a distância entre objetos;
  • ST_Intersects(geomA, geomB) → identifica interseções;
  • ST_Buffer(geom, raio) → cria zonas de influência;
  • ST_Union(geom) → agrega polígonos em uma única geometria.

Essas funções são poderosas, mas escrever consultas SQL complexas pode ser demorado, especialmente em análises exploratórias.

2. Onde entra a IA

A IA atua como uma camada de tradução inteligente: ela entende o que o usuário quer (em linguagem natural) e gera o SQL equivalente em PostGIS.

Assim, é possível automatizar:

  • Consultas ad hoc (“quero saber quantos imóveis estão próximos de escolas”);
  • Relatórios recorrentes;
  • Geração de scripts de análise complexa (buffer + interseção + agregação);
  • Pipeline de integração com GeoServer e GeoNode.

3. IA + PostGIS + Python

O fluxo completo é simples:

  • O usuário faz uma pergunta em texto.
  • A IA interpreta e gera o SQL espacial.
  • O script executa o SQL no PostGIS e retorna o resultado.

Veja como fica o script:

import psycopg2
import openai
import pandas as pd

# Configurações
DB = {"dbname": "gisdb", "user": "gis", "password": "123", "host": "localhost"}
MODEL = "gpt-4o-mini"

# Conectar ao PostGIS
conn = psycopg2.connect(**DB)
cur = conn.cursor()

# Entrada em linguagem natural
pergunta = "Liste os bairros que estão a menos de 500 metros dos rios."

# Prompt para IA gerar SQL
prompt = f"""
Você é um assistente especializado em PostGIS.
Com base na pergunta abaixo, gere uma consulta SQL válida para PostgreSQL/PostGIS.
As tabelas disponíveis são:
- bairros (id, nome, geom)
- rios (id, nome, geom)
Pergunta: {pergunta}
"""

resposta = openai.ChatCompletion.create(
    model=MODEL,
    messages=[{"role": "user", "content": prompt}]
)

sql = resposta.choices[0].message.content.strip()
print(" SQL gerado pela IA:\n", sql)

# Executar consulta no banco
cur.execute(sql)
rows = cur.fetchall()

# Exibir resultados
df = pd.DataFrame(rows, columns=["bairro"])
print("\n Bairros próximos dos rios:\n", df)

O resultado desse script será uma lista com os bairros próximos 500 metros dos rios.

A IA compreendeu a intenção e construiu o SQL espacial correto sem que o usuário precisasse saber SQL.

4. Na prática

Podemos transformar esse conceito em uma ferramenta real de automação:

  • Um chatbot geoespacial conectado ao PostGIS, que responde perguntas e executa consultas automaticamente.
  • Um relatório inteligente, onde as queries são geradas dinamicamente.
  • Um backend WebGIS que recebe comandos em texto e alimenta camadas no GeoServer.

Por Exemplo:

“Crie um buffer de 1000 metros ao redor das escolas e publique o resultado no GeoServer.”

A IA gera a tabela no banco (CREATE TABLE buffer_escolas AS SELECT ST_Buffer(geom, 1000)) e faz a chamada REST API do GeoServer para publicar a nova camada. Tudo em um único fluxo automatizado.

Você pode ir além e usar a IA para:

  • Gerar relatórios automatizados em texto (HTML ou PDF) com gráficos e mapas;
  • Detectar análises espaciais recorrentes e agendá-las;
  • Explicar resultados de forma compreensível para gestores não técnicos.

Exemplo de prompt para explicação:

“Explique o resultado da consulta SQL abaixo em linguagem simples e escreva um resumo técnico.”

A IA retorna algo como: “Foram identificados 12 bairros localizados a menos de 500 metros de rios. Essa análise é útil para estudos de vulnerabilidade a inundações e planejamento urbano.”

5. Conclusão

Combinar IA com PostGIS é um passo natural na evolução das análises geoespaciais. Com poucos ajustes, é possível transformar consultas em linguagem natural em SQLs complexos, prontas para execução abrindo caminho para dashboards e sistemas WebGIS inteligentes.