ST_Distance
对于输入几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的最小欧氏距离。
对于 3DM、3DZ、4D 几何体,ST_Distance 返回两个输入几何体值的 2D 投影之间的欧氏距离。
对于输入地理,ST_Distance 返回两个 2D 点的测地线距离。距离以米为单位。对于点和空点以外的地理,将返回错误。
语法
ST_Distance(geo1, geo2)
Arguments
- 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 返回地理中两个点之间的距离。
SELECT ST_Distance(ST_GeogFromText('point(1 1)'),ST_GeogFromText('point( -21.32 121.2)'));
st_distance
------------------
13090291.8796529