STCurveToLine (tipo de datos de geometría)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve una aproximación poligonal de una instancia de geometry que contiene segmentos de arco circulares.

Sintaxis

  
.STCurveToLine ( )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Comentarios

Devuelve una instancia vacía de GeometryCollection para variables vacías de la instancia de geometry y devuelve NULL para variables de geometry sin inicializar.

La aproximación poligonal devuelta por el método depende de la instancia de geometry que se use para llamar al método:

  • Devuelve una instancia de LineString para una instancia de CircularString o CompoundCurve.

  • Devuelve una instancia de Polygon para una instancia de CurvePolygon.

  • Devuelve una copia de la instancia de geometry si esa instancia no es una instancia de CircularString, CompoundCurve o CurvePolygon. Por ejemplo, el método STCurveToLine devuelve una instancia de Point para una instancia de geometry que sea una instancia de Point.

A diferencia de la especificación SQL/MM, el método STCurveToLine no usa los valores de z-coordinate para calcular la aproximación poligonal. El método omite los valores de z-coordinate presentes en la instancia de geometry que realiza la llamada.

Ejemplos

A. Usar una variable geometry sin inicializar y una instancia vacía

En el siguiente ejemplo, la primera instrucción SELECT usa una instancia de geometry sin inicializar para llamar al método STCurveToLine, mientras que la segunda instrucción SELECT usa una instancia de geometry vacía. Así, el método devuelve NULL en la primera instrucción y una colección GeometryCollection en la segunda instrucción.

 DECLARE @g geometry; 
 SET @g = @g.STCurveToLine(); 
 SELECT @g.STGeometryType(); 
 SET @g = geometry::Parse('LINESTRING EMPTY'); 
 SELECT @g.STGeometryType();

B. Utilizar una instancia de LineString

La instrucción SELECT del ejemplo siguiente usa una instancia de LineString para llamar al método STCurveToLine. Así, el método devuelve una instancia de 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. Utilizar una instancia de CircularString

La primera instrucción SELECT del ejemplo siguiente usa una instancia de CircularString para llamar al método STCurveToLine. Así, el método devuelve una instancia de LineString. Esta instrucción SELECT además compara las longitudes de las dos instancias, que son aproximadamente iguales. Por último, la segunda instrucción SELECT devuelve el número de puntos de cada instancia. Solo devuelve 5 puntos para la instancia de CircularString, pero devuelve 65 puntos para la instancia de 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. Utilizar una instancia de CurvePolygon

La instrucción SELECT del ejemplo siguiente usa una instancia de CurvePolygon para llamar al método STCurveToLine. Así, el método devuelve una instancia de 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];

Consulte también

Información general de los tipos de datos espaciales
STLength (tipo de datos geometry)
STNumPoints (tipo de datos geometry)
STGeometryType (tipo de datos geometry)