Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Restituisce un'approssimazione poligonale di un'istanza geometry contenente segmenti di arco circolare.
Syntax
.STCurveToLine ( )
Tipi restituiti
Tipo SQL Server restituito: geometry
Tipo CLR restituito: SqlGeometry
Remarks
Restituisce un'istanza GeometryCollection vuota per le variabili di istanza geometry vuote e restituisce NULL per le 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
STCurveToLinerestituisce 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.
Examples
A. 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];
Vedere anche
Panoramica dei tipi di dati spaziali
STLength (tipo di dati geometry)
STNumPoints (tipo di dati geometry)
STGeometryType (tipo di dati geometry)