对于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)