STCurveToLine (geometridatatyp)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar en polygonal uppskattning av en geometriinstans som innehåller cirkulära bågsegment.

Syntax

  
.STCurveToLine ( )  

Returtyper

SQL Server-returtyp: geometri

CLR-returtyp: SqlGeometry

Remarks

Returnerar en tom GeometryCollection-instans för tomma geometriinstansvariabler och returnerar NULL för ennitialiserade geometrivariabler.

Den polygonala uppskattning som metoden returnerar beror på den geometriinstans som du använder för att anropa metoden:

  • Returnerar en LineString-instans för en CircularString - eller CompoundCurve-instans .

  • Returnerar en Polygon-instans för en CurvePolygon-instans .

  • Returnerar en kopia av geometriinstansen om den instansen inte är en CircularString-, CompoundCurve- eller CurvePolygon-instans . Metoden returnerar till exempel STCurveToLine en punktinstans för en geometriinstans som är en Point-instans .

Till skillnad från SQL/MM-specifikationen STCurveToLine använder metoden inte z-koordinatvärden för att beräkna polygonal uppskattning. Metoden ignorerar alla z-koordinatvärden som finns i den anropande geometriinstansen .

Examples

A. Använda en onitialiserad geometrivariabel och tom instans

I följande exempel använder den första SELECT-instruktionen en onitialiserad geometriinstans för att anropa STCurveToLine metoden, och den andra SELECT-instruktionen använder en tom geometriinstans . Metoden returnerar alltså NULL till den första instruktionen och en GeometryCollection-samling till den andra instruktionen.

 DECLARE @g geometry; 
 SET @g = @g.STCurveToLine(); 
 SELECT @g.STGeometryType(); 
 SET @g = geometry::Parse('LINESTRING EMPTY'); 
 SELECT @g.STGeometryType();

B. Använda en LineString-instans

SELECT-instruktionen i följande exempel använder en LineString-instans för att anropa metoden STCurveToLine. Metoden returnerar därför en LineString-instans .

 DECLARE @g geometry; 
 SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)'); 
 SET @g = @g.STCurveToLine(); 
 SELECT @g.STGeometryType();

C. Använda en CircularString-instans

Den första SELECT-instruktionen i följande exempel använder en CircularString-instans för att anropa metoden STCurveToLine. Metoden returnerar därför en LineString-instans . Den här SELECT-instruktionen jämför också längden på de två instanserna, som är ungefär desamma. Slutligen returnerar den andra SELECT-instruktionen antalet punkter för varje instans. Den returnerar endast 5 punkter för CircularString-instansen , men 65 poäng för LineString-instansen .

 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. Använda en CurvePolygon-instans

SELECT-instruktionen i följande exempel använder en CurvePolygon-instans för att anropa metoden STCurveToLine. Metoden returnerar därför en Polygon-instans .

 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];

Se även

översikt över spatiala datatyper
STLength (geometridatatyp)
STNumPoints (geometridatatyp)
STGeometryType (datatyp för geometri)