Partager via


STCurveToLine (type de données geometry)

Retourne une approximation polygonale d'une instance geometry qui contient des segments d'arc de cercle.

Syntaxe

.STCurveToLine ( )

Types de retour

SQL Server type de retour : geometry

Type de retour CLR : SqlGeometry

Notes

Retourne une instance GeometryCollection vide pour les variables d'instance geometry vides et retourne NULL pour les variables geometry non initialisées.

L'approximation polygonale que la méthode retourne dépend de l'instance geometry que vous utilisez pour appeler la méthode :

  • Retourne une instance LineString pour une instance CircularString ou CompoundCurve.

  • Retourne une instance Polygon pour une instance CurvePolygon.

  • Retourne une copie de l'instance geometry si cette instance n'est pas une instance CircularString, CompoundCurve ou CurvePolygon. Par exemple, la méthode STCurveToLine retourne une instance Point pour une instance geometry qui est une instance Point.

Contrairement à la spécification SQL/MM, la méthode STCurveToLine n'utilise pas de valeurs z-coordinate pour calculer l'approximation polygonale. La méthode ignore toutes les valeurs z-coordinate présentes dans l'instance geometry appelante.

Exemples

A.Utilisation d'une variable Geometry non initialisée et d'une instance vide

Dans l'exemple suivant, la première instruction SELECT utilise une instance geometry non initialisée pour appeler la méthode STCurveToLine, tandis que la deuxième instruction SELECT utilise une instance geometry vide. Par conséquent, la méthode retourne NULL à la première instruction et une collection GeometryCollection à la deuxième instruction.

DECLARE @g geometry;

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

SET @g = geometry::Parse('LINESTRING EMPTY');

SELECT @g.STGeometryType();

B.Utilisation d'une instance LineString

L'instruction SELECT dans l'exemple suivant utilise une instance LineString pour appeler la méthode STCurveToLine. Par conséquent, la méthode retourne une instance LineString.

DECLARE @g geometry;

SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

C.Utilisation d'une instance CircularString

La première instruction SELECT dans l'exemple suivant utilise une instance CircularString pour appeler la méthode STCurveToLine. Par conséquent, la méthode retourne une instance LineString. Cette instruction SELECT compare également les longueurs des deux instances, qui sont approximativement identiques. Enfin, la deuxième instruction SELECT retourne le nombre de points pour chaque instance. Elle retourne uniquement 5 points pour l'instance CircularString, mais 65 points pour l'instance LineString.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];

SELECT @g1.STNumPoints(), @g2.STNumPoints();

D.Utilisation d'une instance CurvePolygon

L'instruction SELECT dans l'exemple suivant utilise une instance CurvePolygon pour appeler la méthode STCurveToLine. Par conséquent, la méthode retourne une instance Polygon.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];

Voir aussi

Référence

STLength (type de données geometry)

STNumPoints (type de données geometry)

STGeometryType (type de données geometry)

Concepts

Présentation des types de données spatiales