CurveToLineWithTolerance (tipo di dati geography)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
Restituisce un'approssimazione poligonale di un'istanza geography contenente segmenti di arco circolare.
Sintassi
.CurveToLineWithTolerance( tolerance, relative )
Argomenti
tolerance
Espressione double che definisce l'errore massimo tra il segmento di arco circolare originale e l'approssimazione lineare.
relative
Espressione bool che indica se usare un valore massimo relativo per la deviazione. Se relative è false (0), viene impostato un valore massimo assoluto per la deviazione che può presentare un'approssimazione lineare. Se relative è true (1), la tolleranza e viene calcolata come prodotto tra il parametro tolerance per il diametro del rettangolo di selezione per l'oggetto spaziale.
Tipi restituiti
Tipo SQL Server restituito: geography
Tipo CLR restituito: SqlGeography
Eccezioni
L'impostazione di tolerance <= 0 genera un'eccezione ArgumentOutOfRange.
Osservazioni:
Questo metodo consente di specificare la tolleranza di errore per l'istanza LineString risultante.
Il metodo CurveToLineWithTolerance restituisce un'istanza LineString per un'istanza CircularString o CompoundCurve e un'istanza Polygon per un'istanza CurvePolygon.
Esempi
R. Utilizzo di valori di tolleranza diversi in un'istanza CircularString
L'esempio seguente illustra l'impatto dell'impostazione della tolleranza sull'istanza LineString
restituita da un'istanza CircularString
:
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. Utilizzo del metodo in un'istanza MultiLineString che contiene un'istanza LineString
Nell'esempio seguente viene illustrato ciò che viene restituito da un'istanza MultiLineString
che contiene una sola istanza LineString
:
DECLARE @g geography;
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649))');
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();
C. Utilizzo del metodo in un'istanza MultiLineString che contiene più istanze LineString
Nell'esempio seguente viene illustrato ciò che viene restituito da un'istanza MultiLineString
che contiene più di un'istanza LineString
:
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. Impostazione del parametro relative su true per un'istanza CurvePolygon di chiamata
Nell'esempio seguente viene usata un'istanza CurvePolygon
per chiamare CurveToLineWithTolerance()
con relative impostato su true:
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();