Verbesserung der Genauigkeit in MySQL-Längen- und Breitengradabfragen für die radiusbasierte Suche
Bei der Durchführung radiusbasierter Standortsuchen in MySQL ein häufiges Problem Ergebnisse erhält, die erheblich vom angegebenen Radius abweichen. Diese Diskrepanz entsteht häufig durch Fehler in der Entfernungsberechnungsformel, die zu ungenauen Entfernungsmessungen führen.
Um dieses Problem zu beheben, ziehen Sie eine verfeinerte Abfrage in Betracht, die eine etwas andere Entfernungsberechnungsmethode verwendet:
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
In dieser Abfrage:
Diese Formel berechnet die Entfernung basierend auf der Haversine-Formel, die genauere Ergebnisse liefert als die verwendete Formel in Ihrer ursprünglichen Anfrage. Durch die Einbeziehung dieser überarbeiteten Formel können Sie Ihre Radiussuchfunktion verfeinern und sicherstellen, dass die zurückgegebenen Ergebnisse dem angegebenen Radiusbereich entsprechen.
Das obige ist der detaillierte Inhalt von## Wie kann die Genauigkeit radiusbasierter Standortsuchen in MySQL verbessert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!