Calculando a distância entre dois pontos (Latitude, Longitude)

Digamos que você tenha uma mesa com lojas ( fast foods, restaurantes ) que oferecem seus serviços ( entrega de comida ) a uma certa distância de onde estão e deseja que todas as lojas atendam com base em um local específico (* ex usuários atuais localização *).

Você pode fazer isso com a seguinte instrução SQL.

$lat = 41.118491 // user's latitude
$lng
= 25.404509 // user's longitude

SELECT
*,
( 6371 * acos( cos( radians($lat) )
* cos( radians( latitude ) )
* cos( radians( longitude ) - radians($lng) ) + sin( radians($lat) )
* sin( radians( latitude ) ) ) )
AS calculated_distance

FROM settings
as T
HAVING calculated_distance
<= (SELECT distance FROM settings WHERE sid=T.sid)
ORDER BY distance_calc

Para pesquisar por milhas em vez de quilômetros, substitua 6371 por 3959.