Compartilhar via


CurveToLineWithTolerance (tipo de dados de geografia)

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

Aplica-se a: SQL Server (SQL Server 2012 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

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 deverá ser usado ou não. Quando o relativo é definido como falso (0), um máximo absoluto é definido para o desvio que um aproximado linear poderá ter. Quando o relativo é definido como verdadeiro (1), a tolerância é calculada como um produto do parâmetro de tolerância e do diâmetro da caixa delimitadora do objeto espacial.

Tipos de retorno

SQL Server tipo de retorno: geography

Tipo de retorno CLR: SqlGeography

Exceções

A definição da tolerância <= 0 lança uma exceção ArgumentOutOfRange.

Comentários

Este 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 LineString para uma instância CircularString ou CompoundCurve e a instância Polygon para uma instância CurvePolygon.

Exemplos

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

O exemplo a seguir 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 relative definido como verdadeiro:

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

Outros recursos

Métodos estendidos em instâncias geography