Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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
STCurveToLinemetoda 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)