Udostępnij przez


STCurveToLine (geometry — typ danych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca wielokątne przybliżenie wystąpienia geometrii zawierającego segmenty łuku cyklicznego.

Syntax

  
.STCurveToLine ( )  

Typy zwracane

Zwracany typ programu SQL Server: geometria

Typ zwracania CLR: SqlGeometry

Remarks

Zwraca puste wystąpienie GeometryCollection dla pustych zmiennych wystąpienia geometrii i zwraca wartość NULL dla niezainicjowanych zmiennych geometrycznych .

Przybliżenie wielokątne zwracane przez metodę zależy od wystąpienia geometrii używanego do wywołania metody:

  • Zwraca wystąpienie LineString dla wystąpienia CircularString lub CompoundCurve .

  • Zwraca wystąpienie wielokąta dla wystąpienia CurvePolygon .

  • Zwraca kopię wystąpienia geometrii , jeśli to wystąpienie nie jest wystąpieniem CircularString, CompoundCurve lub CurvePolygon . Na przykład STCurveToLine metoda zwraca wystąpienie punktu dla wystąpienia geometrii , które jest wystąpieniem punktu .

W przeciwieństwie do specyfikacji STCurveToLine SQL/MM metoda nie używa wartości współrzędnych z do obliczania przybliżenia wielokątnego. Metoda ignoruje wszystkie wartości współrzędnych z obecne w wywołaniu wystąpienia geometrii .

Examples

A. Używanie niezainicjowanej zmiennej geometrycznej i pustego wystąpienia

W poniższym przykładzie pierwsza instrukcja SELECT używa niezainicjowanego wystąpienia geometrii do wywołania STCurveToLine metody, a druga instrukcja SELECT używa pustego wystąpienia geometrii . W związku z tym metoda zwraca wartość NULL do pierwszej instrukcji i kolekcję GeometryCollection do drugiej instrukcji.

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

B. Używanie wystąpienia LineString

Instrukcja SELECT w poniższym przykładzie używa wystąpienia LineString do wywołania metody STCurveToLine. W związku z tym metoda zwraca wystąpienie 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. Używanie wystąpienia cyklicznego ściągniania

Pierwsza instrukcja SELECT w poniższym przykładzie używa wystąpienia CircularString do wywołania metody STCurveToLine. W związku z tym metoda zwraca wystąpienie LineString . Ta instrukcja SELECT porównuje również długości dwóch wystąpień, które są w przybliżeniu takie same. Na koniec druga instrukcja SELECT zwraca liczbę punktów dla każdego wystąpienia. Zwraca tylko 5 punktów dla wystąpienia CircularString , ale 65 punktów dla wystąpienia 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. Używanie wystąpienia CurvePolygon

Instrukcja SELECT w poniższym przykładzie używa wystąpienia CurvePolygon do wywołania metody STCurveToLine. W związku z tym metoda zwraca wystąpienie wielokąta .

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

Zobacz też

Typy danych przestrzennych — omówienie
STLength (typ danych geometrycznych)
STNumPoints (geometria typu danych)
STGeometryType (geometry— typ danych)