Het berekenen van de afstand tussen twee coördinaten is eigenlijk niet zo moeilijk gezien de haversine-formule.
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
Noodzakelijke wijzigingen ten opzichte van het oorspronkelijke antwoord:
-
De constante die in het oorspronkelijke antwoord werd aangeboden, leverde de waarden voor mijlen of kilometers. Ik heb de constante hier veranderd om met meters te werken.
-
De constanten zijn gewijzigd om uw coördinaten te gebruiken. Misschien wil je de query iets verder aanpassen om die parameters te maken in plaats van constanten.
-
De
having
uitdrukking veranderde een beetje om uw wens voor 500 meter weer te geven. Nogmaals, dit kan iets zijn dat u wilt parametriseren.