2016-04-12 2 views
-1

Ich habe eine MySQL-Tabelle mit dem Namen tbl_places Diese enthält Felder Place_id, PlaceName, Place_LATITUDE, place_LONGITUDE.Durch die Verwendung von My SQL Nehmen Sie Breiten- und Längen

Ich mag es in der place detail Seite verwenden, jetzt Wenn die aktuellen place_id der offenen Seite 4 ist dann mag ich einen maximal 6 Datensätze am nächsten zu diesem Ort.

Angenommen der aktuelle Ort ist:

place_id = 4 
place_name = Lal Killa 
place_LATITUDE = 77.2413969039917 
place_LONGITUDE = 28.653838307772872 

ich nicht verstehen kann, wie am nächsten Ort, um den aktuellen Ort zu finden ??

Antwort

0

Verwenden Sie die folgende Abfrage:

SELECT Place_id,PlaceName, (3959 * acos(cos(radians(37)) * cos(radians(Place_LATITUDE)) * cos(radians(Place_LONGITUDE) - radians(-122)) + sin(radians(37)) * sin(radians(Place_LATITUDE)))) AS distance FROM tbl_places HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

HINWEIS - Hier geografische Breite = 37 & Länge = -122

überprüfen Sie auch here für weitere Referenz.

0

Sie können einen Cohen-Sutherland-Algorithmus (Point Clipping) verwenden, um die Personen in der Nähe zu kennen. Wenn Sie das Ergebnis minimieren möchten, legen Sie es als inkrementelle Reihenfolge von 0 bis YOUR_LIMIT fest.

es ist besser als eine Formel, die eine Polarkoordinaten [(dh lat und lang] zu XY

konvertieren
Verwandte Themen