Sdílet prostřednictvím


STCurveToLine (datový typ geometrie)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí mnohoúhelníkovou aproximaci instance geometrie , která obsahuje kruhové obloukové segmenty.

Syntax

  
.STCurveToLine ( )  

Návratové typy

Návratový typ SQL Serveru: geometrie

Návratový typ CLR: SqlGeometry

Remarks

Vrátí prázdnou instanci GeometryCollection pro prázdné proměnné instance geometrie a vrátí hodnotu NULL pro neinicializované proměnné geometrie .

Polygonální aproximace, kterou metoda vrací, závisí na instanci geometrie , kterou používáte k volání metody:

  • Vrátí instanci LineString pro CircularString nebo CompoundCurve instance.

  • Vrátí polygon instanci CurvePolygon instance.

  • Vrátí kopii instance geometrie , pokud tato instance není CircularString, CompoundCurve nebo CurvePolygon instance. Například STCurveToLine metoda vrátí instanci point pro instanci geometrie , která je instance Point .

Na rozdíl od specifikace STCurveToLine SQL/MM metoda nepoužívá hodnoty souřadnic z k výpočtu polygonální aproximace. Metoda ignoruje všechny hodnoty souřadnic z, které jsou přítomné v instanci volající geometrie .

Examples

A. Použití neinicializované proměnné geometrie a prázdné instance

V následujícím příkladu první příkaz SELECT používá k volání metody neinicializovanou instanci STCurveToLine a druhý příkaz SELECT používá prázdnou instanci geometrie. Proto metoda vrátí null první příkaz a GeometryCollection kolekce druhý příkaz.

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

B. Použití instance LineString

Příkaz SELECT v následujícím příkladu používá LineString instance volání STCurveToLine metoda. Proto metoda vrátí LineString instance.

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

C. Použití instance CircularString

První příkaz SELECT v následujícím příkladu používá k volání STCurveToLine metoda instance CircularString . Proto metoda vrátí LineString instance. Tento příkaz SELECT také porovnává délky dvou instancí, které jsou přibližně stejné. Druhý příkaz SELECT nakonec vrátí počet bodů pro každou instanci. Vrátí pouze 5 bodů pro instanci CircularString , ale 65 bodů pro instanci 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. Použití instance CurvePolygon

Příkaz SELECT v následujícím příkladu používá CurvePolygon instance volání STCurveToLine metoda. Metoda tedy vrátí instanci Mnohoúhelníku .

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

Viz také

Přehled prostorových datových typů
STLength (datový typ geometrie)
STNumPoints (datový typ geometrie)
STGeometryType (datový typ geometrie)