在 postgresql 中查找距离 lat、lng 最近的项目

C T*_*que 1 postgresql

我的表包含 lat 和 lng 列:

液化天然气| 双精度 | 不为空

纬度 | 双精度 | 不为空

我只想检索某个位置(经纬度)的结果。

我该怎么做 ?

Apa*_*ith 8

更好的方法是,您可以帮助postgis为地理空间查询创建单独的几何/地理列。

CREATE EXTENSION postgis;

ALTER TABLE your_table ADD COLUMN geom geometry(Point, 4326);

UPDATE your_table SET geom=st_SetSrid(st_MakePoint(lng, lat), 4326);

更新表后,您可以执行简单的最近邻居查询,如下所示。

SELECT name FROM your_table ORDER BY geom <-> ST_GeomFromText ('POINT(-49.2653819 -25.4244287 )', 4326);

这将返回给定点的最近记录。