Mengembalikan true jika dua objek spasial-temporal berbagi setidaknya satu titik dalam dimensi yang ditentukan. Keluarga fungsi ini mencakup enam varian — Z, T, 2D, 2DT, 3D, dan 3DT — yang memungkinkan pengujian perpotongan spasial, tumpang tindih temporal, atau keduanya dalam satu kueri.
Sintaks
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 akan dibandingkan. |
traj | Trajektori yang akan dibandingkan, atau trajektori asli yang mencakup sub-trajektori untuk dibandingkan. |
traj1 | Trajektori yang akan dibandingkan, atau trajektori asli yang mencakup sub-trajektori untuk dibandingkan. |
traj2 | Trajektori yang akan dibandingkan, atau trajektori asli yang mencakup sub-trajektori untuk dibandingkan. |
box | Kotak pembatas yang akan dibandingkan. |
ts | Awal rentang waktu untuk mengekstraksi sub-trajektori. Opsional. |
te | Akhir rentang waktu untuk mengekstraksi sub-trajektori. Opsional. |
Deskripsi
Jika suatu dimensi tidak termasuk dalam nama varian, dimensi tersebut tidak dibatasi—fungsi memperlakukannya sebagai cocok dengan nilai apa pun.
Perilaku rentang waktu
Dengan ts dan te, fungsi mengekstraksi sub-trajektori dari kedua objek dalam rentang waktu yang ditentukan, lalu menguji apakah sub-trajektori tersebut saling berpotongan.
Tanpa ts dan te, fungsi membandingkan trajektori lengkap.
Kesetaraan
ST_Intersects(...) memberikan hasil yang sama seperti:
ST_2DIntersects(...)ketika salah satu argumen berupageometryST_3DTIntersects(...)ketika kedua argumen berupa trajektori
Contoh
Kueri berikut menguji empat varian terhadap dua trajektori dalam satu eksekusi. Trajektori a berlangsung dari pukul 03.15 hingga 05.16 pada tanggal 2000-01-01; trajektori b berlangsung dari pukul 02.17 hingga 03.43 pada hari yang sama.
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;Hasil:
st_2dintersects | st_2dtintersects | st_3dintersects | st_3dtintersects
-----------------+------------------+-----------------+------------------
t | f | t | fVarian 2D dan 3D keduanya mengembalikan t: lintasan a dan b saling bersilangan di bidang XY maupun ruang XYZ. Varian 2DT dan 3DT mengembalikan f: meskipun kedua trajektori tumpang tindih dalam waktu (03.15–03.43), lintasan mereka tidak saling bersilangan selama jendela waktu bersama tersebut—sehingga tidak ada titik di mana kedua objek berada di lokasi yang sama pada waktu yang sama.