全部产品
Search
文档中心

:ST_{2D|2DT|3D|3DT}DWithin

更新时间:Jul 02, 2025

Fungsi ini digunakan untuk memeriksa apakah jarak antara dua objek pada sumbu tertentu kurang dari atau sama dengan ambang batas yang ditentukan.

Sintaksis

bool ST_{2D|3D}DWithin(geometry geom, trajectory traj, float8 dist);
bool ST_{2D|3D}DWithin(trajectory traj, geometry geom, float8 dist);
bool ST_{2D|3D}DWithin(geometry geom, trajectory traj, timestamp ts, timestamp te, float8 dist);
bool ST_{2D|3D}DWithin(trajectory traj, geometry geom, timestamp ts, timestamp te, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(boxndf box, trajectory traj, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(trajectory traj, boxndf box, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(boxndf box, trajectory traj, timestamp ts, timestamp te, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(trajectory traj, boxndf box, timestamp ts, timestamp te, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(trajectory traj1, trajectory traj2, float8 dist);
bool ST_{2D|2DT|3D|3DT}DWithin(trajectory traj1, trajectory traj2, timestamp ts, timestamp te, float8 dist);

Parameter

ParameterDeskripsi
geomGeometri yang ingin Anda bandingkan.
trajTrajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan.
traj1Trajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan.
traj2Trajektori yang ingin Anda bandingkan, atau trajektori asli yang mencakup sub-trajektori yang ingin Anda bandingkan.
boxKotak pembatas yang ingin Anda bandingkan.
tsAwal rentang waktu di mana Anda ingin mengekstraksi sub-trajektori. Parameter ini opsional.
teAkhir rentang waktu di mana Anda ingin mengekstraksi sub-trajektori. Parameter ini opsional.
distAmbang batas untuk jarak antara dua objek.

Deskripsi

  • Untuk operasi 2D dan 3D, fungsi ini memeriksa apakah jarak antara proyeksi dua dimensi atau tiga dimensi dari dua objek kurang dari atau sama dengan ambang batas yang ditentukan.
  • Untuk operasi 2DT dan 3DT, fungsi ini memeriksa apakah jarak antara dua objek dalam dimensi tertentu pada titik waktu tertentu kurang dari atau sama dengan ambang batas yang ditentukan.

Jika fungsi ini mencakup parameter ts dan te, maka fungsi tersebut membandingkan dua objek untuk memeriksa apakah jarak antara sub-trajektori dari dua objek selama rentang waktu yang ditentukan kurang dari atau sama dengan ambang batas tertentu. Jika fungsi ini tidak mencakup parameter ts atau te, maka fungsi tersebut membandingkan dua objek untuk memeriksa apakah jarak antara trajektori lengkap dari dua objek kurang dari atau sama dengan ambang batas tertentu. Dua objek tersebut ditentukan oleh parameter traj atau traj1 dan parameter traj2.

Fungsi ST_DistanceWithin(..) memberikan hasil yang sama dengan fungsi ST_2DDWithin(...) (jika salah satu objek yang ditentukan adalah geometri) dan fungsi ST_3DTDWithin(...) (jika kedua objek yang ditentukan adalah trajektori).

Contoh

WITH traj AS(
    Select ST_makeTrajectory('STPOINT', 'LINESTRING(0 0 10, 50 0 10, 100 0 10)'::geometry,
                             ('[' || ST_PGEpochToTS(0) || ',' || ST_PGEpochToTS(100) || ')')::tsrange,
                             '{"leafcount":3,"attributes":{"velocity": {"type": "integer", "length": 2,"nullable" : true,"value": [120,130,140]}, "accuracy": {"type": "float", "length": 4, "nullable" : false,"value": [120,130,140]}, "bearing": {"type": "float", "length": 8, "nullable" : false,"value": [120,130,140]}, "acceleration": {"type": "string", "length": 20, "nullable" : true,"value": ["120","130","140"]}, "active": {"type": "timestamp", "nullable" : false,"value": ["Fri Jan 01 11:35:00 2010", "Fri Jan 01 12:35:00 2010", "Fri Jan 01 13:30:00 2010"]}}, "events": [{"2" : "Fri Jan 02 15:00:00 2010"}, {"3" : "Fri Jan 02 15:30:00 2010"}]}') a,
           ST_makeTrajectory('STPOINT', 'LINESTRING(0 20, 50 20, 100 20)'::geometry,
                             ('[' || ST_PGEpochToTS(0) || ',' || ST_PGEpochToTS(100) ||')')::tsrange,
                             '{"leafcount":3,"attributes":{"velocity": {"type": "integer", "length": 2,"nullable" : true,"value": [120,130,140]}, "accuracy": {"type": "float", "length": 4, "nullable" : false,"value": [120,130,140]}, "bearing": {"type": "float", "length": 8, "nullable" : false,"value": [120,130,140]}, "acceleration": {"type": "string", "length": 20, "nullable" : true,"value": ["120","130","140"]}, "active": {"type": "timestamp", "nullable" : false,"value": ["Fri Jan 01 11:35:00 2010", "Fri Jan 01 12:35:00 2010", "Fri Jan 01 13:30:00 2010"]}}, "events": [{"2" : "Fri Jan 02 15:00:00 2010"}, {"3" : "Fri Jan 02 15:30:00 2010"}]}') b
)
SELECT ST_2dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(49), 19), ST_3dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(49), 19),
       ST_2dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(50), 20), ST_3dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(50), 20),
       ST_2dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(70), 21), ST_3dDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(70), 21),
       ST_2dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(49), 19), ST_3dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(49), 19),
       ST_2dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(50), 20), ST_3dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(50), 20),
       ST_2dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(70), 21), ST_3dtDWithin(a,b, ST_PGEpochToTS(0),ST_PGEpochToTS(70), 21) from traj;
NOTICE:  Salah satu atau kedua geometri kehilangan nilai-z. Nilai-z yang tidak diketahui akan dianggap sebagai "nilai apa pun"
NOTICE:  Salah satu atau kedua geometri kehilangan nilai-z. Nilai-z yang tidak diketahui akan dianggap sebagai "nilai apa pun"
 st_2ddwithin | st_3ddwithin | st_2ddwithin | st_3ddwithin | st_2ddwithin | st_3ddwithin | st_2dtdwithin | st_3dtdwithin | st_2dtdwithin | st_3dtdwithin | st_2dtdwithin | st_3dtdwithin 
--------------+--------------+--------------+--------------+--------------+--------------+---------------+---------------+---------------+---------------+---------------+---------------
 f            | f            | t            | t            | t            | t            | f             | f             | t             | t             | t             | t