Amélioration de la précision dans les requêtes de longitude et de latitude MySQL pour la recherche basée sur le rayon
Lors de l'exécution de recherches de localisation basées sur le rayon dans MySQL, un problème courant obtient des résultats qui s'écartent considérablement du rayon spécifié. Cet écart résulte souvent d'erreurs dans la formule de calcul de distance, conduisant à des mesures de distance inexactes.
Pour remédier à ce problème, considérons une requête affinée qui utilise une méthode de calcul de distance légèrement différente :
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
Dans cette requête :
Cette formule calcule la distance sur la base de la formule Haversine, qui fournit des résultats plus précis que la formule utilisée dans votre requête d'origine. En incorporant cette formule révisée, vous pouvez affiner votre fonctionnalité de recherche de rayon, en vous assurant que les résultats renvoyés respectent la plage de rayon spécifié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!