All Products
Search
Document Center

ApsaraDB RDS:ST_DFullyWithin

Last Updated:Mar 29, 2026

Mengembalikan true jika g2 sepenuhnya berada dalam jarak distance dari g1—artinya, setiap titik pada g2 berada di dalam buffer berjarak g1. Mengembalikan false jika terdapat titik pada g2 yang berada di luar buffer tersebut.

Sintaksis

boolean ST_DFullyWithin(geometry g1, geometry g2, double precision distance);

Parameter

ParameterTypeDescription
g1geometryObjek geometri referensi.
g2geometryObjek geometri yang diuji terhadap g1.
distancedouble precisionAmbang batas jarak. Satuan ditentukan oleh sistem referensi spasial (SRS) objek geometri.

Catatan penggunaan

  • Kedua objek g1 dan g2 harus menggunakan proyeksi yang sama dan memiliki identifier referensi spasial (SRID) yang identik.

  • Fungsi ini secara otomatis memanfaatkan perbandingan kotak pembatas dan semua indeks yang tersedia pada objek geometri untuk mengoptimalkan kinerja.

ST_DFullyWithin vs. ST_DWithin

ST_DFullyWithin mensyaratkan bahwa setiap titik pada g2 berada dalam jarak distance dari g1. Sebaliknya, ST_DWithin hanya mensyaratkan bahwa kedua geometri memiliki setidaknya satu titik yang berada dalam jarak distance satu sama lain. Dengan demikian, ST_DFullyWithin bersifat lebih ketat.

Contoh berikut menerapkan kedua fungsi tersebut pada geometri yang sama dengan distance = 2:

SELECT
    ST_DFullyWithin(g1, g2, 2) AS dfullywithin2,
    ST_DWithin(g1, g2, 2)      AS dwithin2
FROM (
    VALUES (
        'LINESTRING(0 1,1 1)'::geometry,
        'LINESTRING(0 0,0 -1)'::geometry
    )
) AS t(g1, g2);

 dfullywithin2 | dwithin2
---------------+----------
 f             | t
(1 row)

g2 memiliki titik-titik yang berada di luar buffer berjarak 2 dari g1, sehingga ST_DFullyWithin mengembalikan f. Titik-titik terdekat dari kedua linestring tersebut berada dalam jarak 2 satu sama lain, sehingga ST_DWithin mengembalikan t.

Lihat juga

  • ST_DWithin — Menguji apakah dua geometri memiliki setidaknya satu titik yang berada dalam jarak tertentu satu sama lain.