Heim >Datenbank >MySQL-Tutorial >## Wie kann die Genauigkeit radiusbasierter Standortsuchen in MySQL verbessert werden?

## Wie kann die Genauigkeit radiusbasierter Standortsuchen in MySQL verbessert werden?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 04:58:01643Durchsuche

## How to Improve the Accuracy of Radius-Based Location Searches in MySQL?

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:

  • :lat und :long stellen die benutzerdefinierten Koordinaten dar.
  • lat und long bezeichnen die in der Datenbank gespeicherten Koordinaten.
  • : Die Entfernung entspricht dem angegebenen Radius, gemessen in Meilen (oder Kilometern, wenn 3959 durch 6371 ersetzt wird).

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn