Condividi tramite


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)