Maison > base de données > tutoriel mysql > le corps du texte

Voici quelques options de titre, variant en style et en orientation : **Direct et informatif :** * **Comment trouver des emplacements dans un rayon à l'aide de MySQL : une requête améliorée** * **Recherche de géolocalisation précise dans

Susan Sarandon
Libérer: 2024-10-26 09:44:03
original
778 Les gens l'ont consulté

Here are a few title options, varying in style and focus:

**Direct & Informative:**

* **How to Find Locations Within a Radius Using MySQL: An Improved Query**
* **Accurate Geolocation Search in MySQL: A Query for Finding Locations Within a Radius**

**Q

Requête MySQL pour rechercher des emplacements dans un rayon

Les requêtes qui recherchent des emplacements dans un rayon spécifié sont utilisées lors du traitement de données géospatiales. Dans ce cas, une requête est nécessaire pour récupérer toutes les lignes dans un rayon de 25 miles d'une latitude et d'une longitude données. Cependant, la requête d'origine ne renvoyait pas des résultats précis pour toutes les lignes.

Requête améliorée

La requête améliorée élimine les résultats incorrects en utilisant une formule plus précise pour calculer le distance entre les lignes :

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25
Copier après la connexion

Explication

  • La formule acos( ... ) calcule l'angle entre deux points latitude-longitude.
  • Multiplier cet angle par 6371 convertit le résultat en miles.
  • La distance résultante est stockée dans la colonne de distance.
  • Toutes les lignes avec une distance inférieure à la valeur spécifiée sont sélectionnées.

Paramètres

  • :lat et :long sont la latitude et la longitude du point central.
  • :la distance est la distance souhaitée rayon en miles.

Grâce à cette requête améliorée, toutes les lignes dans un rayon spécifié peuvent être récupérées avec précision, éliminant ainsi les résultats incorrects observés dans la requête d'origine.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!