Maison  >  Article  >  base de données  >  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

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
Susan Sarandonoriginal
2024-10-26 09:44:03779parcourir

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

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!

Déclaration:
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