В течение нескольких дней я боролся за создание любого заданного радиуса в милях вокруг выбранной широты и долготы (широта = 51.48034773 и долгота = -0.194894315) в PostgreSQL.
Данный набор данных содержит записи миллионов координат моделей движения людей.Я попытался взглянуть на несколько разных методов, но у меня не работает на PostgreSQL, но мне определенно нужно сделать это на PostgreSQL.
SELECT device,brand, (
6380 * acos(
cos(radians(51.48034773))
* cos(radians(latitude))
* cos(radians(lonigtude) - radians(-0.194894315))
+ sin (radians(51.48034773))
* sin(radians(latitude))
))
AS distance
FROM public.consumer
HAVING distance < 0.5
ORDER BY 1 DESC;
Мне нужно создать радиус (например, 0,5 мили).) вокруг заданной координаты (51.48034773, -0.194894315), чтобы я мог отфильтровать оставшиеся данные и вернуть только то, что люди сделали в выбранном радиусе.
Надеюсь, что это имело смысл.Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.
ЛЮБАЯ ПОМОЩЬ БУДЕТ БОЛЬШОЙ ЦЕНИТЬ !!