每个人,我都有一个表名'geom',我想计算表中存在的点之间的距离,例如0101000020730800001DAB949EE95D4040E124CD1FD3F04340
入口点的经度和纬度,我尝试过
SELECT *
FROM postgis.cafeecoor
WHERE ST_Distance_Sphere(geom, ST_MakePoint(32.733792,39.865589)) <= 1 * 1609.34
答案 0 :(得分:0)
您可以使用geography
数据类型来返回以米为单位的距离。
SELECT *, st_distance(geom::geography, ST_MakePoint(32.733792,39.865589)::geography)
FROM postgis.cafeecoor
对于您的示例,它返回1760.32533367米。
根据几何图形的保存方式(作为真实几何图形或文本,具有或不具有固定投影),您可能必须添加一些额外的步骤,例如创建几何图形和设置其坐标系
SELECT *, st_distance(
st_setsrid(geom::geometry,4326)::geography,
ST_MakePoint(32.733792,39.865589)::geography)
FROM postgis.cafeecoor;