ST_Distance
对于输入几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的最小欧氏距离。
对于 3DM、3DZ、4D 几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的欧氏距离。
对于输入地理,ST_Distance 返回两个 2D 点的测地线距离。距离以米为单位。对于点和空点以外的地理,将返回错误。
语法
ST_Distance(geo1, geo2)
参数
- geo1
-
一个
GEOMETRY
或GEOGRAPHY
数据类型的值,或一个计算结果为GEOMETRY
或GEOGRAPHY
类型的表达式。geo1 的数据类型必须与 geo2 相同。 - geo2
-
一个
GEOMETRY
或GEOGRAPHY
数据类型的值,或一个计算结果为GEOMETRY
或GEOGRAPHY
类型的表达式。geo2 的数据类型必须与 geo1 相同。
返回类型
DOUBLE PRECISION
,采用与输入几何体或地理相同的单位。
如果 geo1 或 geo2 为 null 或为空,则返回 null。
如果 geo1 和 geo2 不具有相同的空间参考系统标识符 (SRID) 值,则返回一个错误。
如果 geo1 或 geo2 为几何体集合,则返回一个错误。
示例
以下 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