CurveToLineWithTolerance (tipo di dati geography)
Restituisce un'approssimazione poligonale di un'istanza geography che contiene 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 utilizzare un valore massimo relativo per la deviazione. Quando il parametro relative viene impostato su false (0), viene impostato un valore massimo assoluto per la deviazione che può presentare un'approssimazione lineare. Quando il parametro relative viene impostato su true (1), la tolleranza e viene calcolata come prodotto tra il parametro della tolleranza e il diametro del rettangolo di selezione per l'oggetto spaziale.
Tipi restituiti
SQL Server tipo restituito: geography
Tipo CLR restituito: SqlGeography
Eccezioni
L'impostazione della tolleranza <= 0 genera un'eccezione ArgumentOutOfRange.
Osservazioni
Questo metodo consente di specificare la tolleranza di errore per l'istanza LineString risultante.
Il metodo CurveToLineWithTolerance restituirà un'istanza LineString per un'istanza CircularString o CompoundCurve e l'istanza Polygon per un'istanza CurvePolygon.
Esempi
A.Utilizzo di valori di tolleranza diversi in un'istanza CircularString
Nell'esempio seguente viene illustrato 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 utilizzata 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();