CurveToLineWithTolerance (geography-Datentyp)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt eine polygonale Näherung einer Instanz von geography mit Kreisbogensegmenten zurück.
Syntax
.CurveToLineWithTolerance( tolerance, relative )
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
tolerance
Ein double -Ausdruck, der die maximalen Fehler zwischen dem ursprünglichen Kreisbogensegment und der linearen Näherung definiert.
relative
Ein bool -Ausdruck, der angibt, ob ein relatives Maximum für die Abweichung verwendet werden soll. Wenn der relativer Wert auf „false“ (0) festgelegt wird, wird ein absolutes Maximum für die Abweichung verwendet, die eine lineare Näherung aufweisen kann. Wenn der relative Wert auf „true“ (1) festgelegt wird, wird die Toleranz als Produkt des tolerance-Parameters und des Durchmessers des Begrenzungsrahmens für das räumliche Objekt berechnet.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Ausnahmen
Festlegen der Toleranz <= 0 löst eine ArgumentOutOfRange-Ausnahme aus.
Hinweise
Mit dieser Methode kann ein Umfang für die Fehlertoleranz in der resultierenden LineStringangegeben werden.
DieCurveToLineWithTolerance -Methode gibt eine LineString -Instanz für eine CircularString oder eine CompoundCurve -Instanz und eine Polygon -Instanz für eine CurvePolygon -Instanz zurück.
Beispiele
A. Verwenden verschiedener Toleranzwerte in einer CircularString-Instanz
Im folgenden Beispiel wird gezeigt, wie sich das Festlegen der Toleranz auf eine Instanz von LineString
auswirkt, die von einer Instanz von CircularString
zurückgegeben wird:
DECLARE @g geography;
SET @g = geography::Parse('CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');
SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();
B. Verwenden der Methode in einer MultiLineString-Instanz mit einem LineString
Im folgenden Beispiel wird die Rückgabe einer Instanz von MultiLineString
gezeigt, die nur eine LineString
-Instanz enthält:
DECLARE @g geography;
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649))');
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();
C. Verwenden der Methode in einer MultiLineString-Instanz mit mehreren LineStrings
Im folgenden Beispiel wird die Rückgabe einer Instanz von MultiLineString
gezeigt, die mehrere LineString
-Instanzen enthält:
DECLARE @g geography;
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649),(-123.358 47.653, -123.348 47.649))');
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();
D: Festlegen des relativen Werts für eine aufrufende CurvePolygon-Instanz auf true
Im folgenden Beispiel wird eine Instanz von CurvePolygon
verwendet, um CurveToLineWithTolerance()
mit relative und dem Wert true aufzurufen:
DECLARE @g geography = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658), (-122.348 47.658, -122.358 47.658, -122.358 47.653)))';
SELECT @g.CurveToLineWithTolerance(.5,1).ToString();
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für