3 votos

¿Cuándo una comparación de geometría PostGIS usando ~= devuelve true cuando ST_Equals devuelve false?

Tengo un par de featureclasses en una geodatabase 10.2 / base de datos PostgreSQL 9.2.2 y he estado luchando con la herramienta FeatureCompare - me está diciendo que las geometrías son diferentes en algunas características donde sé que son al menos espacialmente iguales.

Por suerte, tengo un ID y pude unir las 2 tablas en PGAdmin y comparar la geometría. El ~= y ST_Equals devuelven verdadero para cada fila. Entonces modifiqué 1 característica moviendo 1 vértice 800 pies al sur.

Cuando ejecuto mi consulta, ST_Equals devuelve false, que es lo que esperaba. Pero ~= sigue devolviendo true??? ¿Por qué?

select t1.shape,t2.shape ,(t1.shape ~= t2.shape) as exactequal , ST_Equals(t1.shape , t2.shape) spatialequal, (t1.shape = t2.shape) bndequal
from  pg.Test1 t1
inner join pt.Bnd2 t2
on t1.polygon_id=t2.polygon_id
where t1.objectid = 6389

enter image description here

Intento averiguar si se trata de un error o si estoy malinterpretando a los operadores.

"PostgreSQL 9.2.2, compilado por Visual C++ build 1600, 64-bit"
" POSTGIS="2.0.4" GEOS="3.4.2-CAPI-1.8.2 r0" PROJ="Rel. 4.8.0, 6 de marzo de 2012" GDAL="GDAL 1.10.0, publicado el 24/04/2013"

6voto

Lars Mæhlum Puntos 4569

Como dice el documento ~= sólo compara los recuadros delimitadores. Así que si usted mueve un punto de una manera que no cambia la caja delimitadora ~ = todavía devuelve verdadero.

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