Compartilhar via


MakeValid (tipos de dados de geografia)

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

Converte uma instância degeografia que não é válida em uma instância de geography válida com um tipo do OGC (Open Geospatial Consortium) válido.

Se um objeto de entrada retornar False para STIsValid(), MakeValid() converterá a instância que não é válida em uma instância válida.

Esse método de tipo de dados de geography é compatível com instâncias FullGlobe ou instâncias espaciais maiores que um hemisfério.

Sintaxe

  
.MakeValid ()  

Tipos de retorno

Tipo de retorno do SQL Server: geography

Tipo de retorno do CLR: SqlGeography

Comentários

Esse método pode alterar o tipo de instância de geography. Além disso, os pontos de uma instância de geography podem mudar um pouco. Os resultados de alguns métodos como NumPoint() podem ser alterados.

Nos casos em que a instância espacial inválida interseccionar o equador e tiver um EnvelopeAngle() = 180, uma instância de FullGlobe será retornada. O método do tipo de dados de MakeValid()geography fará a melhor tentativa possível de retornar instâncias válidas, mas não há garantias de que os resultados serão precisos.

Observação

Os objetos que não são válidos podem ser armazenados no banco de dados. Os métodos que podem ser executados em instâncias inválidas (instâncias para as quais STIsValid() retorna False) são métodos que verificam a validade ou permitem a exportação: STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() e AsGml().

Esse método não é preciso.

Exemplos

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

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

O segundo exemplo usa MakeValid() pata tornar a instância válida e testar se ela é realmente válida. STIsValid() retorna o valor 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 se tornar uma instância válida.

SELECT @g.ToString();  

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

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

Consulte Também

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