ST_DISTANCE
📄字数 673
👁️阅读量 加载中...
功能描述
返回两个几何之间的最小 2D 笛卡尔(平面)距离,以投影单位(空间参考单位)表示。
语法格式
sql
DOUBLE ST_DISTANCE(GEOMETRY g1, GEOMETRY g2);参数说明
- g1:第一个目标 GEOMETRY 对象。
- g2:第二个目标 GEOMETRY 对象。
函数返回类型
DOUBLE 类型
使用说明
- 此方法支持圆形字符串和曲线。
示例
几何示例,平面度数 4326 是 WGS 84 经纬度,单位是度。
sql
SQL> SELECT ST_Distance(
'SRID=4326;POINT(-72.1235 42.3521)'::geometry,
'SRID=4326;LINESTRING(-72.1260 42.45, -72.123 42.1546)'::geometry );
+--------------+
| EXPR1 |
+--------------+
| 1.505677e-03 |
+--------------+
(1 row)几何示例,单位:米(SRID:3857,与流行网络地图上的像素成比例)。
sql
SQL> SELECT ST_Distance(
ST_Transform('SRID=4326;POINT(-72.1235 42.3521)'::geometry, 3857),
ST_Transform('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 42.1546)'::geometry, 3857) );
+--------------+
| EXPR1 |
+--------------+
| 1.674414e+02 |
+--------------+
(1 row)
--通过 cos(lat) 校正,避免失真。
SQL> SELECT ST_Distance(
ST_Transform('SRID=4326;POINT(-72.1235 42.3521)'::geometry, 3857),
ST_Transform('SRID=4326;LINESTRING(-72.1260 42.45, -72.123 42.1546)'::geometry, 3857)
) * cosd(42.3521);
+--------------+
| EXPR1 |
+--------------+
| 1.237424e+02 |
+--------------+
(1 row)