Difference between revisions of "QGIS com Postgresql"

From Geomaster, Lda
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
== Importação de dados ==
 
== Importação de dados ==
  
=== De shapefile para Postgresql ===
+
=== De KML para Postgresql ===
 
 
CAOP 2016
 
  
Matadados
+
[[Levadas da Madeira]]
 
 
EPSG:3763 (ETRS89/PT-TM06) - Continente
 
 
 
EPSG:5016 (ITRF93/PTRA08-UTM zona 28N) - Madeira, Porto Santo, Desertas e Selvagens
 
 
 
Codificação dos caracteres: ISO-8859-15
 
  
 
=== Do OpenStreetMap para Postgresql ===
 
=== Do OpenStreetMap para Postgresql ===
  
Abrir http://overpass-turbo.eu/
+
[[Importação das farmácias de Braga no OpenStreetMap]]
  
Procurar no mapa por: Madeira
+
=== De shapefile para Postgresql ===
  
Escrever a seguinte consulta:
+
[[Importação da CAOP 2016 da Madeira]]
  
<syntaxhighlight lang="text">
+
== Estilos ==
/*
 
procurar todos os restaurantes na Madeira
 
*/
 
[out:json];
 
// gather results
 
(
 
  node["amenity"="restaurant"]({{bbox}});
 
);
 
// print results
 
out body;
 
</syntaxhighlight>
 
  
Executar a consulta
+
Dados importados do portal [http://www.geosaude.dgs.pt/websig/v5/portal2/public/index.php?par=geosaude Geosaúde], e convertidos do sistema de coordenadas EPSG:3857 (PSEUDO MERCATOR) para EPSG:3763. ndicador: Nascimentos em mulheres adolescentes
  
Exportar e escolher descarregar como geojson
+
[[File:Legenda personalizada.png]]
  
[[File:Restaurantes osm overpass.png]]
+
[[Guardar e recuperar estilos]] em base de dados
  
Abrir o geojson no QGIS
+
== Consultas com o Gestor de Base de dados ==
  
[[File:Restaurantes da madeira em geojson no qgis.png]]
+
=== Consultas simples em SQL ===
  
A codificação dos caracteres no GeoJson é UTF-8.
+
<syntaxhighlight lang="sql">
 +
select * from pontos
 +
where fclass = 'pharmacy'
 +
</syntaxhighlight>
  
No QGIS, a camada é apresentada com a indicação de que se trata (e bem) do sistema de coordenadas EPSG:4326 (WGS84).
+
=== Consultas mais sofisticadas em SQL ===
  
Ao passar a camada para a base de dados, indicar que pretendemos uma transformação do sistema EPSG:4326 para EPSG:5601.
+
<syntaxhighlight lang="sql">
 
+
select pontos.id, pontos.name as nome, st_buffer(pontos.geom, 500) as geom
=== De WFS para Postgresql ===
+
from pontos, caop
 
+
where caop.concelho = 'BRAGA' and st_contains(caop.geom, pontos.geom)
From WFS to Postgresql
+
and pontos.fclass = 'pharmacy'
 
+
</syntaxhighlight>
http://snig.dgterritorio.pt/geoportal/catalog/search/resource/details.page?uuid=%7B43E66CC9-B345-4AFC-821C-57854FF6827C%7D
 
 
 
https://stackoverflow.com/questions/37861262/create-multiple-postgres-instances-on-same-machine
 
 
 
=== De KML para Postgresql ===
 
 
 
== Estilos ==
 
 
 
Guardar e recuperar estilos
 
 
 
== Consultas com o Gestor de Base de dados ==
 
 
 
=== Consultas simples em SQL ===
 
  
=== COnsultas mais sofisticadas em SQL ===
+
== Triggers ==
  
 
== Notificações Postgresql ==
 
== Notificações Postgresql ==

Latest revision as of 09:08, 14 January 2019

Ligação ao Postgresql

QGIS → Layer → Add layer → Add PostGIS Layers...

Preencher o diálogo como na imagem, substituindo o IP por: xxx.xxx.xxx.xxx

Primeira ligacao postgresql.png

Importação de dados

De KML para Postgresql

Levadas da Madeira

Do OpenStreetMap para Postgresql

Importação das farmácias de Braga no OpenStreetMap

De shapefile para Postgresql

Importação da CAOP 2016 da Madeira

Estilos

Dados importados do portal Geosaúde, e convertidos do sistema de coordenadas EPSG:3857 (PSEUDO MERCATOR) para EPSG:3763. ndicador: Nascimentos em mulheres adolescentes

Legenda personalizada.png

Guardar e recuperar estilos em base de dados

Consultas com o Gestor de Base de dados

Consultas simples em SQL

select * from pontos
where fclass = 'pharmacy'

Consultas mais sofisticadas em SQL

select pontos.id, pontos.name as nome, st_buffer(pontos.geom, 500) as geom 
from pontos, caop
where caop.concelho = 'BRAGA' and st_contains(caop.geom, pontos.geom)
and pontos.fclass = 'pharmacy'

Triggers

Notificações Postgresql

Não seria incrível poder atualizar o layer se houver mudanças na base de dados?

http://oslandia.com/en/2017/10/07/refresh-your-maps-from-postgresql/