对于Geometry对象,返回二维基于参考坐标系的欧氏距离。对于Geography对象,返回两个对象的最小球面距离,以米为单位。

语法

float  ST_Distance(geometry  g1 , geometry  g2);
float  ST_Distance(geography  gg1 , geography  gg2);
float  ST_Distance(geography  gg1 , geography  gg2 , boolean  useSpheroid);

参数

参数名称 描述
g1 第一个Geometry对象。
g2 第二个Geometry对象。
gg1 第一个Geography对象。
gg2 第二个Geography对象。
useSpheroid 是否使用椭球。默认为true,如果为false,将会使用一些精度,以提高速度。

描述

该函数支持Circular Strings和Curves对象。

示例

对比ST_Distance与ST_3DDistance
SELECT ST_Distance(g1,g2),ST_3DDistance(g1,g2) FROM(SELECT 'POINT(0 0 0)'::geometry as g1,
                                                                 'POINT(1 1 1)'::geometry as g2) as test;
   st_distance   |  st_3ddistance
-----------------+------------------
 1.4142135623731 | 1.73205080756888
(1 row)