Trovare posizioni nelle vicinanze con MySQL
Ecco l'istruzione SQL che troverà le 20 posizioni più vicine che si trovano entro un raggio di 25 miglia dalla coordinata 37, -122. Calcola la distanza in base alla latitudine/longitudine di quella riga e alla latitudine/longitudine target, quindi richiede solo le righe in cui il valore della distanza è inferiore a 25, ordina l'intera query in base alla distanza e la limita a 20 risultati. Per cercare per chilometri anziché per miglia, sostituisci 3959 con 6371.
Struttura della tabella:
id,name,address,lat,lng
NOTA - Qui latitudine =37 e longitudine =-122. Quindi passa il tuo.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Puoi trovare i dettagli qui .