Vypočítat vzdálenost mezi dvěma souřadnicemi není ve skutečnosti tak obtížné, když vezmeme v úvahu vzorec Havrsine.
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
Nezbytné změny oproti původní odpovědi:
-
Konstanta nabízená v původní odpovědi poskytla hodnoty pro míle nebo kilometry. Zde jsem změnil konstantu pro práci s měřiči.
-
Konstanty se změnily, aby používaly vaše souřadnice. Možná budete chtít upravit dotaz o něco dále, aby se tyto parametry vytvořily namísto konstant.
-
having
výraz se trochu změnil, aby odrážel vaši touhu po 500 metrech. Opět to může být něco, co budete chtít parametrizovat.