ST_Distance - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

ST_Distance

对于输入几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的最小欧氏距离。

对于 3DM、3DZ、4D 几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的欧氏距离。

对于输入地理,ST_Distance 返回两个 2D 点的测地线距离。距离以米为单位。对于点和空点以外的地理,将返回错误。

语法

ST_Distance(geo1, geo2)

参数

geo1

一个 GEOMETRYGEOGRAPHY 数据类型的值,或一个计算结果为 GEOMETRYGEOGRAPHY 类型的表达式。geo1 的数据类型必须与 geo2 相同。

geo2

一个 GEOMETRYGEOGRAPHY 数据类型的值,或一个计算结果为 GEOMETRYGEOGRAPHY 类型的表达式。geo2 的数据类型必须与 geo1 相同。

返回类型

DOUBLE PRECISION,采用与输入几何体或地理相同的单位。

如果 geo1geo2 为 null 或为空,则返回 null。

如果 geo1geo2 不具有相同的空间参考系统标识符 (SRID) 值,则返回一个错误。

如果 geo1geo2 为几何体集合,则返回一个错误。

示例

以下 SQL 返回两个多边形之间的距离。

SELECT ST_Distance(ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeomFromText('POLYGON((-1 -3,-2 -1,0 -3,-1 -3))'));
st_distance ----------- 1.4142135623731

以下 SQL 使用 GEOGRAPHY 数据类型返回勃兰登堡门和柏林国会大厦之间的距离(以米为单位)。

SELECT ST_Distance(ST_GeogFromText('POINT(13.37761826722198 52.516411678282445)'), ST_GeogFromText('POINT(13.377950831464005 52.51705102546893)'));
st_distance ------------------ 74.64129172609631