Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Devuelve una aproximación poligonal de una instancia de geometry que contiene segmentos de arco circulares.
Syntax
.STCurveToLine ( )
Tipos de valor devuelto
Tipo de valor devuelto de SQL Server: geometry
Tipo de valor devuelto de CLR: SqlGeometry
Remarks
Devuelve una instancia de GeometryCollection vacía para variables de instancia de geometry vacías y devuelve NULL para variables de geometría no inicializadas.
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
STCurveToLinedevuelve 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.
Examples
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. Devuelve solo 5 puntos para la instancia de CircularString , pero 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];
Véase 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)