Name

ST_Translate — 按给定的偏移量平移几何图形。

Synopsis

geometry ST_Translate(geometry g1, float deltax, float deltay);

geometry ST_Translate(geometry g1, float deltax, float deltay, float deltaz);

描述

Returns a new geometry whose coordinates are translated delta x,delta y,delta z units. Units are based on the units defined in spatial reference (SRID) for this geometry. M coordinates are preserved.

[Note]

在 1.3.4 之前,此函数在与包含曲线的几何图形一起使用时崩溃。 此问题已在 1.3.4 及更高版本中得到纠正

可用性:1.2.2

该函数支持 3d 并且不会丢失 z-index。

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

该功能支持M坐标。

示例

将点移动 1 度经度

SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 42.37)',4326),1,0)) AS wgs_transgeomtxt;
POINT(-70.01 42.37)

将线串移动 1 度经度和 1/2 度纬度

SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 42.37,-71.11 42.38)',4326),1,0.5)) AS wgs_transgeomtxt;
LINESTRING(-70.01 42.87,-70.11 42.88)

移动 3d 点

SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' AS geometry), 5, 12,3));
POINT(5 12 3)

Move points with a measure coordinate

SELECT ST_AsEWKT(ST_Translate(ST_GeomFromEWKT('POINTM(0 0 11)'), 5, 12));
POINTM(5 12 11)
SELECT ST_AsEWKT(ST_Translate(ST_GeomFromEWKT('POINT(0 0 7 11)'), 5, 12, 3));
POINT(5 12 10 11)

移动曲线和点

SELECT ST_AsText(ST_Translate(ST_Collect('CURVEPOLYGON(CIRCULARSTRING(4 3,3.12 0.878,1 0,-1.121 5.1213,6 7, 8 9,4 3))','POINT(1 3)'),1,2));
GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 7.1213,7 9,9 11,5 5)),POINT(2 5))