【发布时间】:2019-02-13 22:02:12
【问题描述】:
几天来,我一直在努力在 PostgreSQL 上围绕选定的纬度和经度(纬度 = 51.48034773 和经度 = -0.194894315)创建以英里为单位的任何给定半径。
给定的数据集包含数以百万计的人们运动模式坐标的记录。我尝试了几种不同的方法,但它在 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;
我基本上需要围绕给定坐标(51.48034773,-0.194894315)创建一个半径(例如 0.5 英里),这样我就可以过滤掉其余的数据,只返回人们在所选半径内所做的事情。
希望这有点道理。如果您有任何问题,请告诉我。
任何帮助将不胜感激!!
【问题讨论】:
标签: sql postgresql latitude-longitude radius