Gunakan fungsi ini untuk menghapus titik-titik lintasan yang memenuhi kondisi ambang batas tertentu dari objek lintasan.
Sintaksis
trajectory ST_removeDriftPoints(trajectory traj, float8 speed, float8 dist, interval offset);Parameter
| Parameter | Deskripsi |
| traj | Objek lintasan. |
| speed | Ambang batas kecepatan. Satuan adalah meter per detik. |
| dist | Ambang batas jarak. Satuan adalah meter. |
| offset | Ambang batas interval waktu. |
Deskripsi
Fungsi ini menghapus titik-titik lintasan yang memenuhi kondisi tertentu dari objek lintasan dan mengembalikan objek lintasan baru. Objek lintasan yang dihasilkan berisi setidaknya dua titik lintasan. Sebuah titik lintasan akan dihapus jika memenuhi ketiga kondisi berikut: kecepatan titik lintasan lebih besar dari ambang batas kecepatan yang ditentukan, jarak antara titik lintasan tersebut dengan titik sebelumnya melebihi ambang batas jarak yang ditentukan, dan interval waktu melebihi ambang batas offset yang ditentukan. Satuan kecepatan adalah meter per detik, sedangkan satuan jarak adalah meter. Jika objek lintasan hanya memiliki dua titik lintasan, tidak ada titik yang akan dihapus.
Parameter speed menentukan ambang batas kecepatan. Ambang batas kecepatan dihitung secara real-time berdasarkan posisi titik lintasan dan offset waktu, dengan satuan meter per detik. Parameter dist menentukan ambang batas jarak dalam satuan meter. Parameter offset menentukan interval waktu. Secara default, sistem referensi koordinat objek lintasan menggunakan World Geodetic System 1984 (WGS 84). Jika Anda ingin menggunakan sistem lain, Anda dapat menentukan pengenal sistem referensi spasial (SRID) saat membuat objek lintasan atau menggunakan fungsi ST_SetSRID untuk menetapkan SRID. Sistem menghitung jarak bola antara dua titik berdasarkan SRID yang ditentukan, dengan satuan jarak bola dalam meter.
Contoh
select id, st_leafcount(traj) from table_name where id = 1;
id | st_leafcount
----+--------------
1 | 53
(1 row)
update table_name set traj=st_removeDriftPoints(traj,25.72, 9620, interval '30 seconds') where id = 1;
--Dua titik lintasan dihapus.
select id, st_leafcount(traj) from table_name where id = 1;
id | st_leafcount
----+--------------
1 | 49
(1 row)