Trabalho nº2 – Marcos Correia

O presente trabalho é a continuação do trabalho 1, em que era pedido a vectorização de um determinada área:

A partir do Site OpenStreetMaps exportou-se um ficheiro .osm referente à imagem sendo este convertido em shapefile no Quantum Gis. No ArcMap modificou-se as coordenadas existentes de graus para metros (Hayford Gauss IGEOE).


Os dados foram em seguidas inseridos numa base de dados no software Postgres.


Após a criação e actualização da base de dados inquiriu-se (criaram-se querys) a base de dados utilizando a linguagem SQL.

Decidiu-se dividir as querys em quatro (4) tipos: pontos, linhas, polígonos e complexas (no sentido de se conjugar diferentes tipos de shapefiles).


Pontos:

- Query 1:

Qual o nome e o tipo de pontos criados pelo utilizador?

select "user", name, amenity from pontos_project where "user"

like'Markus Javas' order by amenity asc

Resposta:

Linhas:

- Query 2:

Qual foi o número de linhas feita pelo utilizador Markus Javas?

select count("user") from linhas_project where "user" like

'Markus Javas'

Resposta:




- Query 3:

Qual foi a distância (em metros) vectorizada pelo utilizador Markus Javas?

select sum(st_length(the_geom)), user from linhas_project where

linhas_project.user
like 'Markus Javas'

Resposta:


- Query 4:

Qual o comprimento das vias efectuado pelo utilizador Markus Javas
sem valor nulo?

select st_length(the_geom), linhas_project.user,

linhas_project.name from linhas_project where

linhas_project.user ilike 'Markus Javas'
and not(linhas_project.name like 'null')

and linhas_project.name like '%%'
order by st_length(the_geom) desc

Resposta:

(P.S: Apenas uma amostra da resposta obtida está representada)

- Query 5:

Qual o comprimento da maior via?
select max(st_length(the_geom)) from linhas_project

Resposta:


Polígonos:

- Query 6:

Qual o número de polígonos feito pelo utilizador Markus Javas?

select count(user) from poligonos_project where "user" like

'Markus Javas'



Resposta:




- Query 7:

Qual a área total vectorizada pelo utilizador Markus Javas?

select sum(st_area(the_geom)), user from

poligonos_project wherepoligonos_project.user

like 'Markus%'

Resposta:


- Query 8:
Quais os perímetros dos polígonos feitos pelo utilizador Markus Correia. ordenadas ascendentemente pelo perímetro?
select st_perimeter(the_geom), "user" from poligonos_project

where "user" ilike 'Markus Javas'
order by st_perimeter(the_geom) asc
Resposta:

- Query 9:

Qual a área com menor valor?
select min(st_area(the_geom)) from poligonos_project

Resposta:



Complexas:


- Query 10:

Qual a distância dos bares que se encontram a menos de 200m da rua pedonal à mesma rua?
select linhas_project.highway, pontos_project.amenity, 

st_distance(linhas_project.the_geom, pontos_project.the_geom)
from linhas_project, pontos_project
where pontos_project.amenity like 'bar' and linhas
_project.highway like 'footway'

and st_distance(linhas_project.the_geom,
pontos_project.the_geom) <200


Resposta:


- Query 11

Há alguma intersecção entre pontos e polígonos?
(select name, tags from pontos_project) intersect

(select name, tags from poligonos_project)

Resposta:



- Query 12:

Quais são os pontos existentes com código postal igual a 4520 e sem valores nulos?
select name, cp4 from pontos_project, cttshape_project where

cp4 like '4520' and not
(name like 'null') and name like '%%'

Resposta:



Trabalho de Marcos Correia





0 comentários:

Enviar um comentário

 
Copyright © MSIGOT