Basic concepts
Bounding box-processing operators check whether the bounding boxes of two objects meet a specified spatio-temporal relationship. Each operator combines an operator mark (which defines the relationship type) with optional dimension marks (which control which dimensions are evaluated).
Operator marks
Three operator marks are supported:
| Mark | Operator type | Description |
|---|---|---|
&& or & |
INTERSECT | The bounding boxes of the two objects intersect. |
@> |
INCLUDE | The bounding box of the left operand contains the bounding box of the right operand. |
<@ |
INCLUDED | The bounding box of the left operand is contained by the bounding box of the right operand. |
Dimension marks
Two dimension marks are supported:
| Mark | Dimension |
|---|---|
/ |
z dimension |
# |
t dimension |
The position of a dimension mark relative to the operator mark determines which dimensions are evaluated:
-
Dimension mark between operator marks (for example,
&#&): the operator evaluates the specified dimension in addition to the x and y dimensions. -
Dimension mark on both sides of the operator mark (for example,
#&#): the operator evaluates only the specified dimension. The x, y, and other dimensions are excluded.
An operator with no dimension mark evaluates a two-dimensional (x and y) relationship only. When both dimension marks are present, the z dimension mark precedes the t dimension mark.
Operator and dimension mark combinations
The following examples show how operator marks and dimension marks combine to produce different evaluation behaviors.
Two-dimensional intersection (no dimension mark)
-- Checks whether the 2D bounding boxes of two objects intersect (x and y dimensions only)
geometry_a && geometry_b
Three-dimensional intersection (z dimension mark between operator marks)
-- Checks whether the bounding boxes intersect across the x, y, and z dimensions
geometry_a &/& geometry_b
Time-only intersection (t dimension mark on both sides)
-- Checks whether the bounding boxes intersect in the t dimension only
geometry_a #&# geometry_b
Four-dimensional intersection (z and t dimension marks between operator marks)
-- Checks whether the bounding boxes intersect across the x, y, z, and t dimensions
-- z dimension mark precedes t dimension mark
geometry_a &/#& geometry_b