Maison > base de données > tutoriel mysql > Comment trouver la latitude et la longitude les plus proches dans un rayon donné à l'aide de SQL ?

Comment trouver la latitude et la longitude les plus proches dans un rayon donné à l'aide de SQL ?

Barbara Streisand
Libérer: 2025-01-18 15:56:10
original
696 Les gens l'ont consulté

How to Find the Nearest Latitude and Longitude within a Given Radius Using SQL?

Trouver la latitude et la longitude les plus proches à l'aide d'une requête SQL

Lorsque vous travaillez avec des données géospatiales, vous devez souvent récupérer des enregistrements en fonction de leur distance par rapport à un point donné. Ceci peut être réalisé en utilisant une requête SQL qui calcule la distance entre deux points et récupère les enregistrements situés dans un rayon spécifié.

Supposons qu'une table de base de données contienne les coordonnées de latitude et de longitude de divers emplacements. Pour une latitude et une longitude données, nous souhaitons récupérer l'enregistrement avec la latitude et la longitude les plus proches. Cependant, si la distance entre un point donné et l'enregistrement récupéré dépasse le seuil spécifié, l'enregistrement ne doit pas être récupéré.

Pour ce faire nous pouvons utiliser la requête SQL suivante :

<code class="language-sql">SELECT latitude, longitude, SQRT(
    POW(69.1 * (latitude - [startlat]), 2) +
    POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < 25 ORDER BY distance</code>
Copier après la connexion

Dans cette requête, [startlat] et [startlng] représentent la latitude et la longitude d'un point donné. La colonne distance utilise la formule Haversine pour calculer la distance entre un point donné et chaque enregistrement du tableau. La clause HAVING filtre les enregistrements dont la distance dépasse 25 (seuil spécifié). Enfin, la clause ORDER BY trie les résultats par distance, renvoyant en premier les enregistrements avec la latitude et la longitude les plus proches.

Cette requête permet une récupération efficace des emplacements à proximité, garantissant que les résultats renvoyés se situent dans la plage de distance souhaitée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal