Condividi tramite


STCurveToLine (tipo di dati geometry)

Restituisce un'approssimazione poligonale di un'istanza geometry che contiene segmenti di arco circolare.

Sintassi

.STCurveToLine ( )

Tipi restituiti

SQL Server tipo restituito: geometry

Tipo CLR restituito: SqlGeometry

Osservazioni

Restituisce un'istanza GeometryCollection vuota per le variabili d'istanza geometry vuote e restituisce NULL per le variabili geometry non inizializzate.

L'approssimazione poligonale restituita dal metodo dipende dall'istanza geometry che si utilizza 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 tale istanza non è 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 utilizza i valori z-coordinate per calcolare l'approssimazione poligonale. Il metodo ignora qualsiasi valore z-coordinate presente nell'istanza geometry chiamante.

Esempi

A.Utilizzo di una variabile di geometria non inizializzata e di un'istanza vuota

Nell'esempio seguente, la prima istruzione SELECT utilizza un'istanza geometry non inizializzata per chiamare il metodo STCurveToLine e la seconda istruzione SELECT utilizza 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 utilizza 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 dell'esempio seguente utilizza 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 ciascuna istanza. Restituisce solo 5 punti per l'istanza CircularString, ma 65 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 utilizza 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

Riferimento

STLength (tipo di dati geometry)

STNumPoints (tipo di dati geometry)

STGeometryType (tipo di dati geometry)

Concetti

Panoramica dei tipi di dati spaziali