Was ist der beste Weg, effizient zu berechnen, welche Punkte in der Nähe eines gegebenen Lat / Long mit MySQL sind?

8

Ich versuche ein MySQL-Schema zu entwerfen, das eine Liste von Benutzern mit zugehörigem Längen- und Breitengrad speichern kann.

Ich möchte dann für einen bestimmten Benutzer eine Abfrage erstellen, die ihm die nächsten 50 Benutzer zurückgeben und diese Benutzer nach Entfernung sortieren kann (wobei das nächste zuerst angezeigt wird).

In Anbetracht der Tatsache, dass in dieser Tabelle viele tausend Benutzer vorhanden sind, was ist der effizienteste Weg, diese Daten zu speichern und abzufragen?

    
Andrew J 30.06.2010, 23:15
quelle

2 Antworten

5

Lesen Sie diesen Artikel: Erstellen eines Filialfinders mit PHP, MySQL & amp; Google Maps Dieser Artikel zeigt eine MySQL-Lösung für die Haversine-Formel , die die beste Methode zur Berechnung der Entfernung ist Längen- und Breitengrad.

    
Bill Karwin 30.06.2010 23:29
quelle
4

Sehen Sie sich MySqls räumliche Indexierung an.

Sie können auch die Großkreisentfernung verwenden, es gibt einen guten SO-Artikel dazu hier .

    
Abe Miessler 30.06.2010 23:26
quelle