Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Retorna uma aproximação poligonal de uma ocorrência de geometria que contém segmentos de arco circulares.
Syntax
.STCurveToLine ( )
Tipos de devolução
Tipo de retorno do SQL Server: geometria
Tipo de retorno CLR: SqlGeometry
Remarks
Retorna uma instância GeometryCollection vazia para variáveis de instância de geometria vazia e retorna NULL para variáveis de geometria não inicializadas.
A aproximação poligonal que o método retorna depende da instância de geometria que você usa para chamar o método:
Retorna uma ocorrência de LineString para uma ocorrência de CircularString ou CompoundCurve .
Retorna uma ocorrência de Polygon para uma ocorrência de CurvePolygon .
Retorna uma cópia da ocorrência de geometria se essa instância não for uma ocorrência de CircularString, CompoundCurve ou CurvePolygon . Por exemplo, o
STCurveToLinemétodo retorna uma instância Point para uma ocorrência de geometria que é uma ocorrência Point .
Ao contrário da especificação SQL/MM, o STCurveToLine método não usa valores de coordenadas z para calcular a aproximação poligonal. O método ignora quaisquer valores de coordenadas z presentes na instância de geometria de chamada.
Examples
A. Usando uma variável de geometria não inicializada e uma instância vazia
No exemplo a seguir, a primeira instrução SELECT usa uma instância de geometria não inicializada para chamar o STCurveToLine método e a segunda instrução SELECT usa uma ocorrência de geometria vazia. Assim, o método retorna NULL para a primeira instrução e uma coleção GeometryCollection para a segunda instrução.
DECLARE @g geometry;
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
SET @g = geometry::Parse('LINESTRING EMPTY');
SELECT @g.STGeometryType();
B. Usando uma instância de LineString
A instrução SELECT no exemplo a seguir usa uma instância LineString para chamar o método STCurveToLine. Assim, o método retorna uma instância de LineString .
DECLARE @g geometry;
SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
C. Usando uma ocorrência de CircularString
A primeira instrução SELECT no exemplo a seguir usa uma instância CircularString para chamar o STCurveToLine método. Assim, o método retorna uma instância de LineString . Esta instrução SELECT também compara os comprimentos das duas instâncias, que são aproximadamente os mesmos. Finalmente, a segunda instrução SELECT retorna o número de pontos para cada instância. Ele retorna apenas 5 pontos para a ocorrência de CircularString , mas 65 pontos para a ocorrência de LineString .
DECLARE @g1 geometry, @g2 geometry;
SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');
SET @g2 = @g1.STCurveToLine();
SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];
SELECT @g1.STNumPoints(), @g2.STNumPoints();
D. Usando uma instância do CurvePolygon
A instrução SELECT no exemplo a seguir usa uma instância CurvePolygon para chamar o STCurveToLine método. Assim, o método retorna uma instância Polygon .
DECLARE @g1 geometry, @g2 geometry;
SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');
SET @g2 = @g1.STCurveToLine();
SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];
Ver também
Visão geral dos tipos de dados espaciais
STLength (tipo de dados de geometria)
STNumPoints (tipo de dados de geometria)
STGeometryType (tipo de dados de geometria)