Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_DISTANCE

📄字数 673
👁️阅读量 加载中...

功能描述

返回两个几何之间的最小 2D 笛卡尔(平面)距离,以投影单位(空间参考单位)表示。

语法格式

sql
DOUBLE ST_DISTANCE(GEOMETRY g1, GEOMETRY g2);

参数说明

  • g1:第一个目标 GEOMETRY 对象。
  • g2:第二个目标 GEOMETRY 对象。

函数返回类型

DOUBLE 类型

使用说明

  1. 此方法支持圆形字符串和曲线。

示例

几何示例,平面度数 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)