ST_DWITHIN |
Distance avec |
| BigQuery |
Syntaxe
|
ST_DWITHIN(geography_1, geography_2, distance)
|
|
ST_DWITHIN(geography_1, geography_2, distance, use_spheroid)
|
Paramètres
| Nom |
Description |
| geography_1 |
Ce paramètre permet de spécifier la première expression de type GEOGRAPHY à comparer. |
| geography_2 |
Ce paramètre permet de spécifier la deuxième expression de type GEOGRAPHY à comparer. |
| distance |
Ce paramètre permet de définir la distance maximale (en mètres) entre les deux géographies pour que la fonction retourne TRUE. La fonction vérifie si n'importe quel point de geography_1 est à une distance inférieure ou égale à cette distance de n'importe quel point de geography_2. |
| use_spheroid |
Ce paramètre facultatif permet de définir la méthode de calcul de la distance. C'est une valeur de type BOOL. Si TRUE (valeur par défaut), ce paramètre permet d'effectuer le calcul de la distance sur un modèle sphéroïde plus précis (par exemple, WGS84). Si FALSE, le calcul est effectué sur un modèle sphérique, ce qui est généralement plus rapide mais moins précis. |
Description
Cette fonction permet de vérifier si au moins un des 2 points géographiques est dans une distance inférieure spécifié.
Remarques
- Fonction de test de proximité spatiale : ST_DWITHIN permet de vérifier si deux géographies sont proches l'une de l'autre en fonction d'une distance
maximale spécifiée. Elle renvoie TRUE si au moins un point de geography_1 est situé à une distance inférieure ou égale à celle définie par le paramètre distance par
rapport à geography_2.
- Très utile pour les filtres par rayon : Cette fonction est idéale pour réaliser des requêtes de voisinage, comme "tous les magasins à moins de 1 km
du client", ou "toutes les écoles dans un rayon de 500 mètres d'une adresse". Elle simplifie beaucoup les requêtes spatiales basées sur des zones de proximité.
- Évite le calcul manuel avec ST_DISTANCE : Bien que l'on puisse techniquement utiliser ST_DISTANCE(... <= distance) pour le même résultat, ST_DWITHIN
est plus simple à lire, plus directe, et parfois plus optimisée en performances par le moteur BigQuery pour les traitements spatiaux à grande échelle.
- S'adapte à tout type de géographie : Elle fonctionne avec des points, des lignes, des polygones ou des collections mixtes. Que ce soit pour vérifier si
un point est proche d'une route, ou si une zone entière est proche d'un autre objet, ST_DWITHIN s'adapte au besoin sans exiger une transformation préalable des données.
- Distance exprimée en mètres : Le paramètre distance est exprimé en mètres, ce qui est cohérent avec la plupart des analyses géographiques terrestres.
Cela facilite son intégration dans des applications de mobilité, d'urbanisme ou de gestion des infrastructures.
- Comportement influencé par le paramètre use_spheroid : Par défaut, la fonction utilise un modèle sphéroïde (comme WGS84) pour des calculs plus précis,
surtout sur de grandes distances ou à l'échelle planétaire. Si la précision est moins importante, on peut passer use_spheroid à FALSE pour des traitements plus rapides,
notamment sur des jeux de données volumineux.
- Renvoie une valeur booléenne simple et exploitable : Le résultat est un booléen (TRUE ou FALSE), ce qui le rend facilement intégrable dans des conditions
SQL (WHERE, JOIN, CASE). Cela en fait une fonction idéale pour la logique de filtrage spatial sans nécessiter de post-traitement complexe.
- Particulièrement puissante pour les jointures spatiales : ST_DWITHIN est souvent utilisée dans des jointures spatiales (JOIN) pour relier deux tables
géographiques en fonction d'une distance maximale. Cela permet de créer des relations dynamiques comme "chaque client associé à l'agence la plus proche dans un
rayon donné".
Dernière mise à jour : Jeudi, le 18 Juin 2020