Carollices

Corrigindo geometria inválida com PostGIS

Posted on: April 25, 2011

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)

Advertisements

1 Response to "Corrigindo geometria inválida com PostGIS"

Muito boa dica! =)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: