Você está na página 1de 25
Neste tutorial será construído uma base de dados em PostGIS, de acordo com o trabalho
Neste tutorial será construído uma base de dados em PostGIS, de acordo com o trabalho

Neste tutorial será construído uma base de dados em PostGIS, de acordo com o trabalho realizado em OSM.

Pretende-se deste modo explicar a metodologia e procedimentos realizados, desde a vectorização na ferramenta de edição JOSM, do OpenStreetMap, até à introdução dos dados em PostGIS.

Para a implementação do projecto numa base de dados será necessário recorrer a vários softwares:

Ferramenta de edição JOSM; Quantum GIS; PostGIS Shapefile and DBF Loader; pgAdmin III

a vários softwares: Ferramenta de edição JOSM; Quantum GIS; PostGIS Shapefile and DBF Loader; pgAdmin III
1º Abrir um projecto no Quantum Gis:
1º Abrir um projecto no Quantum Gis:
2º Adicionar o ficheiro OSM da área de trabalho: - Através do comando Load OSM
2º Adicionar o ficheiro OSM da área de trabalho:
- Através do comando Load OSM from file
escolho o directório do ficheiro ( )
( ) e obtenho, deste modo, a área de trabalho em OSN (Area_PVL) no Qgis:
( ) e obtenho, deste modo, a área de trabalho em OSN (Area_PVL) no Qgis:
Na nova janela atribuo um nome ao ficheiro e faço gravar 1º Selecciono o layer
Na nova janela atribuo um nome ao ficheiro e faço gravar
Na nova janela atribuo um nome ao ficheiro e faço gravar
Na nova janela atribuo um nome ao ficheiro e faço gravar 1º Selecciono o layer pretendido,

Selecciono o layer pretendido, Exemplo: Area_PVL points e com o botão do lado direito do rato, escolho o campo Save as shapefile .

pretendido, Exemplo: Area_PVL points e com o botão do lado direito do rato, escolho o campo
pretendido, Exemplo: Area_PVL points e com o botão do lado direito do rato, escolho o campo
2º Após a ordem para fazer guardar, abrir-se-á uma nova janela onde devo definir o
2º Após a ordem para fazer guardar, abrir-se-á uma nova janela onde devo definir o
2º Após a ordem para fazer guardar, abrir-se-á uma nova janela onde devo definir o

2º Após a ordem para fazer guardar, abrir-se-á uma nova janela onde devo definir o sistema de coordenadas que quero atribuir à shapefile. Por defeito, estava em WGS 84 (coordenadas geográficas) e no qual irei transformar para WGS 84/UTM 29N - EPSG: 32629 (coordenadas projectadas):

WGS 84 (coordenadas geográficas) e no qual irei transformar para WGS 84/UTM 29N - EPSG: 32629
WGS 84 (coordenadas geográficas) e no qual irei transformar para WGS 84/UTM 29N - EPSG: 32629
3º Realizar os mesmos procedimentos para os restantes layers de modo a obter três shapefiles
3º Realizar os mesmos procedimentos para os restantes layers de modo a obter três shapefiles
3º Realizar os mesmos procedimentos para os restantes layers de modo a obter três shapefiles

Realizar os mesmos procedimentos para os restantes layers de modo a obter três shapefiles do tipo pontual (pontos); linear (vias) e poligonal (edificios):

para os restantes layers de modo a obter três shapefiles do tipo pontual (pontos); linear (vias)
para os restantes layers de modo a obter três shapefiles do tipo pontual (pontos); linear (vias)
1º Abrir o pgAdmin III e conectar o servidor localgeobox:
1º Abrir o pgAdmin III e conectar o servidor localgeobox:
1º Abrir o pgAdmin III e conectar o servidor localgeobox:

Abrir o pgAdmin III e conectar o servidor localgeobox:

1º Abrir o pgAdmin III e conectar o servidor localgeobox:
1º Abrir o pgAdmin III e conectar o servidor localgeobox:
2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:

Criar uma nova base de dados, designada de “planhoso”:

2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:

Criar uma nova base de dados, designada de “planhoso”:

2º Criar uma nova base de dados, designada de “planhoso”:
2º Criar uma nova base de dados, designada de “planhoso”:
3º Depois de actualizar as Bases de Dados existentes, podemos verificar a existência da base
3º Depois de actualizar as Bases de Dados existentes, podemos verificar a existência da base
3º Depois de actualizar as Bases de Dados existentes, podemos verificar a existência da base

Depois de actualizar as Bases de Dados existentes, podemos verificar a existência da base de dados anteriormente criada: “planhoso” e que esta è constituída por duas tabelas (a referência espacial e a geometria) adicionadas por defeito.

“planhoso” e que esta è constituída por duas tabelas (a referência espacial e a geometria) adicionadas
“planhoso” e que esta è constituída por duas tabelas (a referência espacial e a geometria) adicionadas
Após a concepção da base de dados, pretende-se adicionar a informação contida nos ficheiros shp,
Após a concepção da base de dados, pretende-se adicionar a informação contida nos ficheiros shp,
Após a concepção da base de dados, pretende-se adicionar a informação contida nos ficheiros shp,

Após a concepção da base de dados, pretende-se adicionar a informação contida nos ficheiros shp, exportados na etapa anterior para o nosso projecto, de modo acrescentar mais 3 tabelas à 2 pré- existentes.

Para tal, recorre-se ao PostGIS Shapefile and DBF Loader:

de modo acrescentar mais 3 tabelas à 2 pré- existentes. Para tal, recorre-se ao PostGIS Shapefile
( .) e preencho todos os campos necessários e importo as shapefiles (edificios; pontos e
( .) e preencho todos os campos necessários e importo as shapefiles (edificios; pontos e
( .) e preencho todos os campos necessários e importo as shapefiles (edificios; pontos e

( .) e preencho todos os campos necessários e importo as shapefiles (edificios; pontos e vias) para a base de dados “planhoso”:

Directório do ficheiro. shp
Directório do ficheiro. shp
Username: geobox Password: geobox
Username: geobox
Password: geobox
Nome da B. Dados
Nome da B. Dados
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N
SRID correspondente ao
sistema de coordenadas
WGS 84/UTM 29N
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes
SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes

Realizar o mesmo procedimento para as restantes shapefiles

SRID correspondente ao sistema de coordenadas WGS 84/UTM 29N Realizar o mesmo procedimento para as restantes
Por fim, e de volta ao pgAdmin III, actualizo a base de dados “planhoso” e
Por fim, e de volta ao pgAdmin III, actualizo a base de dados “planhoso” e
Por fim, e de volta ao pgAdmin III, actualizo a base de dados “planhoso” e

Por fim, e de volta ao pgAdmin III, actualizo a base de dados “planhoso” e verifico que esta já contem a informação importada no passo anterior .

actualizo a base de dados “planhoso” e verifico que esta já contem a informação importada no
actualizo a base de dados “planhoso” e verifico que esta já contem a informação importada no
O SQL é uma linguagem usada para comunicar com bases de dados. Os comandos da
O SQL é uma linguagem usada para comunicar com bases de dados. Os comandos da SQL são usados
para realizar operações tais como alterar / actualizar dados numa base de dados, ou responder a
questões a partir da informação armazenada numa base de dados.
Foi aplicado à base de dados “planhoso” as seguintes queries:
1) Quais as vias que começam por ‘E’:
select * from vias where name like 'E%'
2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas): select name,
2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas): select name,
2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas): select name,

2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas):

select name, st_astext(the_geom) from vias

2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas): select name, st_astext(the_geom)
2)Qual a geometria da tabela vias (o tipo de geometria e as coordenadas): select name, st_astext(the_geom)
3) Qual o número de linhas (vias) editadas por mim: select count (vias.user) from vias
3) Qual o número de linhas (vias) editadas por mim: select count (vias.user) from vias
3) Qual o número de linhas (vias) editadas por mim: select count (vias.user) from vias

3) Qual o número de linhas (vias) editadas por mim:

select count (vias.user) from vias where vias.user like '%ana_costa%'

from vias where vias.user like '%ana_costa%' 4) Qual o número de áreas (edifícios) editados por mim:

4) Qual o número de áreas (edifícios) editados por mim:

select count (edificios.user) from edificios where edificios.user like '%ana_costa%'

editados por mim: select count (edificios.user) from edificios where edificios.user like '%ana_costa%'
editados por mim: select count (edificios.user) from edificios where edificios.user like '%ana_costa%'
5) Qual o somatório do nº de linhas acrescentados pelo user “ana_costa”? select sum (st_length(the_geom)),
5) Qual o somatório do nº de linhas acrescentados pelo user “ana_costa”? select sum (st_length(the_geom)),
5) Qual o somatório do nº de linhas acrescentados pelo user “ana_costa”? select sum (st_length(the_geom)),

5) Qual o somatório do nº de linhas acrescentados pelo user “ana_costa”? select sum (st_length(the_geom)), user from vias where vias.user like '%ana_costa%'

user from vias where vias.user like '%ana_costa%' 6) Qual o somatório do nº áreas dos polígonos

6) Qual o somatório do nº áreas dos polígonos acrescentados pelo user “ana_costa”? select sum (st_area(the_geom)), user from edificios where edificios.user like '%ana_costa%'

user “ana_costa”? select sum (st_area(the_geom)), user from edificios where edificios.user like '%ana_costa%'
user “ana_costa”? select sum (st_area(the_geom)), user from edificios where edificios.user like '%ana_costa%'
7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user
7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user
7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user

7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user like '%ana_costa%'

7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user like
7) Qual nome das ruas (vias) que editei? select vias.user, vias.name from vias where vias.user like
8) Qual nome dos edifícios (áreas) que editei? select edificios.user, edificios.name from edificios where
8) Qual nome dos edifícios (áreas) que editei? select edificios.user, edificios.name from edificios where
8) Qual nome dos edifícios (áreas) que editei? select edificios.user, edificios.name from edificios where

8) Qual nome dos edifícios (áreas) que editei? select edificios.user, edificios.name from edificios where edificios.user like '%ana_costa%'

(áreas) que editei? select edificios.user, edificios.name from edificios where edificios.user like '%ana_costa%'
(áreas) que editei? select edificios.user, edificios.name from edificios where edificios.user like '%ana_costa%'
9) Qual o nome das vias e o respectivo código postal? select vias.name as name,
9) Qual o nome das vias e o respectivo código postal? select vias.name as name,
9) Qual o nome das vias e o respectivo código postal? select vias.name as name,

9) Qual o nome das vias e o respectivo código postal? select vias.name as name, vias.user as name, cttshapefile.cp4 as Codigo_Postal from vias, cttshapefile

código postal? select vias.name as name, vias.user as name, cttshapefile.cp4 as Codigo_Postal from vias, cttshapefile
código postal? select vias.name as name, vias.user as name, cttshapefile.cp4 as Codigo_Postal from vias, cttshapefile
10) Qual o código postal das vias, editadas por mim e ordenadas pelo nome das
10) Qual o código postal das vias, editadas por mim e ordenadas pelo nome das
10) Qual o código postal das vias, editadas por mim e ordenadas pelo nome das

10) Qual o código postal das vias, editadas por mim e ordenadas pelo nome das ruas? select vias.name as name, vias.user as name, cttshapefile.cp4 as Codigo_Postal from vias, cttshapefile where vias.the_geom && cttshapefile.the_geom and contains(vias.the_geom, vias.the_geom) and vias.user like '%ana_costa%' order by vias.name

and contains(vias.the_geom, vias.the_geom) and vias.user like '%ana_costa%' order by vias.name
and contains(vias.the_geom, vias.the_geom) and vias.user like '%ana_costa%' order by vias.name
11) Qual a distância de uma determinada rua (ex.: Avenida da República) que editei de
11) Qual a distância de uma determinada rua (ex.: Avenida da República) que editei de uma escola?
select vias.name, edificios.user, edificios.name edificios, edificios.amenity, st_distance (vias.the_geom,
edificios.the_geom)
from vias, edificios where vias.name like '%Avenida da República%' and edificios.amenity like '%school%'
and edificios.user like '%ana_costa%'
11) Quais as casas da cultura que se encontram 200 metros da avenida principal (Avenida
11) Quais as casas da cultura que se encontram 200 metros da avenida principal (Avenida da
República)?
select vias.name, edificios.user, edificios.name edificios, edificios.amenity, st_distance (vias.the_geom,
edificios.the_geom)
from vias, edificios where vias.name like '%Avenida da República%' and edificios.amenity like
'%arts_centre%'
and edificios.user like 'ana_costa%'and st_distance (vias.the_geom, edificios.the_geom) <= 200
order by st_distance (vias.the_geom, edificios.the_geom)