Partilhar via


MakeValid (tipo de dados de geometria)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Converte uma instância de geometria inválida em uma instância de geometria com um tipo de Consórcio Geoespacial Aberto (OGC) válido.

Syntax

  
.MakeValid ()  

Tipos de devolução

Tipo de retorno do SQL Server: geometria

Tipo de retorno CLR: SqlGeometry

Remarks

Esse método pode causar uma alteração no tipo da instância de geometria , bem como fazer com que os pontos de uma ocorrência de geometria se desloquem ligeiramente.

Examples

O primeiro exemplo cria uma instância inválida LineString que se sobrepõe e usa STIsValid() para confirmar que é uma instância inválida. STIsValid() Retorna o valor de 0 para uma instância inválida.

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);  
SELECT @g.STIsValid();  

O segundo exemplo usa MakeValid() para tornar a instância válida e para testar se a instância é realmente válida. STIsValid() Retorna o valor de 1 para uma instância válida.

SET @g = @g.MakeValid();  
SELECT @g.STIsValid();  

O terceiro exemplo verifica como a instância foi alterada para torná-la uma instância válida.

SELECT @g.ToString();  

Neste exemplo, quando a LineString instância é selecionada, os valores são retornados como uma instância válida MultiLineString .

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))  

O exemplo a seguir converte a ocorrência de CircularString em uma ocorrência de Point.

DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';  
SELECT @g.MakeValid().ToString();  

Ver também

STIsValid (tipo de dados de geometria)
Métodos estendidos em instâncias de geometria