Difference between revisions of "QGIS com Postgresql"

From Geomaster, Lda
Jump to navigation Jump to search
 
(12 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
+
[[Levadas da Madeira]]
  
Matadados
+
=== Do OpenStreetMap para Postgresql ===
  
EPSG:3763 (ETRS89/PT-TM06) - Continente
+
[[Importação das farmácias de Braga no OpenStreetMap]]
  
[https://epsg.io/5016 EPSG:5016] (ITRF93/PTRA08-UTM zona 28N) - Madeira, Porto Santo, Desertas e Selvagens
+
=== De shapefile para Postgresql ===
  
Codificação dos caracteres: ISO-8859-15
+
[[Importação da CAOP 2016 da Madeira]]
  
Confirmar na tabela de atributos os nomes aparecem bem codificados:
+
== Estilos ==
  
[[File:Tabela caop madeira.png]]
+
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
  
Database → DB Manager → DB Manager
+
[[File:Legenda personalizada.png]]
  
Já existe uma ligação.
+
[[Guardar e recuperar estilos]] em base de dados
  
[[File:Primeira ligacao com o db manager.png]]
+
== Consultas com o Gestor de Base de dados ==
  
Escolher o botão Import layer/file
+
=== Consultas simples em SQL ===
  
[[File:Erros na caop 2016 madeira.png]]
+
<syntaxhighlight lang="sql">
 +
select * from pontos
 +
where fclass = 'pharmacy'
 +
</syntaxhighlight>
  
=== Do OpenStreetMap para Postgresql ===
+
=== Consultas mais sofisticadas em SQL ===
  
Abrir http://overpass-turbo.eu/
+
<syntaxhighlight lang="sql">
 
+
select pontos.id, pontos.name as nome, st_buffer(pontos.geom, 500) as geom
Procurar no mapa por: Madeira
+
from pontos, caop
 
+
where caop.concelho = 'BRAGA' and st_contains(caop.geom, pontos.geom)
Escrever a seguinte consulta:
+
and pontos.fclass = 'pharmacy'
 
 
<syntaxhighlight lang="text">
 
/*
 
procurar todos os restaurantes na Madeira
 
*/
 
[out:json];
 
// gather results
 
(
 
  node["amenity"="restaurant"]({{bbox}});
 
);
 
// print results
 
out body;
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Executar a consulta
+
== Triggers ==
 
 
Exportar e escolher descarregar como geojson
 
 
 
[[File:Restaurantes osm overpass.png]]
 
 
 
Abrir o geojson no QGIS
 
 
 
[[File:Restaurantes da madeira em geojson no qgis.png]]
 
 
 
A codificação dos caracteres no GeoJson é UTF-8.
 
 
 
No QGIS, a camada é apresentada com a indicação de que se trata (e bem) do sistema de coordenadas EPSG:4326 (WGS84).
 
 
 
Ao passar a camada para a base de dados, indicar que pretendemos uma transformação do sistema EPSG:4326 para EPSG:5601.
 
 
 
=== De WFS para Postgresql ===
 
 
 
From WFS to Postgresql
 
 
 
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 ===
 
  
 
== 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/