Renvoie true si g2 est entièrement située à une distance inférieure ou égale à distance de g1 ; autrement dit, chaque point de g2 se trouve dans la zone tampon définie autour de g1. Renvoie false si au moins un point de g2 se situe en dehors de cette zone tampon.
Syntaxe
boolean ST_DFullyWithin(geometry g1, geometry g2, double precision distance);
Paramètres
| Paramètre | Type | Description |
|---|---|---|
g1 |
geometry | Objet géométrique de référence. |
g2 |
geometry | Objet géométrique à tester par rapport à g1. |
distance |
double precision | Seuil de distance. L'unité dépend du système de référence spatiale (SRS) des objets géométriques. |
Remarques d'utilisation
Les objets
g1etg2doivent utiliser la même projection et partager le même identifiant de référence spatiale (SRID).La fonction utilise automatiquement les comparaisons de boîtes englobantes ainsi que tous les index disponibles sur les objets géométriques pour optimiser les performances.
Différences entre ST_DFullyWithin et ST_DWithin
La fonction ST_DFullyWithin exige que tous les points de g2 soient situés à une distance inférieure ou égale à distance de g1. En revanche, ST_DWithin requiert uniquement que les deux géométries possèdent au moins un point situé à une distance inférieure ou égale à distance l'une de l'autre. ST_DFullyWithin impose donc une contrainte plus stricte.
L'exemple suivant applique les deux fonctions aux mêmes géométries avec une valeur de 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)
Certains points de g2 s'étendent au-delà de la zone tampon de distance 2 autour de g1 ; par conséquent, ST_DFullyWithin renvoie f. Les points les plus proches des deux lignes se situent toutefois à une distance inférieure ou égale à 2, ce qui explique que ST_DWithin renvoie t.
Voir aussi
ST_DWithin — Vérifie si deux géométries possèdent au moins un point situé à une distance spécifiée l'une de l'autre.