Compartilhar via


CurveToLineWithTolerance (tipo de dados de geografia)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna uma aproximação poligonal de uma instância de geography que contém segmentos de arco circulares.

Sintaxe

  
.CurveToLineWithTolerance( tolerance, relative )  

Argumentos

tolerance
É uma expressão double que define o erro máximo entre o segmento de arco circular original e sua aproximação linear.

relative
É uma expressão bool que indica se um máximo relativo para o desvio deve ser usado. Se o relativo for definido como falso (0), um máximo absoluto será definido para o desvio que um aproximado linear poderá ter. Quando o relativo for verdadeiro (1), a tolerância será calculada como um produto do parâmetro de tolerância e do diâmetro da caixa delimitadora do objeto espacial.

Tipos de retorno

Tipo de retorno do SQL Server: geography

Tipo de retorno do CLR: SqlGeography

Exceções

A definição de tolerância <= 0 gera uma exceção ArgumentOutOfRange.

Comentários

Esse método permite uma quantidade de tolerância de erro a ser especificada para a LineString resultante.

O método CurveToLineWithTolerance retornará uma instância de LineString para uma instância de CircularString ou de CompoundCurve e uma instância de Polígono para uma instância de CurvePolygon.

Exemplos

a. Usando valores de tolerância diferentes em uma instância de CircularString

O seguinte exemplo mostra como a definição da tolerância afeta a instância de LineString retornada de uma instância 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. Usando o método em uma instância de MultiLineString que contém uma LineString

O exemplo a seguir mostra o que é retornado de uma instância de MultiLineString que só contém uma instância 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. Usando o método em uma instância de MultiLineString que contém várias LineStrings

O exemplo a seguir mostra o que é retornado de uma instância de MultiLineString que contém mais de uma instância 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. Definindo o relativo como true para uma instância de CurvePolygon de invocação

O exemplo a seguir usa uma instância de CurvePolygon para chamar CurveToLineWithTolerance() com relativo definido como 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 Também

Métodos estendidos em instâncias geography