5 votos

¿Cómo comparar la geometría en PostGiS?

Tengo dos mesas.
1 tabla tiene srid=4326
2 tabla tienen srid=70066

Quiero comparar las columnas de geometría de estas tablas. Encuentro la función ST_Equals(geometry, geometry) pero no es lo que quiero. Necesito algo que pueda comparar geometrías que son ligeramente diferentes entre sí como en la imagen.

enter image description here

ACTUALIZACIÓN
Tengo un polígono de prueba en tablas con área=9098.79m^2 en la primera tabla y con área=9721.82m^2 en la segunda tabla. Intento esta consulta

SELECT   st_area(ST_Intersection(ST_TRANSFORM(filedata.the_geom,70066),filedata_temp.the_geom))
FROM filedata, filedata_temp
Where filedata.num=1

srid=70066 es un sistema de coordenadas rectangulares

y obtengo el resultado de la consulta 8910.5625 ¿por qué tanto?

10voto

Frank Krueger Puntos 27508

Creo que tendrá que decidir ciertos criterios que definan la igualdad para usted y que probablemente se den en su aplicación. Es muy difícil definir la semejanza para todos los casos que son "visualmente" similares. Por ejemplo: ¿Es lo mismo un círculo en el sentido de las agujas del reloj que un círculo en sentido contrario en el mismo lugar? ¿Es lo mismo un círculo que su aproximación con líneas rectas?

Las soluciones sencillas en el caso anterior podrían consistir en comparar el área de sus cajas de intersección o de delimitación dentro de un rango de error. Eso garantizará al menos que los polígonos estén aproximadamente en la misma ubicación y tengan aproximadamente el mismo tamaño. Asegúrese de evaluar los casos de prueba a ambos lados del umbral de lo que espera que sea igual y desigual.

Una consulta básica podría ser la siguiente select ... where st_area(st_intersection(geom1, st_transform(geom2, srid1))) < threshold (no se ha comprobado la sintaxis)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X