Die Berechnung des Abstands zwischen zwei Koordinaten ist angesichts der Haversinus-Formel eigentlich gar nicht so schwierig.
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
Notwendige Änderungen gegenüber der ursprünglichen Antwort:
-
Die in der ursprünglichen Antwort angebotene Konstante lieferte die Werte für Meilen oder Kilometer. Ich habe die Konstante hier geändert, um mit Metern zu arbeiten.
-
Die Konstanten wurden geändert, um Ihre Koordinaten zu verwenden. Vielleicht möchten Sie die Abfrage etwas weiter anpassen, um diese Parameter anstelle von Konstanten zu machen.
-
Das
having
Der Gesichtsausdruck änderte sich ein wenig, um Ihren Wunsch nach 500 Metern widerzuspiegeln. Auch dies könnte etwas sein, das Sie parametrisieren möchten.