Como visualizar dados GIS a partir de uma consulta SQL?

Veja a geometria da consulta num mapa ao lado da grade, sem copiar o texto para outro programa. Dá para desenhar um recorte e colar o polígono de volta no SQL.

Um POLYGON ou um POINT no resultado quase sempre aparece como texto. WKT, EWKT e GeoJSON cabem na célula, então o caminho usual é copiar, colar no QGIS ou abrir um viewer no navegador.

A consulta fica no cliente SQL e o mapa fica em outro programa. O recorte que você desenhou não volta para o editor.

O Kerry Studio desenha essa geometria ao lado da grade. O botão Mapa abre o recorte sobre o OpenStreetMap. Uma coluna de texto com WKT, EWKT ou GeoJSON já basta. Uma coluna nativa (geometry, SDO_GEOMETRY, POINT e as demais) pede o suporte espacial do motor.

Você vê o recorte, desenha o polígono e devolve esse SQL para o editor, sem passar por outro programa.

Como abrir o mapa

Você precisa de um workspace aberto, de uma aba SQL conectada e de um resultado com geometria. Sem coluna espacial e sem geometria nas células, o botão Mapa não aparece.

  1. Execute um SELECT que devolva uma coluna espacial, WKT, EWKT ou GeoJSON.
  2. No painel de resultados, clique em Mapa.
  3. A grade e o mapa ficam juntos. Arraste o divisor se quiser mais espaço para o mapa. O ícone de expandir abre o mapa numa janela sobreposta. Fechar mapa devolve o espaço inteiro à grade.

A paleta (⌘K / CtrlK) → Alternar mapa dos resultados faz o mesmo. O recorte não abre sozinho. Se você deixar aberto, a aba lembra.

Na célula da geometria, Ver no mapa abre um mapa só daquele valor, como o botão de JSON.

O que o mapa mostra

Cada coluna de geometria no resultado ganha uma cor. Ponto e área usam paletas diferentes. A legenda usa o nome da coluna, ou o alias se o SELECT tiver um. Se o SELECT tiver i.localizacao AS moradia e z.geom AS inundacao, a legenda mostra moradia e inundacao. O JOIN continua no SQL. O mapa só pinta o que já veio no resultado.

Um clique no pino abre um cartão com o nome dessa coluna no título e os outros valores da linha. A geometria não entra no cartão.

Ajustar visualização enquadra todas as geometrias do resultado. Na primeira vez que o mapa abre, esse enquadramento já vem aplicado. Inverter lon/lat só muda o desenho. O valor na grade permanece o que o banco devolveu.

Desenhar e devolver o polígono ao SQL

Laço, Retângulo e Elipse desenham sobre o mapa. Selecionar é a ferramenta padrão. Colar polígono no SQL insere, no cursor do editor, o polígono selecionado, ou todos os desenhos se nenhum estiver selecionado. Um polígono vira POLYGON. Vários viram a união espacial do dialeto da aba.

No PostgreSQL e no MySQL o Kerry cola ST_GeomFromText. No Oracle cola SDO_GEOMETRY. No SQLite cola GeomFromText. Esse SQL pede as funções espaciais do motor. O operador ST_Intersects continua sendo SQL do motor da aba.

Medidas mostra o tamanho de cada polígono, na unidade escolhida: m², ha ou km². Juntar une a seleção em um grupo e pinta a união. Dá para juntar uma geometria da consulta com um desenho.

O menu Exportar mapa grava PNG, SVG, WebP e GeoJSON. Imprimir usa os mesmos interruptores.

O que cada banco precisa

O Kerry não instala a extensão espacial por você. O mapa continua desenhando WKT, EWKT e GeoJSON que já vieram na célula, mesmo sem a extensão.

PostgreSQL. Pede a extensão PostGIS. Sem ela, GEOMETRY e GEOGRAPHY aparecem no criar tabela e no alterar tabela, e o Kerry avisa que o tipo pede PostGIS. No próprio PostgreSQL, CREATE EXTENSION postgis instala o PostGIS no banco.

MySQL e MariaDB. Os tipos espaciais são nativos (GEOMETRY, POINT, POLYGON e os demais). Não há extensão extra.

Oracle. Pede Locator ou Spatial. Sem o tipo SDO_GEOMETRY no banco, o Kerry avisa no criar tabela e no alterar tabela.

SQLite. Pede SpatiaLite. Na conexão SQLite, em Extensões, acrescente o arquivo da extensão e ligue Carregar ao conectar.

Funciona nos quatro motores da aba: PostgreSQL, MySQL/MariaDB, Oracle e SQLite. Uma consulta com @projeto.tabela de outro projeto materializa as linhas na conexão da aba. Se esse destino tiver GIS, a temporária usa o tipo espacial nativo. Se não tiver, a geometria vai como texto EWKT.

O detalhe de cada controle está em Mapa nos resultados.