Tengo una base de datos Spatialite con puntos. De vez en cuando ahora se agregan puntos. ¿Cuál sería la forma más fácil de eliminar duplicados en función de las coordenadas?
spatialite
johannes
fuente
fuente
Creo que lo más fácil es nunca dejar entrar el duplicado. Agregar una restricción única en el campo de geometría. No sé cómo funcionará eso en spaceiallite, pero en postgis la restricción compararía los cuadros delimitadores que sumergirán el efecto deseado en el caso de los puntos.
si no importa cuál de los duplicados eliminar, puede crear una consulta que elimine todas las filas con una identificación que no se encuentra en una subconsulta que selecciona las geometrías distintas. lo mismo aquí, seguro con puntos pero no con otros tipos, ya que solo se comparará el bbox, no la geometría real (si funciona de la misma manera que postgis).
/ Nicklas
fuente
(tomado de la respuesta de Denis Valeev aquí: /programming/3777633/delete-duplicate-rows-dont-delete-all-duplicate )
fuente
En mi caso, la forma más eficiente es usar el índice espacial de la capa. Con esta consulta, mantengo solo 1 geometría para cada entidad superpuesta. He realizado la prueba con un TIN convertido en Cadena de líneas.
Para comprender correctamente los índices espaciales, aquí hay dos consultas para convertir el índice espacial en polígonos.
En caso de éxito, recupere la columna de geometría para poder visualizar en su visor favorito:
fuente