CurveToLineWithTolerance (tipo de datos Geography)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve una aproximación poligonal de una instancia de geography que contiene segmentos de arco circulares.

Sintaxis

  
.CurveToLineWithTolerance( tolerance, relative )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

tolerance
Expresión double que define el error máximo entre el segmento del arco circular original y su aproximación lineal.

relative
Expresión bool que indica si se va a usar un máximo relativo para la desviación. Si relative está establecido en falso (0), se establece un máximo absoluto para la desviación que puede tener una aproximación lineal. Cuando relative es true (1), la tolerancia se calcula como un producto del parámetro de tolerancia y el diámetro del cuadro de límite para el objeto espacial.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Excepciones

Si se establece la tolerancia <= 0, se produce una excepción ArgumentOutOfRange.

Observaciones

Este método permite especificar una cantidad de tolerancia a errores para el valor LineString resultante.

El método CurveToLineWithTolerance devolverá una instancia de LineString para una instancia de CircularString o CompoundCurve y una instancia de Polygon para una instancia de CurvePolygon.

Ejemplos

A. Utilizar valores de tolerancia diferentes en una instancia de CircularString

En el siguiente ejemplo se muestra cómo establecer la tolerancia afecta a la instancia de LineString devuelta desde una instancia de 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. Utilizar el método en una instancia de MultiLineString que contiene un LineString

En el siguiente ejemplo se muestra lo que se devuelve de una instancia de MultiLineString que solo contiene una instancia de 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. Utilizar el método en una instancia de MultiLineString que contiene varios LineString

En el siguiente ejemplo se muestra lo que se devuelve de una instancia de MultiLineString que contiene más de una instancia de 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. Establecer relative en true para invocar una instancia de CurvePolygon

En el siguiente ejemplo se usa una instancia de CurvePolygon para llamar a CurveToLineWithTolerance() con relative establecido en 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();

Consulte también

Métodos extendidos en instancias de geography