Name

ST_LineToCurve — Convertit une géométrie linéaire en une géométrie courbe.

Synopsis

geometry ST_LineToCurve(geometry geomANoncircular);

Description

Convertit les lignes et polygones simples en lignes circulaires et polygones courbes. Notez qu'il faut beaucoup moins de points pour décrire l'équivalent courbe.

[Note]

Si l'entrée LINESTRING/POLYGON n'est pas suffisamment courbée pour représenter clairement une courbe, la fonction renverra la même géométrie d'entrée.

Disponibilité : 1.3.0

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.

Exemples

This example uses 2D input.

SELECT ST_AsText(ST_LineToCurve(foo.geom)) As curvedastext,ST_AsText(foo.geom) As non_curvedastext
    FROM (SELECT ST_Buffer('POINT(1 3)'::geometry, 3) As geom) As foo;

curvedatext                                                            non_curvedastext
--------------------------------------------------------------------|-----------------------------------------------------------------
CURVEPOLYGON(CIRCULARSTRING(4 3,3.12132034355964 0.878679656440359, | POLYGON((4 3,3.94235584120969 2.41472903395162,3.77163859753386 1.85194970290473,
1 0,-1.12132034355965 5.12132034355963,4 3))                        |  3.49440883690764 1.33328930094119,3.12132034355964 0.878679656440359,
                                                                    |  2.66671069905881 0.505591163092366,2.14805029709527 0.228361402466141,
                                                                    |  1.58527096604839 0.0576441587903094,1 0,
                                                                    |  0.414729033951621 0.0576441587903077,-0.148050297095264 0.228361402466137,
                                                                    |  -0.666710699058802 0.505591163092361,-1.12132034355964 0.878679656440353,
                                                                    |  -1.49440883690763 1.33328930094119,-1.77163859753386 1.85194970290472
                                                                    |  --ETC-- ,3.94235584120969 3.58527096604839,4 3))

This example uses 3D input.

SELECT ST_AsText(ST_LineToCurve(geom)) As curved, ST_AsText(geom) AS not_curved
FROM (SELECT ST_Translate(ST_Force3D(ST_Boundary(ST_Buffer(ST_Point(1,3), 2,2))),0,0,3) AS geom) AS foo;
curved                                      | not_curved
--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CIRCULARSTRING Z (3 3 3,-1 3 3,3 3 3)      | LINESTRING Z (3 3 3,2.414213562373095 1.585786437626905 3,1 1 3,-0.414213562373095 1.585786437626905 3,-1 3 3,-0.414213562373095 4.414213562373095 3,1 5 3,2.414213562373095 4.414213562373096 3,3 3 3)
(1 row)

Voir aussi

ST_CurveToLine