All Products
Search
Document Center

ApsaraDB RDS:ST_{Z|T|2D|2DT|3D|3DT}Intersects

Last Updated:Mar 28, 2026

Returns true if two spatiotemporal objects share at least one point in the specified dimension. The function family covers six dimension variants — Z, T, 2D, 2DT, 3D, and 3DT — letting you test spatial intersection, temporal overlap, or both in a single query.

Syntax

bool ST_{2D|3D}Intersects(geometry geom, trajectory traj);
bool ST_{2D|3D}Intersects(trajectory traj, geometry geom);
bool ST_{2D|3D}Intersects(geometry geom, trajectory traj, timestamp ts, timestamp te);
bool ST_{2D|3D}Intersects(trajectory traj, geometry geom, timestamp ts, timestamp te);
bool ST_{Z|T|2D|2DT|3D|3DT}Intersects(boxndf box, trajectory traj);
bool ST_{Z|T|2D|2DT|3D|3DT}Intersects(trajectory traj, boxndf box);
bool ST_{Z|T|2D|2DT|3D|3DT}Intersects(boxndf box, trajectory traj, timestamp ts, timestamp te);
bool ST_{Z|T|2D|2DT|3D|3DT}Intersects(trajectory traj, boxndf box, timestamp ts, timestamp te);
bool ST_{2D|2DT|3D|3DT}Intersects(trajectory traj1, trajectory traj2);
bool ST_{2D|2DT|3D|3DT}Intersects(trajectory traj1, trajectory traj2, timestamp ts, timestamp te);

Parameters

ParameterDescription
geomThe geometry to compare.
trajThe trajectory to compare, or the original trajectory that includes the sub-trajectory to compare.
traj1The trajectory to compare, or the original trajectory that includes the sub-trajectory to compare.
traj2The trajectory to compare, or the original trajectory that includes the sub-trajectory to compare.
boxThe bounding box to compare.
tsThe start of the time range for extracting sub-trajectories. Optional.
teThe end of the time range for extracting sub-trajectories. Optional.

Description

If a dimension is not included in the variant name, it is unconstrained — the function treats that dimension as matching any value.

Time range behavior

With ts and te: the function extracts sub-trajectories from the two objects over the specified time range, then tests whether those sub-trajectories intersect.

Without ts and te: the function compares the complete trajectories.

Equivalences

ST_Intersects(...) delivers the same effect as:

  • ST_2DIntersects(...) when one argument is a geometry

  • ST_3DTIntersects(...) when both arguments are trajectories

Example

The following query tests four dimension variants against two trajectories in a single pass. Trajectory a runs from 03:15 to 05:16 on 2000-01-01; trajectory b runs from 02:17 to 03:43 on the same day.

WITH traj AS(
    SELECT (' {"trajectory":{"version":1,"type":"STPOINT","leafcount":6,"start_time":"2000-01-01 03:15:42","end_time":"2000-01-01 05:16:43",' ||
            '"spatial":"LINESTRING(2 2 0,33.042158099636 36.832684322819 0,47.244002354518 47.230026333034 0,64.978971942887 60.618813472986 0,77.621717839502 78.012496630661 0,80 78 0)",' ||
            '"timeline":["2000-01-01 03:15:42","2000-01-01 03:39:54","2000-01-01 04:04:06","2000-01-01 04:28:18","2000-01-01 04:52:31","2000-01-01 05:16:43"]}}')::trajectory a,
           ('{"trajectory":{"version":1,"type":"STPOINT","leafcount":4,"start_time":"2000-01-01 02:17:58.656079","end_time":"2000-01-01 03:43:59.620923",' ||
            '"spatial":"LINESTRING(40 2 0,15.17549143297 51.766017656152 0,1.444002354518 69.630026333034 0,3 70 0)","timeline":["2000-01-01 02:17:58.656079",' ||
            '"2000-01-01 02:46:38.977693","2000-01-01 03:15:19.299307","2000-01-01 03:43:59.620923"]}}')::trajectory b
)
SELECT ST_2dIntersects(a,b), ST_2dtIntersects(a,b), ST_3dIntersects(a,b), ST_3dtIntersects(a,b) from traj;

Result:

 st_2dintersects | st_2dtintersects | st_3dintersects | st_3dtintersects
-----------------+------------------+-----------------+------------------
 t               | f                | t               | f

The 2D and 3D variants both return t: the paths of a and b cross in the XY plane and in XYZ space. The 2DT and 3DT variants return f: although the two trajectories overlap in time (03:15–03:43), their paths do not cross during that shared window — so there is no point where both objects are at the same location at the same time.