Como faço para remover linhas sobrepostas no PostGis
-
25-09-2019 - |
Pergunta
Eu tenho um banco de dados típico com milhões de polígonos como parcelas terrestres e quero dividir esses polígonos em linhas e remover as linhas que se sobrepõem. Essas linhas serão usadas puramente para renderizar no Mapnik/e//Geoserver, pois no momento todo limite de encomendas é renderizado duas vezes.
Proponho dividir os polígonos da encomenda em uma nova tabela ("Boundary_Lines") e, em seguida, pesquise e remova linhas sobrepostas. Como eu iria remover essas linhas sobrepostas no PostGis?
Solução
Use St_equals:
http://postgis.refrações.net/docs/st_equals.html
Sua declaração SQL provavelmente ficará assim:
SELECT y.id, z.id
FROM mytable y, mytable z
WHERE ST_Equals(y.the_geom,z.the_geom)
A consulta levará uma eternidade para correr, mas espero que você só precise fazer uma vez. Depois de executá -lo, tome os resultados e exclua cuidadosamente os IDs duplicados.
Observe que isso não se livra dos limites que não se sobrepõem exatamente.