我在Postgresql数据库中的位置表中有纬度和经度列,
我正在尝试使用Postgresql函数执行距离查询.
我正在尝试使用Postgresql函数执行距离查询.
我阅读了本手册的这一章:
https://www.postgresql.org/docs/current/static/earthdistance.html
但我想我在那里缺少一些东西.
我该怎么办?有更多的例子吗?
该模块是可选的,并没有安装在默认的Postgresql安装中.您必须从contrib目录中安装它.
您可以使用以下函数来计算坐标之间的近似距离(以英里计):
CREATE OR REPLACE FUNCTION distance(lat1 FLOAT,lon1 FLOAT,lat2 FLOAT,lon2 FLOAT) RETURNS FLOAT AS $$ DECLARE x float = 69.1 * (lat2 - lat1); y float = 69.1 * (lon2 - lon1) * cos(lat1 / 57.3); BEGIN RETURN sqrt(x * x + y * y); END $$LANGUAGE plpgsql;