ST_Distance
计算两个空间对象之间的最短距离。对于 GEOMETRY 对象,距离使用笛卡尔坐标单位测量。对于 GEOGRAPHY 对象,距离以米为单位测量。
g1
和 g2
参数必须都是 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)