Open Street Map

Da GeoBox

Índice

Contribuir para o Open Street Map

O editor JOSM

O editor JOSM foi (e está a ser) desenvolvido especificamente para editar informação do Open Street Map.

Por favor instale o JOSM para podermos fazer uma sessão com este. Como está escrito em JAVA, corre em qualquer computador. Existe uma versão do JOSM para Windows pronto a instalar.

Nas preferências, vamos por já o nosso username/password do OSM.

Ciclo de trabalho

  1. Descarregar a área onde desejo trabalhar
  2. Editar (acrescentar, remover, alterar)
  3. Carregar as edições (ou salvar o trabalho e continuar depois)

Modo básico

  • Selecionar (s)
  • Adicionar (a)

Garantir a conetividade da rede viária

Fazer um exemplo com um cruzamento que se transforma numa rotunda.

Trabalho de Campo

Utilização de um GPS + Fotografias

Esta técnica, muito simples, baseia-se na utilização de um GPS vulgar e de uma também vulgar máquina fotográfica para registar dados no campo.

OSMTracker

É um programa que permite muito facilmente registar muito mais do que apenas o percurso.

Walking papers

Tirar partido dos Dados

O OSM será tão mais interessante quanto melhor, mais completo e actualizado for o seu mapa. Terá sempre uma vantagem: nos locais mais remotos, com menos interesses, poderá haver uma cobertura e qualidade ímpar que nunca interessará às soluções comerciais.

Com a ferramenta map compare da Geofabrick, tão simples quanto interessante, é possível verificar que em locais remotos a probabilidade dos mapas comerciais falharem aumenta.

Passar o Open Street Map para uma base de dados

Portugal

Espanha

Importar os limites da Galiza

Recortar as tabelas do OSM pelos limites da Galiza

Explorar o Modelo de dados do OSM em SQL

Depois de importar os dados com o osm2pgsql, convém estudar como esta ferramenta representa os dados do OSM em 4 tabelas. Deve-se consultar o shema utilizado pelo osm2pgsql.

Há várias entidades que podem ser representadas por geometrias diferentes. Na descrição das entidades, no Wiki do OSM, há sempre a indicação de quais são as geometrias aconselhadas para cada tipo de entidade. Por exemplo, para as farmácias, são indicadas duas geometrias possíveis: ponto ou área. Por isso, para saber todas as farmácias existentes, é preciso pesquisar nas tabelas planet_osm_point e planet_osm_polygon.

Explorar alguns elementos registados como pontos

Quantas farmácias estão registadas no OSM?

SELECT COUNT(*)
FROM galicia_point
WHERE amenity = 'pharmacy'

Quantas farmácias sem nome estão registadas?

SELECT osm_id, amenity, name
FROM galicia_point
WHERE amenity = 'pharmacy' AND name IS NULL

Que tipos de equipamentos (marcadas como amenity) estão registados?

SELECT DISTINCT amenity 
FROM galicia_point

Qual é o tipo de equipamento mais abundante?

SELECT amenity, COUNT(*)
FROM galicia_point
GROUP BY amenity
ORDER BY COUNT(*) DESC

Onde estão as farmácias sem nome?

Opção 1

SELECT 'http://www.openstreetmap.org/browse/node/' || osm_id, amenity, name
FROM galicia_point
WHERE amenity = 'pharmacy' AND name IS NULL

Opção 2

SELECT osm_id, name, amenity, osm_user, municipios.nombre
FROM galicia_point, municipios
WHERE 
amenity = 'pharmacy' 
AND name IS NULL 
AND st_contains(wkb_geometry, way)

Counting the pharmacies with no name by municipality

SELECT COUNT(p.*), m.nombre
FROM galicia_point p, municipios m
WHERE 
amenity = 'pharmacy' 
AND name IS NULL 
AND st_contains(wkb_geometry, way)
GROUP BY m.nombre
ORDER BY COUNT(p.*) DESC

Explorar alguns elementos registados como polígonos

SELECT 'http://www.openstreetmap.org/browse/way/' || osm_id, amenity, name
FROM galicia_polygon
WHERE amenity = 'pharmacy' AND name IS NULL

Explorar alguns elementos registados como linhas

Quantas autoestradas estão registadas?

SELECT osm_id, highway, oneway, bridge, tunnel, name, REF
FROM galicia_line
WHERE highway = 'motorway'

Quantos Km de autoestrada estão registados? Lembre-se que as auto-estradas estão registadas como duas linhas independentes, paralelas, mas em sentidos contrários.

SELECT SUM(st_length(way))/2 AS metros
FROM galicia_line
WHERE highway = 'motorway'

Calcular cumprimento e visualizar troços de auto-estrada

SELECT 'http://www.openstreetmap.org/browse/way/' || osm_id AS url, name, REF, st_length(way)
FROM galicia_line
WHERE highway = 'motorway'

Pegar num dos url resultantes e abrir no browser:

http://www.openstreetmap.org/browse/way/23231379

CREATE TABLE autoestrada AS
SELECT osm_id, 'http://www.openstreetmap.org/browse/way/' || osm_id AS url, 
name, REF, bridge, tunnel, oneway, st_length(way) AS cumprimento, way
FROM galicia_line
WHERE highway = 'motorway'

Actualizar o catálogo dos metadados (tabela geometry_columns):

SELECT Populate_Geometry_Columns('public.autoestrada'::regclass);

Publicar dados do OSM noutros contextos

OSM + Geoserver + OpenLayers

Publicar directamente um tema, recorrendo ao SQL do Geoserver.

Usar a base do Open Street Map para outros projectos

Separar restaurantes, e criar um layer vectorial com os mesmos.

Esse layer é editável e dá para conter informação que não existe no OSM.

Calcular cobertura do Open Street Map

Sacar as farmácias da Galiza

Calcular tarefas

Bibliografia

[1]

Ferramentas pessoais