La fonction ST_DWITHIN vérifie si la distance minimale entre deux objets géographiques est inférieure ou égale à une distance spécifiée.
Syntaxe
BOOLEAN ST_DWITHIN(GEOGRAPHY <value1>, GEOGRAPHY <value2>, DOUBLE <distance>)
Paramètres
value1, value2 : Obligatoire. Valeurs du type de données GEOGRAPHY. Construisez des objets GEOGRAPHY à l'aide de fonctions telles que ST_GEOGPOINT, ST_GEOGFROMWKB, ST_GEOGFROMTEXT, ST_MAKELINE et ST_MAKEPOLYGON.
distance : Obligatoire. Type DOUBLE. Seuil de distance, en mètres.
Valeur renvoyée
Renvoie une valeur BOOLEAN selon les règles suivantes :
Renvoie TRUE si la distance minimale entre value1 et value2 est inférieure ou égale à distance ; sinon, renvoie FALSE.
Renvoie FALSE si value1 ou value2 est un objet géographique vide.
Exemples
-
Exemple 1 : Vérifier si la distance minimale entre deux points est inférieure ou égale à un seuil de distance spécifié.
-- Returns FALSE. The distance between the two points is approximately 157249.63 meters, which is greater than the specified threshold of 157249.0. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT(1 1)'), 157249.0); -- Returns TRUE. The distance between the two points is less than the specified threshold of 157249.7. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT(1 1)'), 157249.7); -
Exemple 2 : Gestion des objets géographiques vides
-- Returns FALSE because one of the geographic objects is empty. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POINT EMPTY'), 157249.7); -
Exemple 3 : Vérifier si un point se trouve à l'intérieur d'un polygone en utilisant une distance de 0.
-- Returns TRUE because POINT(0 0) is inside the POLYGON, and the shortest distance is 0. SELECT ST_DWITHIN(ST_GEOGFROMTEXT('POINT(0 0)'), ST_GEOGFROMTEXT('POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))'), 0.0);