ST_Distance

计算两个空间对象之间的最短距离。对于 GEOMETRY 对象,距离使用笛卡尔坐标单位测量。对于 GEOGRAPHY 对象,距离以米为单位测量。

g1g2 参数必须都是 GEOMETRY 对象或都是 GEOGRAPHY 对象。

行为类型

不可变

语法

ST_Distance( g1, g2
        [USING PARAMETERS spheroid={ true | false } ] )

参数

g1
空间对象,类型为 GEOMETRY 或 GEOGRAPHY
g2
空间对象,类型为 GEOMETRY 或 GEOGRAPHY

参数

spheroid = { true | false }

(可选)用于指定是否使用理想球体或 WGS84 的 BOOLEAN 值。

默认值:False

返回

FLOAT

支持的数据类型

兼容的 GEOGRAPHY 对:

建议

Vertica 建议在使用 ST_Distance 之前裁剪无效的数据。无效的地理值可能返回无保证的结果。

示例

以下示例显示了 ST_Distance 的用法。

两个多边形之间的距离:

=> SELECT ST_Distance(ST_GeomFromText('POLYGON((-1 -1,2 2,0 1,-1 -1))'),
                      ST_GeomFromText('POLYGON((5 2,7 4,5 5,5 2))'));
 ST_Distance
-------------
           3
(1 row)

点和线串之间的距离(以米为单位):

=> SELECT ST_Distance(ST_GeographyFromText('POINT(31.75 31.25)'),
    ST_GeographyFromText('LINESTRING(32 32,32 35,40.5 35,32 35,32 32)'));
   ST_Distance
------------------
 86690.3950562969
(1 row)