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 |
|
|
Geometria a ser comparada. |
|
|
Trajetória de comparação ou a trajetória source da qual as subtrajetórias são extraídas. |
|
|
Bounding box para comparação. |
|
|
Intervalo de tempo a ser comparado. |
|
|
Início do intervalo de tempo para extração da subtrajetória. Opcional. |
|
|
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.
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.