Condividi tramite


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

Vedi anche

Metodi estesi sulle istanze di geografia