ST_Scale — 按给定因子缩放几何图形。
geometry ST_Scale(
geometry geomA, float XFactor, float YFactor, float ZFactor)
;
geometry ST_Scale(
geometry geomA, float XFactor, float YFactor)
;
geometry ST_Scale(
geometry geom, geometry factor)
;
geometry ST_Scale(
geometry geom, geometry factor, geometry origin)
;
通过将坐标与相应的因子参数相乘,将几何体缩放到新的尺寸。
采用几何图形作为 factor
参数的版本允许传递 2d、3dm、3dz 或 4d 点来为所有支持的维度设置缩放因子。 factor
点中缺少维度相当于没有缩放相应的维度。
三几何体变体允许传入缩放的“假原点”。这允许“就地缩放”,例如使用几何体的质心作为假原点。 如果没有假原点,缩放是相对于实际原点进行的,因此所有坐标都只是乘以比例因子。
在 1.3.4 之前,此函数在与包含曲线的几何图形一起使用时崩溃。 此问题已在 1.3.4 及更高版本中得到纠正 |
可用性:1.1.0。
增强功能:引入了2.0.0 对多面体曲面、三角形和三角网的支持。
增强:2.2.0 引入了对缩放所有维度(factor
参数)的支持。
增强:2.5.0 引入了对相对于本地原点(origin
参数)进行缩放的支持。
该函数支持多面体曲面。
该函数支持 3d 并且不会丢失 z-index。
此方法支持圆形字符串和曲线。
此函数支持三角形和不规则三角网面 (TIN)。
该功能支持M坐标。
--Version 1: scale X, Y, Z SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75, 0.8)); st_asewkt -------------------------------------- LINESTRING(0.5 1.5 2.4,0.5 0.75 0.8) --Version 2: Scale X Y SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75)); st_asewkt ---------------------------------- LINESTRING(0.5 1.5 3,0.5 0.75 1) --Version 3: Scale X Y Z M SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3 4, 1 1 1 1)'), ST_MakePoint(0.5, 0.75, 2, -1))); st_asewkt ---------------------------------------- LINESTRING(0.5 1.5 6 -4,0.5 0.75 2 -1) --Version 4: Scale X Y using false origin SELECT ST_AsText(ST_Scale('LINESTRING(1 1, 2 2)', 'POINT(2 2)', 'POINT(1 1)'::geometry)); st_astext --------------------- LINESTRING(1 1,3 3)