Partage via


STCurveToLine (type de données geometry)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Retourne une approximation polygonale d’une instance geometry contenant des segments d’arc de cercle.

Syntaxe

  
.STCurveToLine ( )  

Types de retour

Type de retour SQL Server : 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 de coordonnées z pour calculer l’approximation polygonale. La méthode ignore les valeurs de coordonnées z présentes dans l’instance geometry appelante.

Exemples

R. 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 non initialisée de geometry pour appeler la méthode STCurveToLine, alors que la seconde instruction SELECT utilise une instance geometry vide. Ainsi, la méthode retourne NULL pour la première instruction et une collection GeometryCollection pour la seconde 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 de l’exemple suivant utilise une instance LineString pour appeler la méthode STCurveToLine. Ainsi, 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 de l’exemple suivant utilise une instance CircularString pour appeler la méthode STCurveToLine. Ainsi, la méthode retourne une instance LineString. Cette instruction SELECT compare également les longueurs des deux instances, qui sont approximativement les mêmes. Enfin, la seconde instruction SELECT retourne le nombre de points pour chaque instance. Elle retourne seulement 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 de l’exemple suivant utilise une instance CurvePolygon pour appeler la méthode STCurveToLine. Ainsi, 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

Présentation des types de données spatiales
STLength (type de données geometry)
STNumPoints (type de données geometry)
STGeometryType (type de données geometry)