Todos os produtos
Search
Central de documentação

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

Última atualização: Sep 01, 2026

Retorna true se o primeiro argumento estiver totalmente contido no segundo argumento ao longo do eixo especificado. Esta função opera da mesma forma que a função ST_ndContains.

Sintaxe

bool ST_TWithin(tsrange r, trajectory traj);
bool ST_TWithin(trajectory traj, tsrange r);
bool ST_2DWithin(geometry geom, trajectory traj);
bool ST_2DWithin(trajectory traj, geometry geom);
bool ST_2DWithin(geometry geom, trajectory traj, timestamp ts, timestamp te);
bool ST_2DWithin(trajectory traj, geometry geom, timestamp ts, timestamp te);
bool ST_{2D|2DT|3D|3DT}Within(trajectory traj, boxndf box);
bool ST_{2D|2DT|3D|3DT}Within(trajectory traj, boxndf box, timestamp ts, timestamp te);

Parâmetros

Parâmetro

Descrição

geom

Geometria a ser comparada.

traj

Trajetória de comparação ou a trajetória source da qual as subtrajetórias são extraídas.

box

Bounding box para comparação.

r

Intervalo de tempo a ser comparado.

ts

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

te

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

Descrição

A família de funções abrange três eixos:

  • ST_TWithin — verifica a contenção no eixo temporal (apenas tempo).

  • ST_2DWithin — valida a contenção no espaço 2D (X/Y), com restrição opcional a uma janela de tempo [ts, te].

  • ST_{2DT|3D|3DT}Within — avalia a contenção em espaço 2D + tempo, espaço 3D ou espaço 3D + tempo, utilizando um bounding box boxndf, opcionalmente restrito a uma janela de tempo.

Quando ts e te são fornecidos, a função avalia apenas a subtrajetória dentro dessa janela de tempo, em vez de analisar a trajetória completa.

Nota

Esta função não oferece suporte a tipos de geometria como POLYHEDRALSURFACE.

Exemplo

O exemplo abaixo verifica se uma geometria (b) está contida em uma trajetória (a) no espaço 2D.

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,
           '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)'::geometry b
)
SELECT ST_2dWithin(b,a) from traj;
 st_2dwithin
-------------
 t

O resultado t (true) confirma que b está contido em a no espaço 2D.