Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_SCALE

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

功能描述

将坐标与相应的因子参数相乘,将几何体缩放到新的尺寸。

语法格式

sql
GEOMETRY ST_SCALE(GEOMETRY geomA, DOUBLE XFactor, DOUBLE YFactor, DOUBLE ZFactor);
GEOMETRY ST_SCALE(GEOMETRY geomA, DOUBLE XFactor, DOUBLE YFactor);
GEOMETRY ST_SCALE(GEOMETRY geom, GEOMETRY factor);
GEOMETRY ST_SCALE(GEOMETRY geom, GEOMETRY factor, GEOMETRY origin);

参数说明

  • geomA:目标GEOMETRY对象。
  • XFactor:X缩放因子。
  • YFactor:Y缩放因子。
  • ZFactor:Z缩放因子。
  • factor:采用几何图形作为所有维度的缩放因子。允许传递2d、3dm、3dz或4d点设置缩放因子,factor点中缺少的维度相当于不缩放。
  • origin:缩放原点。如果原点时,相对于原点缩放。

函数返回类型

GEOMETRY 类型

使用说明

  • 该函数支持3D对象,并且不会删除Z坐标。
  • 该函数支持圆形字符串(CIRCULARSTRING)、曲线(CURVES)、多面体表面(POLYHEDRALSURFACE)、三角形(TRIANGLE)、不规则三角形格网(Triangulated Irregular Network,TIN)类型几何对象。
  • 该函数支持M坐标。

示例

  • 函数1:SCALE X Y Z

    sql
    SQL> SELECT TO_CHAR(ST_AsEWKT(ST_SCALE(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75, 0.8)));
    
    +--------------------------------------+
    |                EXPR1                 |
    +--------------------------------------+
    | LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8) |
    +--------------------------------------+
  • 函数2:SCALE X Y

    sql
    SQL> SELECT TO_CHAR(ST_AsEWKT(ST_SCALE(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75)));
    
    +----------------------------------+
    |              EXPR1               |
    +----------------------------------+
    | LINESTRING(0.5 1.5 3,0.5 0.75 1) |
    +----------------------------------+
  • 函数3:SCALE X Y Z M

    sql
    SQL> SELECT TO_CHAR(ST_AsEWKT(ST_SCALE(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)'),
                    ST_MakePoint(0.5, 0.75, 2, -1))));
    
    +----------------------------------------+
    |                 EXPR1                  |
    +----------------------------------------+
    | LINESTRING(0.5 1.5 6 -4,0.5 0.75 2 -1) |
    +----------------------------------------+
  • 函数4:SCALE X Y origin

    sql
    SQL> SELECT TO_CHAR(ST_AsText(ST_SCALE('LINESTRING(1 1, 2 2)', 'POINT(2 2)', 'POINT(1 1)'::geometry)));
    
    +---------------------+
    |        EXPR1        |
    +---------------------+
    | LINESTRING(1 1,3 3) |
    +---------------------+