Share via


CurveToLineWithTolerance (tipo di dati geography)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Restituisce un'approssimazione poligonale di un'istanza geography contenente segmenti di arco circolare.

Sintassi

  
.CurveToLineWithTolerance( tolerance, relative )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

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();

Vedi anche

Metodi estesi sulle istanze di geografia