7 votos

¿Por qué 3d caja &&& check devuelva true para esto?

Me pregunto por qué esta &&& está volviendo true?

SELECT ST_MakePoint(0,0,0) &&& ST_3DMakeBox(
  ST_MakePoint(-1,-1,-1),
  ST_MakePoint(1,1,-1)
);

Cuando estos &&& devuelve false

SELECT ST_MakePoint(0,0,0) &&& ST_3DMakeBox(
  ST_MakePoint(-1,-1,-1),
  ST_MakePoint(1,-1,-1)
);

SELECT ST_MakePoint(0,0,0) &&& ST_3DMakeBox(
  ST_MakePoint(-1,-1,-1),
  ST_MakePoint(-1,1,-1)
);

Ir a través de los X-Y, puedo ver un no-intersección de los rangos hace que el 3d-prueba de devolver false. Sin embargo, un no-intersección en el eje Z, incluso con &&& todavía está volviendo realidad.

    postgis_full_version                                                                           
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 POSTGIS="2.2.2 r14797" GEOS="3.5.1-CAPI-1.9.1 r4246" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 2.1.2, released 2016/10/24" LIBXML="2.9.3" LIBJSON="0.12.1" RASTER
(1 row)

Sólo un Ubuntu 17.04 stock de instalar.

4voto

MBCook Puntos 8316

Estás viendo este comportamiento porque el &&& operador se define entre dos geometry argumentos, no entre dos box3d argumentos. En PostGIS 2.2 y anteriores, el reparto de box3d a geometry caer las Z ordenadas, provocando (entre otras cosas) el comportamiento extraño que estáis viendo aquí. Más información en el ticket correspondiente.

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