You are on page 1of 13

Introdução à Programação em SIG – Tutorial PostGis

Considerações iniciais…

A concepção deste segundo trabalho consiste no desenvolvimento de um tutorial que exponha os


procedimentos e a metodologia utilizada para a sua concepção de uma base de dados através da
linguagem SQL, com o suporte do software PostGis.
Este trabalho vem no seguimento do primeiro, uma vez que a concepção dos dados fora
desenvolvida no JOSM e posteriormente adicionados ao OpenStreetMap.

Fig.1 - Visão geral da área de intervenção, após editar as vias de acesso secundárias, cursos de água e
alguns pontos de interesse.

Neste sentido, os dados resultantes do desenho do OpenStreetMap, como se pode observar na


fig.1, foram importados para o PostGis, de modo a poder questiomnar a base de dados através da
linguagem SQL.

Andreia Soares Fecha 1


Introdução à Programação em SIG – Tutorial PostGis

No entanto, primeiramente, os dados foram importados para o programa Quantum Gis, de modo a
converter a geometria para shapefiles, para posteriormente serem importados para o PostGis /
PgAdmin III.

Neste sentido utilizei os seguintes procedimentos:


- Importar linhas:

Andreia Soares Fecha 2


Introdução à Programação em SIG – Tutorial PostGis

- Importar polignos:

- Importar Pontos

Andreia Soares Fecha 3


Introdução à Programação em SIG – Tutorial PostGis

- De modo a confirmar que as tabelas necessárias foram adicionadas, faz-se actualizar.

Andreia Soares Fecha 4


Introdução à Programação em SIG – Tutorial PostGis

Inquirição à base de dados:


Tabela Pontos
Query 1 – Selecciona a tabela pontos?
Linguagem SQL - select * from pontos

Query 2 – Selecciona somente a coluna name com os elementos da tabela pontos?


Linguagem SQL - select name from pontos

Andreia Soares Fecha 5


Introdução à Programação em SIG – Tutorial PostGis

Query 3 – Qual o nome a as coordenadas dos elementos constantes nas colunas da tabela
pontos?
Linguagem SQL - select name, the_geom from pontos

Query 4 – Qual o número de pontos realizados pelo user dreia_fecha, constantes na tabela
pontos?
Linguagem SQL - select count (pontos.user)from pontos where pontos.user like '%dreia_fecha%'

Andreia Soares Fecha 6


Introdução à Programação em SIG – Tutorial PostGis

Query 5 – Qual o nome dos pontos, a geometria e as coordenadas dos pontos realizados,
constantes na tabela pontos?
Linguagem SQL - select name, st_astext(the_geom) from pontos

Query 6 – Qual a designação completa dos pontos de interesse que começa pela letra “C”,
constantes na tabela pontos?
Linguagem SQL - select * from Pontos where name like'C%'

Segundo a consulta os resultados foram: o Centro de Saúde, a Central de Camionagem e


o Colégio de Albergaria.

Andreia Soares Fecha 7


Introdução à Programação em SIG – Tutorial PostGis

Tabela Linhas

Query 7 – Qual o número de linhas desenhadas pela user dreia_fecha?


Linguagem SQL - select count (linhas.user)from linhas where linhas.user like '%dreia_fecha%'

Query 8 – Qual o comprimento máximo da linha desenhada pelo user dreia_fecha?


Linguagem SQL - select max (length(the_geom)), user from linhas where linhas.user like
'%dreia_fecha%'

Andreia Soares Fecha 8


Introdução à Programação em SIG – Tutorial PostGis

Query 9 – Qual o código postal das estradas inseridas pelo utilizador "dreia_fecha", ordenado
pelo nome da rua?

A realização deste procedimento resulta da tabela linhas que já constava do projecto, e da tabela
CTT que foi posteriormente adicionada ao projecto.

Linguagem SQL -
select linhas.name as name, linhas.user as name, cttshapefile.cp4 as Codigo_Postal from linhas,
cttshapefile
where linhas.the_geom && cttshapefile.the_geom and
Contains(linhas.the_geom, linhas.the_geom) and linhas.user like '%dreia_fecha%' order by
linhas.name

Andreia Soares Fecha 9


Introdução à Programação em SIG – Tutorial PostGis

Query 10 – Quais são os rios desenhados pelo user dreia_fecha?

Linguagem SQL - select * from linhas where waterway like'%river%'

Query 11 – A que distância se encontra a Rua da Fonte da tabela linhas, do Centro de Saúde de
Albergaria – A-Velha da tabela pontos, desenhados pelo user dreia_fecha?

Linguagem SQL -
select linhas.name, pontos.user, pontos.name pontos, pontos.amenity, st_distance
(linhas.the_geom, pontos.the_geom) from linhas, pontos
where linhas.name like '%Rua da Fonte%'and pontos.name like '%Centro de Saúde de Albergaria-
A-Velha%'and pontos.user like 'dreia_fecha%'

Andreia Soares Fecha 10


Introdução à Programação em SIG – Tutorial PostGis

Tabela - Polígonos

Query 12 – Quantos polígnos foram desenhados pelo user dreia_fecha?

Linguagem SQL - select count (polignos.user)from polignos where polignos.user like


'%dreia_fecha%'

Andreia Soares Fecha 11


Introdução à Programação em SIG – Tutorial PostGis

Tabela - Ctt

Query 13 – Selecciona a tabela ctt?

Linguagem SQL - select * from cttshapefile

Andreia Soares Fecha 12


Introdução à Programação em SIG – Tutorial PostGis

Query 14 – Qual o código postal do nome das vias da tabela linhas?

Linguagem SQL - select linhas.name as name, cttshapefile.cp4 as Codigo_Postal from linhas,


cttshapefile

Andreia Soares Fecha 13

You might also like