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.