名前

ST_Translate — 与えられたオフセットでジオメトリを変換します。

概要

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

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

説明

座標がX増分、Y増分、Z増分で変換した新しいジオメトリーを返します。単位はジオメトリーのSRID (空間参照系)の単位です。M値は保存されます。

[注記]

1.3.4より前では、曲線を含むジオメトリで使用すると、この関数はクラッシュします。これは1.3.4以上で訂正されています。

Availability: 1.2.2

この関数は3次元に対応し、Z値を削除しません。

このメソッドは曲線ストリングと曲線に対応しています。

この関数はM値に対応します。

ポイントを経度1度ぶん移動させます。

Code
SELECT ST_Translate(ST_GeomFromText('POINT(-71.01 42.37)', 4326), 1, 0) AS wgs_transgeomtxt;
出力:
POINT(-70.01 42.37)

ラインストリングを緯度1度ぶん、経度1/2度ぶん移動させます。

Code
SELECT 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)
Figure
Geometry figure for visual-st-translate-02

3次元ポイントを移動させます。

Code
SELECT ST_Translate(CAST('POINT(0 0 0)' AS geometry), 5, 12, 3);
出力:
POINT(5 12 3)

M値を持つポイントを移動させます

Code
SELECT ST_Translate('POINTM(0 0 11)', 5, 12);
出力:
POINTM(5 12 11)
Figure
Geometry figure for visual-st-translate-04
Code
SELECT ST_Translate('POINT(0 0 7 11)', 5, 12, 3);
出力:
POINT(5 12 10 11)

曲線とポイントを移動させます。

Code
SELECT 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))
Figure
Geometry figure for visual-st-translate-06