Carollices

Archive for the ‘Geo’ Category

Tinha uns polígonos com geometria inválida aqui (uma pá deles, uns 5k),  e estava há algum tempo procurando uma forma de corrigí-los. Não é nada grave, eles têm “Self-intersection”, você descobre isso quando usa a função ST_IsValidReason do PostGIS, já que a ST_IsValid só diz se é válida ou não. Queria um jeito de corrigir dentro do próprio PostgreSQL e não usando outra ferramenta.

Baixei o gvsig, porque pretendo aprender a usá-lo, inclusive para corrigir esse tipo de problema, mas hoje, lendo o Introduction to PostGIS do OpenGeo, achei uma dica que poderia funcionar para o meu caso, e funcionou. :)

Bastou usar a função ST_Buffer, com um offset 0 (é, zero mesmo),  assim, a função vai gerar uma nova geometria, idêntica à original, de acordo com as regras de topologia da OGC e ela será válida. Simples assim. Lindo, né? :)

Exemplo:

SELECT ST_Buffer(the_geom, 0) FROM table WHERE NOT ST_IsValid(the_geom)


Twitter

Pages