STCurveToLine (tipo de datos de geometría)

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

Sintaxis

.STCurveToLine ( )

Tipos de valor devueltos

SQL Server tipo de valor devuelto: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Comentarios

Devuelve una instancia de GeometryCollection vacía para variables de instancia de geometry vacías y devuelve NULL para las variables geometry no inicializadas.

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

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

  • Devuelve una instancia Polygon para una instancia 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 utiliza valores de z-coordinate para calcular la aproximación poligonal. El método omite cualquier valor de z-coordinate presente en la instancia de geometry a la que se llama.

Ejemplos

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

En el siguiente ejemplo, la primera instrucción SELECT utiliza 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 utiliza 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 utiliza una instancia de CircularString para llamar al método STCurveToLine. Así, el método devuelve una instancia de LineString. Esta instrucción SELECT también compara las longitudes de las dos instancias, que son aproximadamente iguales. Finalmente, 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 utiliza 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];

Vea también

Referencia

STLength (tipo de datos geometry)

STNumPoints (tipo de datos geometry)

STGeometryType (tipo de datos geometry)

Conceptos

Información general de los tipos de datos espaciales