Todos os produtos
Search
Central de documentação

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

Última atualização: Sep 01, 2026

Retorna true se dois objetos espaço-temporais compartilharem pelo menos um ponto na dimensão especificada. Essa família de funções abrange seis variantes dimensionais — Z, T, 2D, 2DT, 3D e 3DT — e permite testar interseção espacial, sobreposição temporal ou ambas em uma única consulta.

Sintaxe

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);

Parâmetros

Parâmetro

Descrição

geom

Geometria a comparar.

traj

Trajetória a comparar ou trajetória original que contém a subtrajetória de comparação.

traj1

Primeira trajetória a comparar ou trajetória original que contém a subtrajetória correspondente.

traj2

Segunda trajetória a comparar ou trajetória original que contém a subtrajetória correspondente.

box

Bounding box a comparar.

ts

Início do intervalo de tempo para extração de subtrajetórias. Opcional.

te

Fim do intervalo de tempo para extração de subtrajetórias. Opcional.

Descrição

Se o nome da variante não incluir determinada dimensão, ela não terá restrições. Nesse caso, a função considera qualquer valor como correspondente para essa dimensão.

Comportamento do intervalo de tempo

Com ts e te, a função extrai subtrajetórias dos dois objetos no intervalo especificado e verifica se há interseção entre elas.

Sem ts e te, a função compara as trajetórias completas.

Equivalências

ST_Intersects(...) produz o mesmo efeito que:

  • ST_2DIntersects(...) quando um dos argumentos é do tipo geometry

  • ST_3DTIntersects(...) quando ambos os argumentos são trajetórias

Exemplo

A consulta a seguir testa quatro variantes dimensionais em duas trajetórias em uma única execução. A trajetória a vai de 03:15 a 05:16 em 2000-01-01; a trajetória b vai de 02:17 a 03:43 no mesmo dia.

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;

Resultado:

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

As variantes 2D e 3D retornam t: os caminhos de a e b se cruzam tanto no plano XY quanto no espaço XYZ. As variantes 2DT e 3DT retornam f: embora as duas trajetórias se sobreponham temporalmente (03:15–03:43), seus caminhos não se cruzam nessa janela compartilhada. Portanto, não há ponto em que ambos os objetos ocupem a mesma localização ao mesmo tempo.