Calcular la distancia entre dos coordenadas en realidad no es tan difícil dada la fórmula haversine.
SELECT
-- stuff here
, ( 6371000 * acos( cos( radians(45.815005) ) * cos( radians( stuff.lat ) ) * cos( radians( stuff.lng ) - radians(15.978501) ) + sin( radians(45.815005) ) * sin(radians(stuff.lat)) ) ) AS distance
FROM
stuff
HAVING
distance < 500
Cambios necesarios de la respuesta original:
-
La constante ofrecida en la respuesta original suministró los valores de millas o kilómetros. Cambié la constante aquí para trabajar con metros.
-
Las constantes han cambiado para usar sus coordenadas. Es posible que desee adaptar la consulta un poco más para hacer esos parámetros en lugar de constantes.
-
El
having
expresión cambió un poco para reflejar su deseo de 500 metros. Nuevamente, esto podría ser algo que desee parametrizar.