Relaciones siempre y alguna vez
eContains({geometry,trgeometry},{geometry,trgeometry}) → boolean
aContains({geometry,trgeometry},{geometry,trgeometry}) → boolean
eCovers({geometry,trgeometry},{geometry,trgeometry}) → boolean
aCovers({geometry,trgeometry},{geometry,trgeometry}) → boolean
eDisjoint({geometry,trgeometry},{geometry,trgeometry}) → boolean
aDisjoint({geometry,trgeometry},{geometry,trgeometry}) → boolean
eDwithin({geometry,trgeometry},{geometry,trgeometry},float) → boolean
aDwithin({geometry,trgeometry},{geometry,trgeometry},float) → boolean
eIntersects({geometry,trgeometry},{geometry,trgeometry}) → boolean
aIntersects({geometry,trgeometry},{geometry,trgeometry}) → boolean
eTouches({geometry,trgeometry},{geometry,trgeometry}) → boolean
aTouches({geometry,trgeometry},{geometry,trgeometry}) → boolean
Las relaciones alguna vez determinan si la relación se cumple en algún instante, y las relaciones siempre si se cumple en todos los instantes. Una geometría rígida temporal las responde sobre el cuerpo que su geometría de referencia sitúa en cada instante, de modo que la relación leída es la del cuerpo situado y no la de la geometría de referencia en el origen.
SELECT eIntersects(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(3 3),0)@2001-01-03]', geometry 'Polygon((0 0,0 2,2 2,2 0,0 0))'); -- true SELECT aIntersects(trgeometry 'Polygon((0 0,1 0,1 1,0 1,0 0)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(3 3),0)@2001-01-03]', geometry 'Polygon((0 0,0 2,2 2,2 0,0 0))'); -- false
eDwithin y aDwithin utilizan la distancia temporal de “Operaciones de distancia”, con los mismos requisitos sobre las geometrías. En el ejemplo, un cuadrado gira junto a un punto. Está a distancia 2 del punto en los dos instantes, pero se acerca a menos de 1.7 del punto entre ellos.
SELECT eDwithin(trgeometry 'Polygon((-1 -1,1 -1,1 1,-1 1,-1 -1)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(0 0),1.5707963267948966)@2001-01-02]', geometry 'Point(3 0)', 1.7); -- true SELECT aDwithin(trgeometry 'Polygon((-1 -1,1 -1,1 1,-1 1,-1 -1)); [Pose(Point(0 0),0)@2001-01-01, Pose(Point(0 0),1.5707963267948966)@2001-01-02]', geometry 'Point(3 0)', 1.7); -- false