Fungsi ini digunakan untuk memeriksa apakah dua objek berpotongan pada sumbu tertentu.
Sintaksis
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);Parameter
| Parameter | Deskripsi |
| geom | Geometri yang ingin Anda bandingkan. |
| traj | Trajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan. |
| traj1 | Trajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan. |
| traj2 | Trajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan. |
| box | Kotak pembatas yang ingin Anda bandingkan. |
| ts | Awal rentang waktu di mana Anda ingin mengekstraksi sub-trajektori. Parameter ini opsional. |
| te | Akhir rentang waktu di mana Anda ingin mengekstraksi sub-trajektori. Parameter ini opsional. |
Deskripsi
Fungsi ini memungkinkan Anda memeriksa apakah dua objek berpotongan dalam dimensi tertentu. Jika suatu dimensi tidak memiliki nilai tertentu, fungsi ini menganggap dimensi tersebut memiliki nilai apa pun.
Jika fungsi ini mencakup parameter ts dan te, maka ia membandingkan dua objek untuk memeriksa apakah sub-trajektori dari kedua objek tersebut dalam rentang waktu tertentu berpotongan. Jika fungsi ini tidak mencakup parameter ts atau te, maka ia membandingkan dua objek untuk memeriksa apakah trajektori lengkap dari kedua objek tersebut berpotongan. Kedua objek ditentukan oleh parameter traj atau traj1 dan parameter traj2.
Fungsi ST_Intersects(...) memberikan hasil yang sama dengan fungsi ST_2DIntersects(...) (jika salah satu objek yang ditentukan adalah geometri) atau fungsi ST_3DTIntersects(...) (jika kedua objek yang ditentukan adalah trajektori).
Contoh
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;
st_2dintersects | st_2dtintersects | st_3dintersects | st_3dtintersects
-----------------+------------------+-----------------+------------------
t | f | t | f