Eu tenho um banco de dados espacial com pontos. De tempos em tempos, agora os pontos são adicionados. Qual seria a maneira mais fácil de remover duplicatas com base nas coordenadas?
spatialite
johannes
fonte
fonte
Eu acho que o mais fácil é nunca permitir que a duplicata entre. Adicione uma restrição exclusiva no campo de geometria. Não sei como isso funcionará no espaço espacial, mas no postgis o constrint compararia as caixas delimitadoras que mergulhariam o efeito desejado no caso de pontos.
se não importa qual das duplicatas remover, você poderá criar uma consulta que exclua todas as linhas com o ID não encontrado em uma subconsulta que seleciona as geometrias distintas. o mesmo aqui, seguro com pontos, mas não com outros tipos, pois somente a bbox será comparada e não a geometria real (se estiver funcionando da mesma maneira que o postgis).
/ Nicklas
fonte
(extraído da resposta de Denis Valeev aqui: /programming/3777633/delete-duplicate-rows-dont-delete-all-duplicate )
fonte
No meu caso, a maneira mais eficiente é usar o índice espacial da camada. Com esta consulta, mantenho apenas 1 geometria para cada recurso sobreposto. Eu fiz o teste com um TIN convertido em Linestring.
Para entender corretamente os índices espaciais, aqui estão duas consultas para converter o índice espacial em polígonos.
Com sucesso, recupere a coluna de geometria para poder visualizar em seu visualizador favorito:
fonte