Mysql
 sql >> Database >  >> RDS >> Mysql

Come trovare la posizione più vicina utilizzando latitudine e longitudine dal database SQL?

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 .