Me gustaría poder comparar las características de la Capa 1 (fuente) con las características de la Capa 2 (actualizaciones de la fuente) para ver si alguna de las características de la geometría y / o atributos ha cambiado. También me gustaría tener un "informe" generado que indique lo que ha cambiado.
Editar para aclarar: los cambios en la geometría también incluyen la búsqueda de características que se han agregado a la nueva capa de datos. Puede ser interesante tener eliminaciones, pero las adiciones son más importantes.
He estado revisando las funciones de PostGIS y parece que no puedo encontrar ninguna herramienta diseñada para comparar e informar diferencias entre las características de 2 capas, tanto la geometría como los atributos.
Estoy buscando algo similar a la herramienta ArcGIS " Feature Compare ".
Si no hay nada como esto en PostGIS, ¿hay otras herramientas de código abierto que respondan a este tipo de preguntas? Gracias.
fuente
Respuestas:
Puede hacer comparaciones en filas en PostgreSQL con constructores de filas . Supongo que esto funcionaría con campos de geometría, pero no lo he probado.
Dadas dos tablas donde las características coincidentes tienen el mismo campo de identificación en cada una, podría hacer algo como:
Actualización: Esto funciona con campos de geometría en mis pruebas.
Actualización 2: Aquí hay un ejemplo más completo basado en sus criterios.
Tablas: t1 (id, att1, att2, geom) t2 (id, att1, att2, geom)
Eso debería darte lo que estás buscando. Probablemente desee cambiar la cláusula 'no en' a 'no existe' para un mejor rendimiento.
fuente
La función
ST_Equals(geometryA, geometryB)
devuelve VERDADERO si son espacialmente iguales.fuente