From cda4f68d003f33cbefd9104d24ec8a33f2ce1da3 Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Sat, 8 Nov 2008 14:43:04 +0000 Subject: [PATCH] Document affine functions now work with curves. Though I don't have a tool to verify correctness, so my assumption - it returns something that sounds sort of right. git-svn-id: http://svn.osgeo.org/postgis/trunk@3282 b70326c6-7e19-0410-871a-916f4a2858ee --- doc/reference_new.xml | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/doc/reference_new.xml b/doc/reference_new.xml index 0381d6552..d0e2a509f 100644 --- a/doc/reference_new.xml +++ b/doc/reference_new.xml @@ -3887,6 +3887,7 @@ z' = z This method is a subcase of the 3D method above. Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2 + Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+ @@ -3894,6 +3895,13 @@ z' = z This method is a subcase of the 3D method This function supports 3d and will not drop the z-index. + + + + + + + This method supports Circular Strings and Curves @@ -3917,6 +3925,7 @@ SELECT ST_AsEWKT(ST_Affine(the_geom, cos(pi()), -sin(pi()), 0, sin(pi()), cos(pi ------------------------------- LINESTRING(-1 -2 -3,-1 -4 -3) (1 row) + @@ -4200,6 +4209,13 @@ LINESTRING(1 2,1 10) | LINESTRING(1 10,1 2) This function supports 3d and will not drop the z-index. + + + + + + + This method supports Circular Strings and Curves @@ -4356,6 +4372,7 @@ SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2) is short-hand for SELECT ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), cos(rotRadians), 0, 0, 0, 1, 0, 0, 0). Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2 + Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+ @@ -4363,6 +4380,14 @@ SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2) This function supports 3d and will not drop the z-index. + + + + + + + This method supports Circular Strings and Curves + @@ -4375,6 +4400,15 @@ SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2) st_asewkt --------------------------- LINESTRING(-2 1 3,-1 1 1) + + --Rotate a curved circle around z-axis +SELECT ST_AsEWKT(ST_RotateZ(the_geom, pi()/2)) +FROM (SELECT ST_LineToCurve(ST_Buffer(ST_GeomFromText('POINT(234 567)'), 3)) As the_geom) As foo; + + st_asewkt +---------------------------------------------------------------------------------------------------------------------------- + CURVEPOLYGON(CIRCULARSTRING(-567 237,-564.87867965644 236.12132034356,-564 234,-569.12132034356 231.87867965644,-567 237)) + @@ -4425,6 +4459,8 @@ SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2) ST_Scale(geomA, XFactor, YFactor, ZFactor) is short-hand for ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, ZFactor, 0, 0, 0). + + Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+ Availability: 1.1.0. @@ -4434,6 +4470,13 @@ SELECT ST_AsEWKT(ST_RotateZ(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2) This function supports 3d and will not drop the z-index. + + + + + + + This method supports Circular Strings and Curves @@ -4982,6 +5025,8 @@ CREATE INDEX idx_the_geom_26986_parcels ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor) is short-hand for ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, deltaX*XFactor, deltaY*YFactor, 0). + + Prior to 1.3.4, this function crashes if used with geometries that contain CURVES. This is fixed in 1.3.4+ Availability: 1.1.0. @@ -4991,6 +5036,13 @@ CREATE INDEX idx_the_geom_26986_parcels This function supports 3d and will not drop the z-index. + + + + + + + This method supports Circular Strings and Curves @@ -5001,6 +5053,14 @@ CREATE INDEX idx_the_geom_26986_parcels st_asewkt ----------------------------- LINESTRING(1.5 6 3,1.5 4 1) + + +--Buffer a point to get an approximation of a circle, convert to curve and then translate 1,2 and scale it 3,4 + SELECT ST_AsText(ST_Transscale(ST_LineToCurve(ST_Buffer('POINT(234 567)', 3)),1,2,3,4)); + st_astext +------------------------------------------------------------------------------------------------------------------------------ + CURVEPOLYGON(CIRCULARSTRING(714 2276,711.363961030679 2267.51471862576,705 2264,698.636038969321 2284.48528137424,714 2276)) + -- 2.50.1