At beregne afstanden mellem to koordinater er faktisk ikke så svært givet haversinformlen.
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
Nødvendige ændringer fra det oprindelige svar:
-
Den konstant, der blev tilbudt i det originale svar, gav værdierne for miles eller kilometer. Jeg har ændret konstanten her til at arbejde med målere.
-
Konstanterne er ændret for at bruge dine koordinater. Du vil måske tilpasse forespørgslen lidt længere for at lave disse parametre i stedet for konstanter.
-
Den
having
udtryk ændret sig lidt for at afspejle dit ønske om 500 meter. Igen, dette kan være noget, du vil parametrere.