Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_SHORTESTLINE

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

功能描述

如果几何/地理是 Surface、MultiSurface(Polygon、MultiPolygon),则返回其 2D 周长。

语法格式

sql
GEOMETRY ST_SHORTESTLINE(GEOMETRY geom1, GEOMETRY geom2);
GEOGRAPHY ST_SHORTESTLINE(GEOGRAPHY geom1, GEOGRAPHY geom2, BOOLEAN use_spheroid = TRUE);

参数说明

  • geom1:第一个目标 GEOMETRY/GEOGRAPHY 对象。
  • geom2:第一个目标 GEOMETRY/GEOGRAPHY 对象。
  • use_spheroid:距离测量是否使用椭球体,可选。
    • TRUE:使用椭球体。
    • FALSE:在球面上进行测量,计算更快。

函数返回类型

GEOMETRY/GEOGRAPHY 类型

使用说明

  1. 返回的线从 geom1 开始,到 geom2 结束。
  2. 如果 geom1 和 geom2 相交,结果是一条起点和终点位于交点的线。
  3. 线的长度与 ST_DISTANCE 返回的长度相同。
  4. 对于几何类型,周长测量的单位由几何的空间参考系统指定。

示例

Point 和 LineString 之间的最短线:

sql
SQL> SELECT ST_AsText(  ST_ShortestLine(
             'POINT (160 40)',
             'LINESTRING (10 30, 50 50, 30 110, 70 90, 180 140, 130 190)')
             ) As sline;

+----------------------------------------------------------+
|                          SLINE                           |
+----------------------------------------------------------+
| LINESTRING(160 40,125.75342465753425 115.34246575342466) |
+----------------------------------------------------------+

(1 row)

Polygons之间的最短线:

sql
SQL> SELECT ST_AsText( ST_ShortestLine(
              'POLYGON ((190 150, 20 10, 160 70, 190 150))',
              ST_Buffer('POINT(80 160)', 30)
                   ) ) AS llinewkt;

+-----------------------------------------------------------------------------------------+
|                                        LLINEWKT                                         |
+-----------------------------------------------------------------------------------------+
| LINESTRING(131.59149149528952 101.89887534906195,101.21320343559643 138.78679656440357) |
+-----------------------------------------------------------------------------------------+

(1 row)