Maison >base de données >tutoriel mysql >Comment trouver la latitude et la longitude les plus proches sur une distance donnée à l'aide de SQL ?
Requête pour trouver la latitude et la longitude les plus proches à l'aide de SQL
Cet article explique comment utiliser SQL pour récupérer la longitude et la latitude les plus proches dans une certaine plage d'une coordonnée de référence donnée à partir de la base de données.
Description du problème :
Vous connaissez la valeur de latitude et de longitude et souhaitez extraire l'enregistrement dans la base de données qui correspond le mieux à la latitude et à la longitude. Mais il existe un seuil de distance : si la distance calculée dépasse ce seuil, aucune donnée ne doit être récupérée.
Structure du tableau :
列名 | 数据类型 |
---|---|
id | 整数 |
纬度 | 十进制 |
经度 | 十进制 |
地名 | 字符串 |
城市 | 字符串 |
国家 | 字符串 |
州 | 字符串 |
邮编 | 整数 |
海拔 | 整数 |
Instruction de requête :
Pour accomplir cette tâche, nous utilisons la requête SQL suivante :
<code class="language-sql">SELECT 纬度, 经度, SQRT( POW(69.1 * (纬度 - [startlat]), 2) + POW(69.1 * ([startlng] - 经度) * COS(纬度 / 57.3), 2)) AS distance FROM 表名称 HAVING distance < 25 ORDER BY distance ASC;</code>
Instructions :
Cette requête utilise la formule de distance orthodromique pour calculer la distance entre les coordonnées de référence ([startlat], [startlng]) et chaque enregistrement de la table. Si la distance calculée est inférieure au seuil spécifié (25 kilomètres dans cet exemple), l'enregistrement sera inclus dans les résultats. La requête trie également les résultats par ordre croissant en fonction de la distance, garantissant que les enregistrements les plus proches sont renvoyés en premier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!