STCurveToLine (tipo di dati geometry)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
Restituisce un'approssimazione poligonale di un'istanza geometry contenente segmenti di arco circolare.
Sintassi
.STCurveToLine ( )
Tipi restituiti
Tipo SQL Server restituito: geometry
Tipo CLR restituito: SqlGeometry
Osservazioni:
Restituisce un'istanza GeometryCollection vuota per variabili di istanza geometry vuote e restituisce NULL per variabili geometry non inizializzate.
L'approssimazione poligonale restituita dal metodo dipende dall'istanza geometry usata per chiamare il metodo:
Restituisce un'istanza LineString per un'istanza CircularString o CompoundCurve.
Restituisce un'istanza Polygon per un'istanza CurvePolygon.
Restituisce una copia dell'istanza geometry se l'istanza non è di tipo CircularString, CompoundCurve o CurvePolygon. Ad esempio, il metodo
STCurveToLine
restituisce un'istanza Point per un'istanza geometry di tipo Point.
A differenza della specifica SQL/MM, il metodo STCurveToLine
non usa i valori della coordinata z per calcolare l'approssimazione poligonale. Il metodo ignora qualsiasi valore della coordinata z presente nell'istanza geometry chiamante.
Esempi
R. Utilizzo di una variabile di geometria non inizializzata e di un'istanza vuota
Nell'esempio seguente, la prima istruzione SELECT usa un'istanza geometry non inizializzata per chiamare il metodo STCurveToLine
e la seconda istruzione SELECT usa un'istanza geometry vuota. Pertanto, il metodo restituisce NULL alla prima istruzione e una raccolta GeometryCollection alla seconda istruzione.
DECLARE @g geometry;
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
SET @g = geometry::Parse('LINESTRING EMPTY');
SELECT @g.STGeometryType();
B. Utilizzo di un'istanza LineString
L'istruzione SELECT nell'esempio seguente usa un'istanza LineString per chiamare il metodo STCurveToLine. In questo caso, il metodo restituisce un'istanza 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. Utilizzo di un'istanza CircularString
La prima istruzione SELECT nell'esempio seguente usa un'istanza CircularString per chiamare il metodo STCurveToLine. In questo caso, il metodo restituisce un'istanza LineString. Questa istruzione SELECT confronta inoltre le lunghezze delle due istanze, che sono pressoché identiche. Infine, la seconda istruzione SELECT restituisce il numero di punti per ogni istanza. Restituisce solo 5 punti per l'istanza CircularString, ma 65 punti per l'istanza 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. Utilizzo di un'istanza CurvePolygon
L'istruzione SELECT nell'esempio seguente usa un'istanza CurvePolygon per chiamare il metodo STCurveToLine. In questo caso, il metodo restituisce un'istanza 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];
Vedi anche
Panoramica dei tipi di dati spaziali
STLength (tipo di dati geometry)
STNumPoints (tipo di dati geometry)
STGeometryType (tipo di dati geometry)