Validação topológica de poligonos

From OpenStreetMap Wiki
Jump to navigation Jump to search

1º Passo: Saber quantos poligonos existem na BD OSM em Portugal

SQL querie


Select count (p.*)
FROM planet_osm_polygon p

AfonsoC1.jpg

Numero total de polígonos - 30656

2º Passo: Criar nova tabela com os poligonos que contem erros topológicos

Regras stadartizadas (OGC SFSQL), utilizadas pelo PostGis:

1 - Área do polígono deve estar fechada;

2 - Poligonos que definem espaços vazios devem estar dentro dos limites exteriores do poligono exterior;

3 - Não deve haver intersecções entre os polígonos;

4 - Os polígonos não se podem tocar excepto nos pontos;


Tipo de erro detectado

1 - Erro: "Interior is disconnected"

2 - Erro: "Hole lies outside shell"

3 - Erro: "Self-intersection"

4 - Erro: "Ring Self-intersection"


SQL querie

CREATE TABLE validacao_poligonos AS
SELECT p.name, p.amenity, p.landuse, ST_IsValidReason(p.way), p.osm_id, way
FROM planet_osm_polygon p
WHERE NOT ST_IsValid(p.way);


AfonsoC2.jpg


Foi criada uma tabela onde se pode observar os polígonos com erros topológicos. Nesta tabela pode-se ainda observar o tipo de erro de cada polígono e ainda saber se esses polígonos têm "name", "amenity" ou "landuse". Dos 30656 polígonos existentes na BD, foram detectados 102 erros topológicos. Apesar de terem sido detectados os quatro tipos de erros supracitados, o erro "Self-intersection" ocorre com mais frequência.

3º Passo: Criação de link para a correcção dos polígonos com erros topológicos.

SQL querie

CREATE TABLE validacao_poligonos_id_link AS
SELECT v.name, v.amenity, v.landuse,'http://www.openstreetmap.org/browse/way/'|| '' || v.osm_id AS "Link", v.osm_id
FROM validacao_poligonos v


AfonsoC3.jpg


Com a utilização do "link" criado é possível aceder ao poligono e efectuar a devida correcção.

External links

OpenGeo