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