使用 st_distance postgresql 寻找两个位置 (lat, lng) 的距离

Looking for distance of two location (lat, lng) with st_distance postgresql

我尝试获取 (-7.4379722 109.2442663)(-7.4201487 109.245204)

两点的距离

我正在使用这个查询:

select st_distance(
    st_geomfromtext('POINT(-7.4379722 109.2442663)'), 
    st_geomfromtext('POINT(-7.4201487 109.245204)')
)

和 return 的查询:

0.0178481493029382 meters

看着 google 这是 2,59 KM

https://i.stack.imgur.com/Rahrb.png

我该怎么办?

坐标必须先用经度表示,再用纬度表示。

如果您使用经纬度几何计算距离,则输出将以度为单位(这不是一个好的距离单位)。相反,您可以使用地理数据类型,它使用 meters

select st_distance(
    st_geogfromtext('POINT( 109.2442663 -7.4379722)'), 
    st_geogfromtext('POINT( 109.245204 -7.4201487)')
);
  st_distance
---------------
 1973.86761798
(1 row)