MakeValid (tipos de dados de geografia)
Converte uma instância de geography que não é válida em uma instância de geography válida com um tipo de 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 geografia oferece suporte a instâncias de FullGlobe ou a instâncias espaciais maiores que um hemisfério.
Sintaxe
.MakeValid ()
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Comentários
Esse método pode alterar o tipo da instância de geography. Além disso, os pontos de uma instância de geography podem mudar ligeiramente. Os resultados de alguns métodos, como NumPoint(), podem ser alterados.
Em casos onde a instância espacial inválida cruza o equador e tem um EnvelopeAngle() = 180, uma instância de FullGlobe será retornada. O método do tipo de dados MakeValid() geography fará a melhor tentativa no retorno de instâncias válidas, mas não há garantias de que os resultados sejam 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 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
Referência
STIsValid (tipo de dados geometry)