Fungsi ST_DWITHIN memeriksa apakah jarak terpendek antara dua objek geografis berada dalam batas jarak yang ditentukan.
Sintaksis
BOOLEAN ST_DWITHIN(GEOGRAPHY <value1>, GEOGRAPHY <value2>, DOUBLE <distance>)Parameter
value1, value2: Wajib diisi. Nilai dengan tipe data GEOGRAPHY. Anda dapat membuat objek GEOGRAPHY menggunakan fungsi seperti ST_GEOGPOINT, ST_GEOGFROMWKB, ST_GEOGFROMTEXT, ST_MAKELINE, dan ST_MAKEPOLYGON.
distance: Wajib diisi. Tipe DOUBLE. Ambang batas jarak, dalam satuan meter.
Nilai kembalian
Mengembalikan nilai BOOLEAN berdasarkan aturan berikut:
TRUE jika jarak terpendek antara value1 dan value2 kurang dari atau sama dengan distance; FALSE jika tidak.
FALSE jika value1 atau value2 merupakan objek geografis kosong.
Contoh
Contoh 1: Periksa apakah jarak terpendek antara dua titik berada dalam ambang batas jarak yang ditentukan.
-- Mengembalikan FALSE. Jarak antara kedua titik tersebut sekitar 157249,63 meter, yang lebih besar daripada ambang batas yang ditentukan yaitu 157249,0. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT(1 1)'), 157249.0); -- Mengembalikan TRUE. Jarak antara kedua titik tersebut kurang dari ambang batas yang ditentukan yaitu 157249,7. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT(1 1)'), 157249.7);Contoh 2: Penanganan objek geografis kosong
-- Mengembalikan FALSE karena salah satu objek geografisnya kosong. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT EMPTY'), 157249.7);Contoh 3: Periksa apakah suatu titik berada di dalam poligon dengan menggunakan jarak 0.
-- Mengembalikan TRUE karena POINT(0 0) berada di dalam POLYGON, dan jarak terpendeknya adalah 0. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))'), 0.0);