ST_Translate — Traduit une géométrie en fonction de décalages donnés.
geometry ST_Translate(
geometry g1, float deltax, float deltay)
;
geometry ST_Translate(
geometry g1, float deltax, float deltay, float deltaz)
;
Renvoie une nouvelle géométrie dont les coordonnées sont des unités de translation delta x,delta y,delta z. Les unités sont basées sur les unités définies dans la référence spatiale (SRID) pour cette géométrie. Les unités sont basées sur les unités définies dans la référence spatiale (SRID) pour cette géométrie.
Avant la version 1.3.4, cette fonction se bloquait si elle était utilisée avec des géométries contenant des CURVES. Ce problème est corrigé dans la version 1.3.4+ |
Disponibilité : 1.2.2
Cette fonction prend en charge la 3D et ne supprime pas l'indice z.
Cette méthode prend en charge les types Circular String et Curve.
Déplacer un point de 1 degré de longitude
SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 42.37)',4326),1,0)) As wgs_transgeomtxt; wgs_transgeomtxt --------------------- POINT(-70.01 42.37)
Déplacer une ligne d'un degré de longitude et d'un demi-degré de latitude
SELECT ST_AsText(ST_Translate(ST_GeomFromText('LINESTRING(-71.01 42.37,-71.11 42.38)',4326),1,0.5)) As wgs_transgeomtxt; wgs_transgeomtxt --------------------------------------- LINESTRING(-70.01 42.87,-70.11 42.88)
Déplacer un point 3D
SELECT ST_AsEWKT(ST_Translate(CAST('POINT(0 0 0)' As geometry), 5, 12,3)); st_asewkt --------- POINT(5 12 3)
Déplacer une courbe et un point
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)); st_astext ------------------------------------------------------------------------------------------------------------ GEOMETRYCOLLECTION(CURVEPOLYGON(CIRCULARSTRING(5 5,4.12 2.878,2 2,-0.121 7.1213,7 9,9 11,5 5)),POINT(2 5))