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 ?

Comment trouver la latitude et la longitude les plus proches sur une distance donnée à l'aide de SQL ?

Patricia Arquette
Libérer: 2025-01-18 16:17:08
original
475 Les gens l'ont consulté

How to Find the Nearest Latitude and Longitude within a Given Distance Using 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>
Copier après la connexion
  • [startlat] : Latitude de départ pour la mesure de distance.
  • [startlng] : La longitude de départ pour la mesure de la distance.
  • 25 : Seuil de distance maximale autorisée en kilomètres.

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!

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