Guia de Uso do PostGIS
O postgis
é um módulo de extensão espacial do PostgreSQL que oferece tipos e funções geométricas e espaciais, permitindo que o PostgreSQL armazene e consulte dados geoespaciais. Este artigo irá detalhar como instalar e usar o postgis
no ServBay.
Instalando o postgis
O ServBay já vem com o módulo de extensão postgis
incluído, você apenas precisa ativá-lo no banco de dados. Abaixo estão os passos para ativar o postgis
:
Conectar ao banco de dados PostgreSQL:
bashpsql -U seu_usuario -d seu_banco_de_dados
1Criar a extensão:
sqlCREATE EXTENSION postgis;
1Verificar a instalação:
sql\dx
1
Configurando o postgis
Após habilitar o postgis
, você pode criar e gerenciar tipos de dados espaciais e usar várias funções espaciais para operações.
Criando uma Tabela Espacial
A seguir está um exemplo de como criar uma tabela contendo dados espaciais.
Criar a tabela:
sqlCREATE TABLE locations ( id SERIAL PRIMARY KEY, name VARCHAR(100), geom GEOMETRY(Point, 4326) );
1
2
3
4
5Inserir dados de exemplo:
sqlINSERT INTO locations (name, geom) VALUES ('Localização A', ST_GeomFromText('POINT(116.4074 39.9042)', 4326)), ('Localização B', ST_GeomFromText('POINT(121.4737 31.2304)', 4326));
1
2
3
Criando um Índice Espacial
Para melhorar o desempenho das consultas, é recomendável criar um índice na coluna espacial.
- Criar um índice GIST:sql
CREATE INDEX idx_geom ON locations USING GIST (geom);
1
Realizando Consultas Espaciais com PostGIS
A seguir estão alguns exemplos de consultas espaciais comuns.
Consultar Distância
- Consultar a distância entre dois pontos:sql
SELECT ST_Distance( ST_GeomFromText('POINT(116.4074 39.9042)', 4326), ST_GeomFromText('POINT(121.4737 31.2304)', 4326) );
1
2
3
4
Consultar Relação de Contenção
- Consultar se um ponto está dentro de uma área específica:sql
SELECT name FROM locations WHERE ST_Contains( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom );
1
2
3
4
5
Consultar Vizinhança
- Consultar locais próximos a um ponto específico:sql
SELECT name FROM locations ORDER BY geom <-> ST_GeomFromText('POINT(116.4074 39.9042)', 4326) LIMIT 5;
1
2
3
Realizando Análises Espaciais com PostGIS
O postgis
oferece uma variedade de funções de análise espacial. A seguir estão alguns exemplos de funções analíticas comuns.
Análise de Buffer
- Criar um buffer:sql
SELECT ST_Buffer(geom, 0.01) FROM locations WHERE name = 'Localização A';
1
Análise de Intersecção
- Consultar a intersecção de dois objetos geométricos:sql
SELECT ST_Intersection( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom ) FROM locations WHERE name = 'Localização A';
1
2
3
4
Análise de União
- Unir múltiplos objetos geométricos:sql
SELECT ST_Union(geom) FROM locations;
1
Visualizando Dados Espaciais
Você pode usar várias ferramentas GIS (como QGIS) ou serviços de mapas web (como Leaflet e OpenLayers) para visualizar dados geoespaciais do postgis
.
Usando QGIS
Conectar ao banco de dados PostgreSQL:
- Abra o QGIS
- Selecione “Gerenciador de Fontes de Dados” -> “PostGIS”
- Insira as informações de conexão do banco de dados e conecte
Carregar dados espaciais:
- Selecione a tabela ou visualização que deseja carregar
- Clique no botão “Adicionar”
Usando Leaflet
- Criar um mapa web:html
<!DOCTYPE html> <html> <head> <title>Exemplo Leaflet PostGIS</title> <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> </head> <body> <div id="map" style="width: 600px; height: 400px;"></div> <script> var map = L.map('map').setView([39.9042, 116.4074], 10); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // Adicionar um marcador com dados do PostGIS var marker = L.marker([39.9042, 116.4074]).addTo(map) .bindPopup('Localização A') .openPopup(); </script> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Conclusão
O postgis
é um módulo de extensão espacial poderoso. Com configuração e uso simples, você pode realizar armazenamento e consultas eficientes de dados espaciais no PostgreSQL. O ServBay já possui o módulo de extensão postgis
incluído, basta seguir os passos deste artigo para instalar e configurar. Com diversas funcionalidades de consulta e análise espacial, você pode aproveitar melhor os dados espaciais e oferecer suporte robusto a aplicativos com seu banco de dados.